cse.c (cse_around_loop, [...]): Remove.
[gcc.git] / gcc / ChangeLog
1 2004-08-25 Steven Bosscher <stevenb@suse.de>
2
3 * cse.c (cse_around_loop, cse_check_loop_start,
4 cse_set_around_loop): Remove.
5 (cse_basic_block): Remove the around_loop argument.
6 (cse_end_of_basic_block): Remove the after_loop argument.
7 (cse_main): Likewise.
8 * rtl.h (cse_main): Update prototype.
9 * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
10 rest_of_handle_gcse): Update cse_main calls.
11
12 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
13
14 * tree.h (build_int_cst): New, sign extended constant.
15 (build_int_cstu): New, zero extended constant.
16 (build_int_cst_wide): Renamed from build_int_cst.
17 * tree.c (build_int_cst, build_int_cstu): New.
18 (build_int_cst_wide): Renamed from build_int_cst.
19 (make_vector_type, build_common_tree_nodes,
20 build_common_tree_nodes_2): Adjust build_int_cst calls.
21 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
22 expand_builtin_strpbrk, expand_builtin_fputs,
23 build_string_literal, expand_builtin_printf,
24 expand_builtin_sprintf, fold_builtin_classify_type,
25 fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
26 fold_builtin_toascii, fold_builtin_isdigit,
27 simplify_builtin_strstr, simplify_builtin_strpbrk,
28 fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
29 * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
30 DEF_ATTR_INT): Likewise.
31 * c-decl.c (complete_array_type, check_bitfield_type_and_width):
32 Likewise.
33 * c-lex.c (interpret_integer, lex_charconst): Likewise.
34 * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
35 * c-pretty-print.c (pp_c_integer_constant): Likewise.
36 * c-typeck.c (really_start_incremental_init, push_init_level,
37 set_nonincremental_init_from_string): Likewise.
38 * calls.c (load_register_parameters): Likewise.
39 convert.c (convert_to_pointer): Likewise.
40 coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
41 build_fn_info_type, build_fn_info_value, build_ctr_info_value,
42 build_gcov_info): Likewise.
43 * except.c (init_eh, assign_filter_values): Likewise.
44 * expmed.c (store_fixed_bit_field, extract_bit_field,
45 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
46 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
47 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
48 * expr.c (convert_move, emit_group_load, emit_group_store,
49 expand_assignment, store_constructor, store_field,
50 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
51 fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
52 invert_truthvalue, optimize_bit_field_compare,
53 decode_field_reference, all_ones_mask_p, constant_boolean_node,
54 fold_div_compare, fold, fold_read_from_constant_string,
55 fold_negate_const, fold_abs_const, fold_not_const, round_up,
56 round_down): Likewise.
57 * function.c (assign_parm_setup_block): Likewise.
58 * stmt.c (shift_return_value, expand_case, estimate_case_costs):
59 Likewise.
60 * stor-layout.c (layout_type, initialize_sizetypes,
61 set_min_and_max_values_for_integral_type): Likewise.
62 * tree-chrec.c (chrec_fold_multiply_poly_poly,
63 reset_evolution_in_loop): Likewise.
64 * tree-chrec.h (build_polynomial_chrec): Likewise.
65 * tree-complex.c (build_replicated_const): Likewise.
66 * tree-eh.c (honor_protect_cleanup_actions,
67 lower_try_finally_onedest, lower_try_finally_copy,
68 lower_try_finally_switch): Likewise.
69 * tree-mudflap.c (mf_build_string, mx_register_decls,
70 mudflap_register_call, mudflap_enqueue_constant): Likewise.
71 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
72 * tree-pretty-print.c (dump_generic_node): Likewise.
73 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
74 Likewise.
75 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
76 * tree-ssa-loop-niter.c (number_of_iterations_cond,
77 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
78 Likewise.
79 * tree-ssa-loop-ivcanon.c (create_canonical_iv,
80 canonicalize_loop_induction_variables): Likewise.
81 * tree-vectorizer.c (vect_create_index_for_array_ref,
82 vect_transform_loop_bound, vect_compute_data_ref_alignment):
83 Likewise.
84
85 * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
86 alpha_gimplify_va_arg_1): Likewise.
87 * config/arm/arm.c (arm_get_cookie_size): Likewise.
88 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
89 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
90 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
91 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
92 mips_gimplify_va_arg_expr): Likewise.
93 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
94 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
95 add_compiler_branch_island): Likewise.
96 * config/s390/s390.c (s390_va_start): Likewise.
97 * config/sh/sh.c (sh_va_start): Likewise.
98 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
99 Likewise.
100 * config/xtensa/xtensa.c (xtensa_va_start,
101 xtensa_gimplify_va_arg_expr): Likewise.
102
103 * objc/objc-act.c (build_objc_string_object,
104 build_objc_symtab_template, init_def_list, init_objc_symtab,
105 init_module_descriptor, generate_static_references,
106 build_selector_translation_table, get_proto_encoding,
107 build_typed_selector_reference, build_selector_reference,
108 build_next_objc_exception_stuff,
109 build_method_prototype_list_template, generate_descriptor_table,
110 generate_protocols, build_protocol_initializer,
111 build_ivar_list_template, build_method_list_template,
112 build_ivar_list_initializer, generate_ivars_list,
113 generate_dispatch_table, generate_protocol_list,
114 build_category_initializer, build_shared_structure_initializer,
115 generate_shared_structures, handle_impent,
116 generate_objc_image_info): Likewise.
117
118 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
119
120 * cfglayout.c (duplicate_insn_chain): Remove references to
121 NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
122 * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
123 * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
124 * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
125 and NOTE_INSN_LOOP_CONT.
126 * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
127 * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
128 and NOTE_INSN_LOOP_CONT.
129 * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
130 check_dbra_loop, loop_dump_aux): Remove references to removed notes
131 and fields.
132 * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
133 * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
134 references to removed notes and fields.
135 (subtract_reg_term, ujump_to_loop_cont): Remove.
136
137 2004-08-25 Paolo Bonzini <bonzini@gnu.org>
138
139 * doc/install.texi: Document that libcpp does not require
140 Automake any longer. Document that Automake 1.9.1 should
141 work everywhere.
142
143 2004-08-25 Zack Weinberg <zack@codesourcery.com>
144
145 * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
146 * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
147 DWARF_DEBUGGING_INFO from choice-of-definition chain;
148 restructure using C89 features (#elif, #error).
149 * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
150 * config/sh/sh.h: Remove references to DWARF_DEBUG.
151 * doc/invoke.texi: Remove references to DWARF version 1;
152 clarify why -gdwarf-2<n> doesn't work.
153
154 2004-08-25 Zack Weinberg <zack@codesourcery.com>
155
156 * basic-block.h (BB_SET_PARTITION): Clear old value first.
157 * cfg.c (clear_bb_flags): Don't clear partition setting.
158 * ifcvt.c (find_if_case_1): Remove ??? comment.
159
160 2004-08-25 Alan Modra <amodra@bigpond.net.au>
161
162 PR target/17052
163 * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
164 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
165 current_function_stdarg in place of sysv_varargs_p.
166 * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
167 sysv_varargs_p.
168
169 2004-08-24 Richard Henderson <rth@redhat.com>
170
171 PR target/16298
172 * config/i386/i386.c (legitimate_constant_p): Rework to not accept
173 random codes within CONST.
174
175 2004-08-24 James E Wilson <wilson@specifixinc.com>
176
177 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
178 -freorder-blocks-and-partition.
179
180 2004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
181
182 PR middle-end/17044
183 * tree-ssa-threadupdate.c (redirection_data): Make static.
184 (thread_block): Use ggc_alloc_cleared to allocate struct
185 redirection_data. Don't free elements in redirection_data.
186
187 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
188
189 * config/mips/predicates.md (small_data_pattern): Match prefetches.
190
191 2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
192
193 PR tree-optimization/17016
194 * tree-ssa-loop-niter.c (number_of_iterations_cond,
195 number_of_iterations_exit): Use POINTER_TYPE_P instead
196 of testing for POINTER_TYPE.
197
198 2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
199
200 * tree-ssa-loop-ivcanon.c: New file.
201 * tree-ssa-loop-manip.c (create_iv): New function.
202 * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
203 (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
204 * cfgloop.c (mark_single_exit_loops): New function.
205 (verify_loop_structure): Verify single-exit loops.
206 * cfgloop.h (struct loop): Add single_exit field.
207 (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
208 (mark_single_exit_loops): Declare.
209 (tree_num_loop_insns): Declare.
210 * cfgloopmanip.c (update_single_exits_after_duplication): New function.
211 (duplicate_loop_to_header_edge): Use it.
212 * common.opt (fivcanon): New flag.
213 * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
214 * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
215 (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
216 (bsi_insert_on_edge_immediate): New function.
217 * tree-flow.h (bsi_insert_on_edge_immediate,
218 canonicalize_induction_variables, tree_unroll_loops_completely,
219 create_iv): Declare.
220 * tree-optimize.c (init_tree_optimization_passes): Add
221 pass_iv_canon and pass_complete_unroll.
222 * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
223 * tree-scalar-evolution.c (get_loop_exit_condition,
224 get_exit_conditions_rec, number_of_iterations_in_loop,
225 scev_initialize): Use single_exit information.
226 * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
227 missing assumptions.
228 (loop_niter_by_eval): Return number of iterations as unsigned
229 int.
230 * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
231 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
232 tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
233 New passes.
234 (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
235 * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
236 the defining statement is ready.
237 * tree-vectorizer.c (vect_create_iv_simple): Removed.
238 (vect_create_index_for_array_ref, vect_transform_loop_bound):
239 Use create_iv.
240 (vect_transform_loop_bound): Use single_exit information.
241 (vect_analyze_loop_form): Cleanup bogus tests.
242 (vectorize_loops): Do not call flow_loop_scan.
243 * tree.h (may_negate_without_overflow_p): Declare.
244 * fold-const.c (may_negate_without_overflow_p): Split out from ...
245 (negate_expr_p): ... this function.
246 (tree_expr_nonzero_p): Handle overflowed constants correctly.
247 * doc/invoke.texi (-fivcanon): Document.
248 * doc/passes.texi: Document canonical induction variable creation.
249
250 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
251
252 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
253 * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
254 using the mode of the operand to decide between them.
255 * config/mips/mips.md (MOVECC): New mode macro.
256 (ccreg): New mode attribute.
257 (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
258 Redefine using :GPR and :MOVECC. Use %T and %t for the condition.
259 (mov[sd]icc): Redefine using :GPR.
260
261 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
262
263 * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
264 (mips_prefetch_cookie): New function.
265 * config/mips/mips.c (print_operand_address): Fix handling of
266 ADDRESS_CONST_INT.
267 (mips_emit_prefetch): Delete.
268 (mips_prefetch_cookie): New function.
269 * config/mips/mips.md (prefetch): Turn into a define_insn. Use a
270 mode of QImode for the address_operand. Use mips_prefetch_cookie
271 to calculate the first "pref" operand.
272 (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
273 (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie.
274
275 2004-08-24 Richard Earnshaw <rearnsha@arm.com>
276
277 * arm.md: Include predicates.md.
278 * predicates.md: New file.
279 * arm.c (s_register_operand, arm_hard_register_operand)
280 (arm_general_register_operand, f_register_operand, reg_or_int_operand)
281 (arm_immediate_operand, arm_neg_immediate_operand)
282 (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
283 (arm_add_operand, arm_addimm_operand, arm_not_operand)
284 (offsettable_memory_operand, alignable_memory_operand)
285 (arm_reload_memory_operand, arm_float_rhs_operand)
286 (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
287 (index_operand, shiftable_operator, logical_binary_operator)
288 (shift_operator, equality_operator, arm_comparison_operator)
289 (minmax_operator, cc_register, dominant_cc_register)
290 (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
291 (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
292 (const_shift_operand, load_multiple_operation)
293 (store_multiple_operation, multi_register_push, thumb_cmp_operand)
294 (thumb_cmpneg_operand, thumb_cbrch_target_operand)
295 (cirrus_register_operand, cirrus_fp_register)
296 (cirrus_shift_const): Delete, replaced with equivalents in
297 predicates.md.
298 (shift_op): Handle ROTATE.
299 * arm-protos.h: Delete declarations for above.
300 * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
301 * t-arm (MD_INCLUDES): Add predicates.md.
302 (s-preds): Depends on MD_INCLUDES.
303
304 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
305
306 * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
307 * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
308 patterns. Redefine using :GPR. Give the match_operator a mode.
309 Use '%2' rather than '%z2' for operand 2.
310
311 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
312
313 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
314 attribute.
315
316 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
317
318 * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names
319 of internal patterns.
320 (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
321 Redefine using :P.
322 (tablejump): Use expand_binop to calculate address. Adjust names
323 of internal patterns.
324 (tablejump[sd]i): Renamed from tablejump_internal[12].
325 Redefine using :P.
326 (tablejump_mips16[12]): Delete.
327
328 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
329
330 * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
331 (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
332 (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
333 (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
334 (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
335
336 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
337
338 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
339 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
340 using :GPR.
341 (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
342 (*branch_equality[sd]i): Likewise branch_equality{,_di}.
343 (*branch_equality[sd]i_inverted): Likewise
344 branch_equality{,_di}_inverted.
345 (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
346 Redefine using :GPR.
347
348 2004-08-24 Zack Weinberg <zack@codesourcery.com>
349
350 * rtl.def: Reorganize, placing all codes used only in machine
351 descriptions at the end.
352
353 * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
354 * gengtype.c: Don't include rtl.h. Define enum rtx_code and
355 rtx_name, rtx_format arrays by direct reference to rtl.def,
356 first undefining GENERATOR_FILE. Define enum insn_note and
357 note_insn_name array by direct reference to insn-notes.def.
358 (adjust_field_rtx_def): Remove local definition of rtx_name.
359 Use symbolic names for insn notes.
360 * Makefile.in (gengtype.o): Update dependencies.
361
362 2004-08-24 Zack Weinberg <zack@codesourcery.com>
363
364 * basic-block.h (struct basic_block_def): Reorder fields to
365 eliminate interior padding. Remove 'partition' field.
366 (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
367 (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
368 (BB_COPY_PARTITION): New macros.
369 * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
370 Replace all references to the 'partition' field of a basic
371 block with new macros.
372
373 * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
374 * final.c (final_scan_insn): Don't handle it.
375 * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
376 instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
377 * sched-rgn.c (sched_is_disabled_for_current_region_p):
378 Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
379
380 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
381
382 * c-decl.c (c_init_decl_processing): Adjust
383 build_common_tree_nodes call.
384 * expmed.c (const_mult_add_overflow_p): Use
385 build_distinct_type_copy.
386 * stor-layout.c (early_type_list): Remove.
387 (layout_type): Don't append to early_type_list.
388 (initialize_sizetypes): Add signed_p argument.
389 (set_sizetype): Overwrite the stub type nodes directly.
390 * tree.c (copy_node_stat): Clear a type's value cache here ...
391 (build_distinct_type): ... not here.
392 (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
393 * tree.h (initialize_sizetypes): Add signed_p argument.
394 (build_common_tree_nodes): Likewise.
395
396 * objc/objc-act.c (get_static_reference): Use
397 build_variant_type_copy.
398 (get_protocol_reference): Likewise.
399 * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
400
401 2004-08-24 Richard Henderson <rth@redhat.com>
402 Andrew Pinski <apinski@apple.com>
403
404 * gimplify.c (gimplify_array_ref_to_plus): Delete.
405 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
406 for ARRAY_REF.
407
408 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
409 ARRAY_REF also to get to the STRING_CST.
410
411 2004-08-24 Paul Brook <paul@codesourcery.com>
412
413 * config/arm/arm.c (arm_override_options): Update error message.
414 * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
415 TARGET_HARD_FLOAT_ABI.
416 (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
417 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
418
419 2004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
420
421 PR target/17093
422 * config/m32r.md (movsi_sda): Add SI mode specification to
423 UNSPEC.
424
425 2004-08-24 Nick Clifton <nickc@redhat.com>
426
427 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
428 of seth_add3_operand.
429
430 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
431
432 * Makefile.in (PROTO_OBJS): Add errors.o.
433 * protoize.c (fancy_abort): Remove.
434 * mips-tfile.c (fancy_abort): Add parameters.
435
436 2004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
437
438 * doc/trouble.texi (C++ misunderstandings): Fix example code.
439
440 2004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
441
442 * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
443 (host-default.o): Add dependency on HOOKS_H.
444 * config/x-linux: Likewise.
445 * config/x-solaris: Likewise.
446 * config/i386/x-mingw32: Likewise.
447 * config/rs6000/x-darwin: Likewise.
448
449 2004-08-23 James E Wilson <wilson@specifixinc.com>
450
451 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
452 DEF_REG_NOTE.
453
454 2004-08-23 Mark Mitchell <mark@codesourcery.com>
455
456 PR c/14492
457 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
458
459 2004-08-23 Diego Novillo <dnovillo@redhat.com>
460
461 * cfg.c (check_bb_profile): Fix typos.
462 * function.c (assign_parm_is_stack_parm): Likewise.
463 * tree-nested.c: Likewise.
464
465 2004-08-23 Daniel Jacobowitz <dan@debian.org>
466
467 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
468 Remove TYPECODE.
469 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
470
471 2004-08-23 Eric Christopher <echristo@redhat.com>
472
473 * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
474 * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
475 * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
476 * target.h: Ditto.
477 * hooks.h: Include machmode.h.
478 (hook_bool_mode_false): Declare.
479 * hooks.c (hook_bool_mode_false): Define.
480 * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
481 * stor-layout.c (layout_type): Ditto.
482 * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
483 Define to target macro.
484 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
485 * config/arm/arm.c: Ditto. Use.
486 * config/arm/arm.h: Ditto.
487 * config/arm/arm-protos.h: Ditto.
488 * config/i386/i386.c: Ditto.
489 * config/i386/i386.h: Ditto.
490 * config/rs6000/rs6000.c: Ditto.
491 * config/rs6000/rs6000.h: Ditto.
492 * config/sh/sh.c: Ditto.
493 * config/sh/sh.h: Ditto.
494 * config/sh/sh-protos.h: Ditto.
495 * config/sh/sh.md: Use.
496 * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
497 to TARGET_VECTOR_MODE_SUPPORTED_P.
498
499 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
500
501 * Makefile.in (BUILD_ERRORS): Set to build-errors.
502 (errors.o): New target for host.
503 (build-errors.o): New target for build.
504 (genobjs): Replace errors.o with build-errors.
505 (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
506 (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
507 (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
508 (fix-header.o): Add errors.h
509 * collect2.c (fancy_abort): Add parameters.
510 * collect2.h (fancy_abort): Don't declare.
511 * errors.h (fancy_abort): Don't declare.
512 * errors.c: Include either bconfig.h or config.h.
513 (fancy_abort): Trim filename.
514 * fix-header.c (v_fatal, fatal): Remove.
515 (progname): Remove definition.
516 (main): Set progname here.
517 * gcc.c (fancy_abort): Add parameters.
518 * gcc.h (fancy_abort): Remove declaration.
519 * gcov.c (fancy_abort): Remove.
520 * rtl.h (fancy_abort): Don't declare.
521 (abort): Don't define.
522 * tree.h (fancy_abort): Don't declare.
523 (abort): Don't define.
524 * system.h (fancy_abort): Declare.
525 (abort): Define to fancy_abort.
526 * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
527
528 * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
529 (usize_type, ubitsizetype): Remove.
530 * stor-layout.c (set_sizetype): Don't initialize usizetype,
531 ubitsizetype.
532 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
533
534 * tree.h (build_distinct_type_copy): New.
535 (build_type_copy): ... here. Rename to ...
536 (build_variant_type_copy): ... here.
537 * tree.c (build_qualified_type): Rename build_type_copy call.
538 (build_distinct_type_copy): New, broken out of ...
539 (build_type_copy): ... here. Rename to ...
540 (build_variant_type_copy): ... here. Use
541 build_distinct_type_copy.
542 (build_common_tree_nodes_2): Rename build_type_copy call.
543 * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
544 call.
545 (handle_packed_attribute, handle_unused_attribute,
546 handle_transparanet_union_attribute, handle_aligned_attribute,
547 handle_deprecated_attribute): Likewise.
548 * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
549 Likewise.
550 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
551 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
552 build_distinct_type_copy.
553
554 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
555
556 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
557 attribute.
558
559 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
560
561 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
562 loads and stores.
563 (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
564 formerly unnamed patterns. Redefine using :P for the address. Remove
565 explicit length attributes.
566
567 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
568
569 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
570 New functions.
571 (single_reachable_address): Use them.
572 (schedule_sm): Add dump.
573 (is_call_clobbered_ref): New function.
574 (determine_lsm_reg): Check whether the reference is call clobbered.
575 Only work for gimple_reg_type values.
576
577 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
578
579 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
580 $31 store insns. Redefine using :GPR.
581
582 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
583
584 * config/mips/mips.md (P): New mode macro.
585 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
586 (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
587 Add mode attributes.
588
589 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
590
591 * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
592 (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle
593 later constants to cover the gap.
594 (load, store): New mode attributes.
595 (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
596 Use new unspec constants.
597
598 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
599
600 * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
601 (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns
602 to use register_operand rather than uns_arith_operand as the predicate
603 for operand 1. Remove redundant MIPS16 force_reg() for operand 1.
604 (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
605 Redefine using :GPR. Make same predicate change here. Extend the
606 commutativity of operands 1 and 2 from the SImode version to the
607 DImode one.
608 (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
609 but with no predicate changes.
610 (*nor[sd]i3): Redefine using :GPR.
611
612 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
613
614 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
615 noreturn functions.
616
617 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
618
619 * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
620 * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use
621 branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%."
622 rather than "%z2" (with a fake const0_rtx for operand 2).
623 (ffs[sd]i2): Redefine using :GPR.
624 (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case.
625
626 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
627
628 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
629
630 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
631
632 * config/mips/mips.md (any_extend): New code macro.
633 (u, su): New code attributes.
634 ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
635 ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
636 ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
637 (*{s,u}mul_acc_di): Redefine using any_extend.
638 (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns
639 to reflect real insn names.
640 (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
641 with an any_extend template.
642 ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
643 Add '*' to name.
644
645 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
646
647 * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
648 * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
649 (mul[sd]i3_r4000): Redefine using :GPR.
650 (mulsi3_mult3): Don't check TARGET_MAD separately.
651 (muldi3_mult3): Moved after mulsi_mult3.
652
653 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
654
655 * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
656 OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld.
657 * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down.
658 (TARGET_GAS, TARGET_MIPS_AS): Delete.
659 (TARGET_GPWORD): Define to true for n32 on IRIX.
660 (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op.
661 (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
662 (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
663 (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
664 (MDEBUG_ASM_SPEC): Delete, folding into...
665 (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
666 (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches.
667 (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
668 subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT
669 to define asm_abi_default_spec.
670 (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
671 (TARGET_ASM_SELECT_SECTION): Delete.
672 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
673 for non-mips16 code, removing previous workaround for SGI assemblers.
674 (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
675 (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
676 (override_options): Remove !TARGET_GAS and !have_named_sections code.
677 (print_operand): Fold TARGET_GAS conditionals into asm strings.
678 (mips_output_filename): Remove !TARGET_GAS code. Replace use of
679 ASM_STABS_OP and ASM_STABN_OP.
680 (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
681 (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
682 (mips_output_function_prologue): Remove !TARGET_GAS code.
683 (mips_select_rtx_section): Remove !have_named_sections code.
684 (mips_select_section): Delete.
685 * config/mips/mips.md (trap): Remove !TARGET_GAS check.
686 * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
687 * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
688 (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
689 * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
690 * config/mips/windiss.h (ASM_SPEC): Likewise.
691
692 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
693
694 * read-rtl.c (map_value, mapping, macro_group): New structures.
695 (BELLWETHER_CODE): New macro.
696 (modes, codes, bellwether_codes): New variables.
697 (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
698 (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
699 (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
700 (add_condition_to_rtx, apply_macro_traverse, add_mapping)
701 (add_map_value, initialize_macros): New functions.
702 (def_hash, def_hash_eq_p): Generalize to anything that points to,
703 or starts with, a char * field.
704 (find_macro, read_mapping, check_code_macro): New functions.
705 (read_rtx_1): New, split out from read_rtx. Handle the new
706 define_{mode,code}_{macro,attr} constructs. Use find_macro
707 to parse the name of a code or mode. Use BELLWETHER_CODE to
708 extract the format and to choose a suitable code for rtx_alloc.
709 Modify recursive invocations to use read_rtx_1.
710 (read_rtx): Call initialize_macros. Apply code and mode macros
711 to the rtx returned by read_rtx_1. Cache everything after the
712 first macro expansion for subsequent read_rtx calls.
713 * doc/md.texi: Document new .md constructs.
714 * config/mips/mips.md (GPR): New mode macro.
715 (d, si8_di5): New mode attributes.
716 (any_cond): New code macro.
717 (add[sd]i3): Redefine using :GPR.
718 (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
719 (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
720 previously unnamed MIPS16 patterns.
721 (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long
722 lines. Don't match (plus (const_int 0) ...).
723 (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
724 Use a define_split to generate the addition.
725 (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn.
726 (subsi3_internal): Delete.
727 (*subsi3_extended): Renamed from subsi3_internal_2.
728 (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
729 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
730 using an any_cond template.
731
732 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
733
734 * read-rtl.c (read_rtx): Tidy use of format_ptr.
735
736 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
737
738 * read-rtl.c (string_obstack): New file-scope variable.
739 (read_string, read_quoted_string, read_braced_string)
740 (read_escape): Remove obstack parameter and use string_obstack instead.
741 (read_rtx): Remove function-local rtl_obstack and initialize
742 string_obstack instead. Update call to read_string.
743
744 2004-08-22 Andrew Pinski <apinski@apple.com>
745
746 PR c/15262
747 * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
748 expression is not constant.
749 (c_finish_return): Do not go through INDIRECT_REF when looking
750 for the inner expression of an ADDR_EXPR for warning about.
751
752 2004-08-22 Richard Henderson <rth@redhat.com>
753
754 PR 17075
755 * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
756 create new blocks and fall through.
757 (expand_gimple_basic_block): Update to match.
758
759 2004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
760
761 * reload.c (find_reloads_address): Make return value tri-state.
762 Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
763 (find_reloads): Assume that reloaded addresses match 'o' or
764 EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
765 returned 1 (not -1). Omit optional reloads for address operands
766 only if find_reloads_address returned 1 (not -1).
767
768 * config/s390/s390.c (legitimize_reload_address): New function.
769 * config/s390/s390-protos.h (legitimize_reload_address): Declare.
770 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call
771 legitimize_reload_address.
772
773 2004-08-22 Richard Hendersion <rth@redhat.com>
774
775 * tree.h (SAVE_EXPR_RESOLVED_P): New.
776 * gimplify.c (gimplify_save_expr): Use it.
777 * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P
778 on the temporary variable.
779
780 2004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
781
782 * fold-const.c (rtl_expr_nonnegative_p): Delete.
783 * tree.h (rtl_expr_nonnegative_p): Remove.
784
785 2004-08-22 Steven Bosscher <stevenb@suse.de>
786
787 * config/i386/ppro.md (ppro_complex_insn): Add missing check
788 for cpu==pentiumpro.
789
790 * combine.c (struct reg_stat): Fix comment typo.
791
792 2004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
793
794 * c-tree.h (c_sizeof_nowarn): Remove.
795
796 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
797
798 * c-decl.c (set_array_declarator_type): Rename to
799 set_array_declarator_inner.
800 (build_c_parm, build_attrs_declarator, build_function_declarator):
801 New functions.
802 (make_pointer_declarator): Call build_attrs_declarator.
803 * c-tree.h (set_array_declarator_type): Rename to
804 set_array_declarator_inner.
805 (build_c_parm, build_attrs_declarator, build_function_declarator):
806 New prototypes.
807 * c-parse.in (after_type_declarator,
808 parm_declarator_starttypename, parm_declarator_nostarttypename,
809 notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
810 firstparm): Use these functions
811
812 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
813
814 * c-decl.c (build_array_declarator, set_array_declarator_type,
815 start_decl, grokdeclarator, grokparms): Change boolean parameters
816 to type bool.
817 * c-tree.h (build_array_declarator, set_array_declarator_type,
818 start_decl): Update prototypes.
819 * c-decl.c, c-parse.in: All callers changed.
820
821 2004-08-21 Mike Stump <mrs@apple.com>
822
823 * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
824 (darwin_fix_and_continue): Likewise.
825 (darwin_fix_and_continue_switch): Likewise.
826 * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
827 (darwin_fix_and_continue): Likewise.
828 (darwin_fix_and_continue_switch): Likewise.
829
830 2004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
831
832 PR c++/16030
833 * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
834 Remove, merging into ...
835 (gen_stdcall_or_fastcall_suffix): New function, returning tree
836 rather than const char*, and accepting additional parameter.
837 Don't add suffix to '*'-prefixed symbols or variadic functions.
838 (i386_pe_encode_section_info): Adjust for call to new function.
839 Call change_decl_assembler_name.
840
841 2004-08-20 Mike Stump <mrs@apple.com>
842
843 * config/darwin.c (machopic_indirect_data_reference): Mark
844 stubs as defined.
845 * config/386/386.c (darwin_local_data_pic): Add.
846 (legitimate_constant_p): Reorder so that PLUS handling runs
847 before darwin_local_data_pic to match the ordering in
848 legitimate_pic_address_disp_p and so that MINUS runs after
849 darwin_local_data_pic as otherwise the darwin_local_data_pic
850 logic can be skipped, which would be very bad.
851 (legitimate_pic_address_disp_p): Move from from here to
852 darwin_local_data_pic so it can be reused.
853
854 2004-08-21 Alan Modra <amodra@bigpond.net.au>
855
856 * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
857 (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
858 (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
859 (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
860 (RS6000_ABI_NAME): Define as "linux".
861 (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
862 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
863 ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
864 * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
865 * config/rs6000/rs6000.c (dot_symbols): New global var.
866 (rs6000_output_function_entry): New function, modified for
867 !DOT_SYMBOLS..
868 (print_operand <case 'z'>): ..extracted from here.
869 (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
870 (rs6000_output_function_epilogue): Likewise.
871 (rs6000_elf_declare_function_name): Likewise.
872 * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
873 (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
874 * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
875 * configure: Regenerate.
876 * config.in: Regenerate.
877
878 2004-08-20 Mark Mitchell <mark@codesourcery.com>
879
880 * reload.c (find_reloads_address): Fix thinko in previous change.
881
882 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
883 a CONST_INT.
884
885 2004-08-20 Jakub Jelinek <jakub@redhat.com>
886
887 PR rtl-optimization/17099
888 * combine.c (force_to_mode): Check if inner_mask has any bits set
889 outside of GET_MODE (x) instead of op_mode.
890
891 2004-08-20 Mark Mitchell <mark@codesourcery.com>
892
893 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
894 fragment.
895 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
896 (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
897 * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
898 architecture.
899 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
900 configurations.
901 * config/arm/t-symbian: New file.
902
903 2004-08-20 Andrew Pinski <apinski@apple.com>
904
905 * regrename.c (kill_value_regno): ANSIfy.
906
907 2004-08-20 Dale Johannesen <dalej@apple.com>
908
909 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
910
911 2004-08-20 Daniel Jacobowitz <dan@debian.org>
912
913 * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
914 (kill_value_regno): New function, derived from kill_value.
915 (kill_value): Update.
916 (copyprop_hardreg_forward_1): Update call to kill_value_regno.
917
918 2004-08-20 Daniel Berlin <dberlin@dberlin.org>
919
920 Fix PR tree-optimization/17111
921 * tree-ssa-pre.c (create_value_expr_from): Don't change the types
922 of non-value_handles.
923 (bitmap_set_contains): All constants are in every set.
924
925 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
926
927 * fold-const.c (round_up, round_down): Use build_int_cst.
928 Optimize common case.
929
930 2004-08-20 Zack Weinberg <zack@codesourcery.com>
931 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
932
933 * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
934 one_only_data_section): Rename to som_readonly_data_section,
935 som_one_only_readonly_data_section and som_one_only_data_section.
936 * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
937 NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
938 conditional defines.
939 (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
940 NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
941 string values.
942 (pa_select_section): Use renamed section functions.
943 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
944 SOM_READONLY_DATA_SECTION_FUNCTION,
945 SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
946 SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
947 Define here ...
948 * config/pa/som.h: ... not here.
949 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
950 ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
951 ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
952 ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
953 (READONLY_DATA_SECTION): Use som_readonly_data_section.
954
955 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
956
957 * fold-const.c (int_const_binop): Don't generate non-overflowing
958 size-types specially.
959 (fold_convert_const): Likewise.
960
961 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
962 clear cache on copied sizetype.
963
964 2004-08-20 Ben Elliston <bje@au.ibm.com>
965
966 * configure.ac: Don't escape apostrophe in --enable-coverage help.
967 * configure: Regenerate.
968
969 2004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
970
971 PR 5620
972 * gcc.c (struct stat input_stat): Don't define if
973 HOST_LACKS_INODE_NUMBERS
974 (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
975 than stat to determine if temp file is same as input file.
976 * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
977 * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
978
979 2004-08-20 Richard Sandiford <rsandifo@redhat.com>
980
981 * configure.ac (mips*-*-*): Print an error if not using GAS.
982 * configure: Regenerated.
983 * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
984 comments about buggy MIPSpro assemblers.
985 * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
986 before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
987 Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
988 IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
989 * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
990 (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
991 (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
992 (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
993 (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
994 of more general IRIX 6 definitions.
995 (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
996 (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
997 (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
998 (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
999 (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
1000 (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
1001 (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
1002 (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
1003 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
1004 (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
1005 (LINK_SPEC): Move most of definition to iris.h.
1006 (SUBTARGET_LINK_SPEC): New macro.
1007 (IRIX_STARTFILE_SPEC): Fold into...
1008 (STARTFILE_SPEC): ...here.
1009 (IRIX_ENDFILE_SPEC): Fold into...
1010 (ENDFILE_SPEC): ...here.
1011 * config/mips/iris6.h (TARGET_IRIX5): Remove override.
1012 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
1013 (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
1014 (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
1015 (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
1016 (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
1017 (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
1018 (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
1019 (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
1020 (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
1021 (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
1022 (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
1023 (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
1024 (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
1025 (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
1026 (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
1027 (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
1028 (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
1029 (TARGET_IRIX6): Define to 1.
1030 (DRIVER_SELF_SPECS): Define.
1031 (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
1032 (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
1033 (SUBTARGET_LINK_SPEC): New macro.
1034 (IRIX_STARTFILE_SPEC): Fold into...
1035 (STARTFILE_SPEC): ...here. Remove !mabi=* case.
1036 (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
1037 (LIB_SPEC, LIBGCC_SPEC): Use them.
1038 (LIB_SPEC): Remove !mabi=* case.
1039 (IRIX_ENDFILE_SPEC): Fold into...
1040 (ENDFILE_SPEC): ...here. Remove !mabi=* case.
1041 * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
1042 * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
1043 (TARGET_IRIX6): New macro.
1044 (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
1045 (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
1046 (LABEL_AFTER_LOC): Delete.
1047 * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
1048 (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
1049 (mips_build_builtin_va_list): Check TARGET_IRIX6.
1050 (override_options): Remove TARGET_SGI_O32_AS-related code.
1051 (irix_output_external_libcall): Make static.
1052 (mips_output_filename): Avoid use of SET_FILE_NUMBER and
1053 LABEL_AFTER_LOC.
1054 (mips_file_start): Tidy guard for ABI sections. Remove use of
1055 ABICALLS_ASM_OP; use .abicalls instead.
1056 (mips_output_aligned_decl_common, mips_declare_object_name)
1057 (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
1058 (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
1059 .globl foo .text directives.
1060 (irix_asm_named_section_1, irix_asm_named_section)
1061 (irix_section_align_entry, irix_section_align_htab)
1062 (irix_orig_asm_out_file, irix_section_align_entry_eq)
1063 (irix_section_align_entry_hash, irix_asm_output_align)
1064 (irix_file_start, irix_section_align_1, copy_file_data)
1065 (irix_file_end, irix_section_type_flags): Delete.
1066 * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
1067 Use standard section syntax. Remove protective "jr $31".
1068 (__gcc_fini): Likewise .gcc_fini.
1069 * config/mips/irix-crtn.asm: Adjust sections accordingly.
1070 * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
1071 iris5gas.h.
1072 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
1073 from t-irix-gld.
1074 (EXTRA_MULTILIB_PARTS): Define.
1075 * config/mips/t-iris6: Remove bogus comment.
1076 (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
1077 * config/mips/iris5gas.h, config/mips/iris5gld.h,
1078 config/mips/iris6gas.h, config/mips/iris6gld.h,
1079 config/mips/t-iris5-as, config/mips/t-iris5-gas
1080 config/mips/t-irix-gld: Delete.
1081 * config/mips/iris.h: New file.
1082 * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
1083
1084 2004-08-20 Richard Earnshaw <rearnsha@arm.com>
1085
1086 * postreload.c (reload_cse_move2add): Allow any condjump, but check
1087 that the implicit set isn't clobbered in the jump insn.
1088
1089 2004-08-19 Mark Mitchell <mark@codesourcery.com>
1090
1091 * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
1092 * optabs.c (init_optabs): Don't check it.
1093 * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
1094 * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
1095
1096 2004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
1097
1098 * config/s390/s390.md (s390_warn_framesize_string)
1099 (s390_warn_dynamic_string, s390_stack_size_string)
1100 (s390_stack_guard_string): New global string variables.
1101 (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
1102 (s390_stack_guard): New global variables.
1103 (override_options): Added checks for the new options.
1104 (s390_emit_prologue): Emit stack check and trap code and perform
1105 compile time stack size checking.
1106
1107 * config/s390/s390.h (TARGET_OPTIONS): Added new options
1108 "warn-framesize", "warn-dynamicstack", "stack-size" and
1109 "stack-guard".
1110
1111 * doc/invoke.texi: Added documentation for the new options.
1112
1113 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
1114
1115 * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
1116 to eliminate warning.
1117 (linear_search_fdes): Declare p as unsigned.
1118 (binary_search_mixed_encoding_fdes): Likewise.
1119 * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
1120 to eliminate warning.
1121 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
1122 type cast.
1123
1124 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
1125
1126 * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
1127 * config/s390/s390.c (preferred_la_operand_p): Accept two operands
1128 instead of one. Check for strictly legitimate address.
1129 * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
1130 to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
1131
1132 2004-08-19 Eric Christopher <echristo@redhat.com>
1133
1134 * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
1135 * langhooks.h (unsave_expr_now): Ditto.
1136 * tree.h (unsave_expr_1): Remove prototype.
1137 (lhd_unsave_expr_now): Rename to unsave_expr_now.
1138 * tree-inline.c (unsave_expr_1): Move here
1139 from tree.c. Make static.
1140 (unsave_expr_now): Rename from lhd_unsave_expr_now.
1141 * tree-sra.c: Fix up for rename.
1142 * tree-ssa-copy.c: Ditto.
1143 * tree-eh.c: Ditto.
1144 * tree.c (unsave_expr_1): Move to tree-inline.c.
1145
1146 2004-08-19 Caroline Tice <ctice@apple.com>
1147
1148 * config/i386/cygming.h (switch_to_section): Fix typo (change
1149 in_unlikely_text_section to in_unlikely_executed_text).
1150
1151 2004-08-19 Daniel Berlin <dberlin@dberlin.org>
1152
1153 * vec.h (VEC_lower_bound): New macro.
1154
1155 2004-08-19 Richard Sandiford <rsandifo@redhat.com>
1156
1157 PR target/16446
1158 * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
1159 (mips_arg_info): Update accordingly. Remove common treatment of fpr_p;
1160 treat each ABI separately. Deal with n32/n64 complex float arguments.
1161 (function_arg): Add associated complex handling here.
1162
1163 2004-08-19 Richard Henderson <rth@redhat.com>
1164
1165 * config/arm/arm.c (arm_gen_load_multiple): Use
1166 adjust_automodify_address. Take base memory and offset instead
1167 of unchanging/struct/scalar bits.
1168 (arm_gen_store_multiple): Likewise.
1169 (arm_gen_movmemqi): Use adjust_automodify_address.
1170 * config/arm/arm-protos.h: Update decls.
1171 * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
1172 (store_multiple): Similarly.
1173
1174 2004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
1175
1176 * regclass.c (globalize_reg): Update call_really_used_regs.
1177
1178 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
1179
1180 * doc/invoke.texi (integer-share-limit): Document.
1181
1182 * tree.h (TYPE_CACHED_VALUES_P): New.
1183 (TYPE_CACHED_VALUES): New.
1184 (TYPE_ORIG_SIZE_TYPE): Adjust.
1185 * tree.def (INTEGER_CST): Update documentation.
1186 * tree.c: Inlcude params.h.
1187 (build_int_cst): Cache small values.
1188 (build_type_copy): Do not copy the value cache.
1189 * c-common.c (c_common_nodes_and_builtins): Add comment, remove
1190 unneeded zeroing.
1191 * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
1192 * expmed.c (const_mult_add_overflow_p): Clear type copy's value
1193 cache.
1194 * fold-const.c (force_fit_type): Copy value when setting
1195 overflows.
1196 (int_const_binop): Likewise.
1197 * stor-layout.c: Include params.h
1198 (set_sizetype): Create values cache.
1199 (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
1200 * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
1201 * params.h (INTEGER_SHARE_LIMIT): New.
1202 * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
1203
1204 2004-08-19 Paolo Bonzini <bonzini@gnu.org>
1205
1206 * gimplify.c (gimplify_minimax_expr): Remove.
1207 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
1208
1209 2004-08-19 Dorit Naishlos <dorit@il.ibm.com>
1210
1211 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
1212 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
1213
1214 2004-08-19 Mark Mitchell <mark@codesourcery.com>
1215
1216 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
1217
1218 2004-08-18 Andrew Pinski <apinski@apple.com>
1219
1220 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
1221
1222 2004-08-18 Mark Mitchell <mark@codesourcery.com>
1223
1224 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
1225 (__aeabi_ul2f): Likewise.
1226
1227 2004-08-18 Richard Henderson <rth@redhat.com>
1228
1229 * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
1230 move to rtl completely.
1231 (struct meminsnbuf, xtensa_emit_block_move): Remove.
1232 (xtensa_find_mode_for_size): Remove.
1233 * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
1234 * config/xtensa/xtensa.md (movmemsi_internal): Remove.
1235
1236 2004-08-18 Richard Henderson <rth@redhat.com>
1237
1238 * config/mcore/mcore.c (mode_from_align): Remove DImode.
1239 (block_move_sequence): Rewrite to use adjust_address.
1240 (mcore_expand_block_move): Cleanup logic. Accept only operands.
1241 Return boolean indicating success/failure.
1242 * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
1243 * config/mcore/mcore.md (movmemsi): Update to match.
1244
1245 2004-08-18 Mike Stump <mrs@apple.com>
1246
1247 * doc/invoke.texi (-mfix-and-continue): Add support for
1248 fast turn around debugging.
1249 (-ffix-and-continue): Likewise.
1250 (-mindirect-data): Likewise.
1251 (-findirect-data): Likewise.
1252 * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
1253 (indirect_data): Likewise.
1254 (machopic_data_defined_p): Likewise.
1255 (machopic_output_indirection): Likewise.
1256 (darwin_encode_section_info): Likewise.
1257 (darwin_fix_and_continue): Likewise.
1258 (darwin_fix_and_continue_switch): Likewise.
1259 * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
1260 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
1261 (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
1262 (SUBTARGET_OPTIONS): Likewise.
1263 (darwin_fix_and_continue): Likewise.
1264 (darwin_fix_and_continue_switch): Likewise.
1265 (TARGET_FIX_AND_CONTINUE): Likewise.
1266 * config/rs6000.c (rs6000_emit_prologue): Likewise.
1267
1268 2004-08-19 Steven Bosscher <stevenb@suse.de>
1269
1270 * basic-block.h (struct edge_def): Remove crossing_edge.
1271 (EDGE_CROSSING): New define.
1272 (EDGE_ALL_FLAGS): Update.
1273 * bb-reorder.c (find_traces_1_round, better_edge_p,
1274 find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
1275 find_jump_block, fix_crossing_conditional_branches,
1276 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
1277 Replace all occurences of crossing_edge with an edge flag check
1278 or set/reset.
1279 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1280 try_crossjump_bb): Likewise.
1281 * cfglayout.c (fixup_reorder_chain): Likewise.
1282 * cfgrtl.c (force_nonfallthru_and_redirect,
1283 commit_one_edge_insertion): Likewise.
1284
1285 * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
1286 * tree-flow.h (compute_dominance_frontiers): Move prototype...
1287 * basic-block.h: ...here.
1288 * tree-cfg.c (compute_dominance_frontiers_1,
1289 compute_dominance_frontiers): Move from here...
1290 * cfganal.c: ...to here. Include timevar.h.
1291
1292 2004-08-18 James E Wilson <wilson@specifixinc.com>
1293
1294 * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
1295 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
1296
1297 * config/mips/mips.md (type): Add frdiv.
1298 (divsf3+1, divsf3+2): Change type to frdiv.
1299 * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
1300 ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
1301
1302 * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
1303 * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
1304 * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
1305 * config/mips/5000.md (r5k_fdiv_single): Likewise.
1306 * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
1307 * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
1308 * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
1309 * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
1310 * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
1311 * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
1312 Likewise.
1313 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
1314
1315 2004-08-18 Robert Bowdidge <bowdidge@apple.com>
1316
1317 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
1318 get regression tester working again.
1319
1320 2004-08-18 Zack Weinberg <zack@codesourcery.com>
1321
1322 * insn-notes.def, reg-notes.def: New files.
1323 * rtl.h: Use them to define enum insn_note and enum reg_note.
1324 * rtl.c: Use them to define note_insn_name and reg_note_name.
1325 * Makefile.in (RTL_BASE_H): Update.
1326
1327 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
1328 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
1329
1330 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
1331
1332 * arm.c (arm_size_rtx_costs): New function.
1333 (arm_override_options): Use it if optimizing for space.
1334
1335 2004-08-18 Richard Henderson <rth@redhat.com>
1336
1337 * emit-rtl.c (gen_const_mem): New.
1338 * rtl.h (gen_const_mem): Declare.
1339 * expr.c (do_tablejump): Use it.
1340 * varasm.c (force_const_mem): Likewise.
1341 * config/darwin.c (machopic_indirect_data_reference): Likewise.
1342 (machopic_legitimize_pic_address): Likewise.
1343 * config/arm/arm.c (legitimize_pic_address): Likewise.
1344 * config/i386/i386.c (legitimize_pic_address): Likewise.
1345 (legitimize_tls_address): Likewise.
1346 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
1347 * config/ia64/ia64.md (load_fptr): Likewise.
1348 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
1349 * config/pa/pa.c (legitimize_pic_address): Likewise.
1350 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
1351 (rs6000_emit_move): Likewise.
1352 * config/s390/s390.c (legitimize_pic_address): Likewise.
1353 (legitimize_tls_address): Likewise.
1354 * config/s390/s390.md (casesi): Likewise.
1355 * config/sh/sh.c (sh_reorg): Likewise.
1356 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
1357 * config/v850/v850.md (casesi): Likewise.
1358
1359 * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
1360 * config/sh/sh.c (prepare_move_operands): Remove incorrect
1361 use of MEM_READONLY_P.
1362
1363 2004-08-18 Steven Bosscher <stevenb@suse.de>
1364
1365 * Makefile.in (OBJS-common): Add postreload-gcse.c.
1366 Add new postreload-gcse.o.
1367 * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
1368 (lookup_as_function, insert, rehash_using_reg, use_related_value,
1369 equiv_constant): Use SAFE_HASH instead of safe_hash.
1370 (exp_equiv_p): Export. Add for_gcse argument when comparing
1371 for GCSE.
1372 (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
1373 find_comparison_args, fold_rtx, cse_insn): Update callers.
1374 (hash_rtx): New function derived from old canon_hash and bits
1375 from gcse.c hash_expr_1.
1376 (canon_hash_string): Rename to hash_rtx_string.
1377 (canon_hash, safe_hash): Make static inline. Call hash_rtx.
1378 * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
1379 (cselib_lookup): Update this caller.
1380 * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
1381 Make static.
1382 (hash_expr): Call hash_rtx.
1383 (ldst_entry): Likewise.
1384 (expr_equiv_p): Call exp_equiv_p.
1385 (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
1386 reg_used_on_edge, reg_set_between_after_reload_p,
1387 reg_used_between_after_reload_p, get_avail_load_store_reg,
1388 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
1389 get_bb_avail_insn, hash_scan_set_after_reload,
1390 compute_hash_table_after_reload,
1391 eliminate_partially_redundant_loads, gcse_after_reload,
1392 get_bb_avail_insn, gcse_after_reload_main): Remove.
1393 * postreload-gcse.c: New file, reincarnating most of the above.
1394 * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
1395 (gcse_after_reload_main): Update prototype.
1396 * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
1397 * passes.c (rest_of_handle_gcse2): Use it.
1398
1399 2004-08-18 Diego Novillo <dnovillo@redhat.com>
1400
1401 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
1402 (pass_loop_done): Likewise.
1403
1404 2004-08-18 Andrew Pinski <apinski@apple.com>
1405
1406 * config/rs6000/darwin.md: Delete the altivec patterns which are
1407 handled differently now.
1408 (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
1409 (macho_correct_pic_di): Likewise.
1410 (call_indirect_nonlocal_darwin64): Likewise.
1411 Delete the save world/saveFP/saveVec patterns.
1412
1413 Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com>
1414 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1415 * config/rs6000/rs6000.md: Include darwin.md.
1416 (builtin_setjmp_receiver): Add DImode case.
1417 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1418 Darwin bits.
1419
1420 2004-08-18 Matt Austern <austern@apple.com>
1421
1422 Dead code stripping
1423 * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
1424 * darwin.c (darwin_file_end): Mark file as potentially strippable.
1425
1426 2004-08-18 Richard Henderson <rth@redhat.com>
1427
1428 * alias.c (readonly_fields_p): Remove.
1429 (objects_must_conflict_p): Don't call it.
1430 * tree.h (readonly_fields_p): Remove.
1431 * langhooks.h (struct lang_hooks): Remove honor_readonly.
1432 * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
1433
1434 2004-08-18 Diego Novillo <dnovillo@redhat.com>
1435
1436 * tree-dfa.c (add_referenced_var): Only global variables are
1437 call-clobbered.
1438 * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
1439 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
1440 all pointers dereferenced if the statement dereferences them.
1441 (create_name_tags): Do not create memory tags for pointers
1442 that have PT_ANYTHING set.
1443 Also check if PT_VARS is not empty before creating a name tag.
1444 (compute_flow_sensitive_aliasing): Don't mark call-clobbered
1445 variables that share the same alias set with a pointer that
1446 may point anywhere.
1447 (add_may_alias): Add FIXME comment to remove clobbering
1448 aliased variables and tags.
1449 (replace_may_alias): Likewise.
1450 (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
1451 (merge_pointed_to_info): If the original variable has not
1452 points-to information, call set_pt_anything.
1453 (add_pointed_to_var): Do not prevent adding a pointed-to
1454 variable if the pointers is PT_ANYTHING.
1455 If the variable is a global, set PT_GLOBAL_MEM.
1456 (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
1457 pointer type only come in PTR+OFFSET flavours.
1458 Always call merge_pointed_to_info on PHI arguments that are
1459 SSA_NAMEs.
1460 (get_nmt_for): Mark call-clobbered tags whose pointer points
1461 to global memory.
1462 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
1463 values.
1464 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
1465 FLAGS.
1466 (add_stmt_operand): Abort if the caller tried to add a killing
1467 definition for a memory tag.
1468 * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
1469 unnecessary checks.
1470
1471 2004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
1472
1473 * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
1474 from call_used_regs. Update call_really_used_regs.
1475 (CALL_REALLY_USED_REGISTERS): Define.
1476 * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
1477 Replace call_used_regs with call_really_used_regs.
1478 (calc_live_regs, sh_media_register_for_return): Likewise.
1479 (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
1480 * sh.md (return_media): Likewise.
1481
1482 2004-08-18 Andrew Pinski <apinski@apple.com>
1483
1484 * config/darwin.c (machopic_legitimize_pic_address): Only set
1485 MEM_READONLY_P in the non TARGET_TOC case.
1486
1487 2004-08-18 Zack Weinberg <zack@codesourcery.com>
1488
1489 * rtl.def (NIL): Delete.
1490 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
1491 Tighten the syntax a little.
1492
1493 * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
1494 * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
1495 * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
1496 * config/i386/predicates.md, config/m32r/m32r.h
1497 * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
1498 * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
1499 * config/sparc/sparc.h, doc/tm.texi:
1500 Replace all occurrences of NIL with UNKNOWN.
1501
1502 2004-08-18 Zack Weinberg <zack@codesourcery.com>
1503
1504 * dojump.c (do_jump <unordered_bcc>): Do not recursively call
1505 self with a TRUTH_ORIF_EXPR; generate the appropriate jump
1506 sequence inline. Move drop_through_label code into this
1507 block, being the only place it is used. Adjust comments.
1508
1509 2004-08-18 Fariborz Jahanian <fjahanian@apple.com>
1510
1511 * config/rs6000/altivec.md: Add new patterns for calls to
1512 save_world/rest_world functions.
1513
1514 * config/rs6000/rs6000-protos.h: (save_world_operation,
1515 restore_world_operation) new declarations.
1516
1517 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
1518 field added.
1519 (rs6000_stack_info): Set world_save_p field.
1520 (save_world_operation): New function.
1521 (restore_world_operation): New function.
1522 (compute_save_world_info): New function.
1523 (rs6000_stack_info): Call compute_save_world_info.
1524 (rs6000_emit_prologue): Check for world_save_p and generate
1525 pattern to call save_world for saving all non-volatile and
1526 special registers.
1527 (rs6000_emit_epilogue): Check for world_save_p and generate
1528 pattern to call rest_world to restore saved registers.
1529
1530 config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
1531 FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
1532 (rs6000_reg_names): New entries added for save_world_operation and
1533 restore_world_operation.
1534
1535 2004-08-18 Caroline Tice <ctice@apple.com>
1536
1537 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
1538 "-freorder-blocks-and-partition" to the flags used in second
1539 stage of profiledbootstrap.
1540 * bb-reorder.c (push_to_next_round_p): Add new variable,
1541 next_round_is_last; set and use variable to make sure, when
1542 partitioning, that the last trace construction round consists
1543 of all (and only) cold basic blocks.
1544 (rotate_loop): Don't copy blocks that end in a section
1545 crossing jump.
1546 (copy_bb): Correctly initialize "partition" of duplicated bb.
1547 (add_unlikely_executed_notes): Add a comment.
1548 (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
1549 to make sure, if function contains hot blocks, that the
1550 successors of ENTRY_BLOCK_PTR are hot; also, only look for
1551 crossing edges if the architecture supports named sections.
1552 (mark_bb_for_unlikely_executed_section): Modify to always
1553 insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
1554 the basic block note insn.
1555 (fix_crossing_unconditional_branches): Remove extra space.
1556 (fix_edges_for_rarely_executed_code): Modify to only do
1557 partitioning work if the architecture supports named sections.
1558 (reorder_basic_blocks): Modify to only add
1559 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
1560 supports named sections.
1561 * c-common.c (handle_section_attribute): Initialize new global
1562 variable, user_defined_section_attribute, to true if user has
1563 specified one.
1564 * cfgcleanup.c (try_forward_edges): Modify to not attempt to
1565 forward edges that cross section boundaries.
1566 * cfglayout.c (fixup_reorder_chain): Modify to only fix up
1567 partitioning information if the architecture supports named
1568 sections.
1569 * cfgrtl.c (target.h): Add statement to include this.
1570 (rtl_split_block): Make sure newly created bb gets correct
1571 partition.
1572 (try_redirect_by_replacing_jump): Make sure redirection isn't
1573 attempting to cross section boundaries.
1574 (force_nonfallthru_and_redirect): Only do partition fix up if
1575 architecture supports named sections.
1576 (rtl_split_edge): Make sure newly created bb ends up in
1577 correct partition.
1578 (commit_one_edge_insertion): Remove code that incorrectly
1579 updated basic block partition; Make sure partition fix up only
1580 happens if architecture supports named sections and it's not
1581 already done.
1582 (rtl_verify_flow_info_1): Fix if-condition on test/error
1583 condition that fallthru edges are not allowed to cross section
1584 boundaries.
1585 * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
1586 * final.c (final_scan_insn): Remove redundant test from if-statement;
1587 change calls to text_section into calls to function_section; add code
1588 to only to partitioning fix up if architecture supports named
1589 sections.
1590 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
1591 partition.
1592 (if_convert): Add targetm.have_named_sections to test.
1593 * output.h (unlikely_section_label): Extern declaration for new global
1594 variable.
1595 (unlikely_text_section_name): Likewise.
1596 * opts.c (decode_options): If both partitioning and DWARF debugging
1597 are turned on, issue a warning that this doesn't work, and change
1598 partitiong to basic block reordering (without hot/cold partitions).
1599 * passes.c (rest_of_handle_final): Re-set new global variable,
1600 user_defined_section_attribute, to false.
1601 (rest_of_compilation): Change options for calling partitioning
1602 function: Don't call if the user defined the section attribute, and
1603 don't call if DECL_ONE_ONLY is true for the current function.
1604 * predict.c (choose_function_section): Return immediately if we
1605 are doing hot/cold partitioning (i.e. let the basic block partitioning
1606 determine where the function belongs).
1607 * reg-stack.c (emit_swap_insn): Add condition to step over
1608 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1609 * toplev.c (user_defined_section_attribute): New global variable.
1610 * toplev.h (user_defined_section_attribute): Extern declaration
1611 for new global variable.
1612 * varasm.c (unlikely_section_label): New global variable.
1613 (unlikely_text_section_name): New global variable.
1614 (unlikely_text_section): Add code to initialize
1615 unlikely_text_section_name if necessary; modify to use
1616 unlikely_text_section_name and unlikely_section_label; also to use
1617 named_section properly.
1618 (in_unlikely_text_section): Modify to work correctly with
1619 named_section and to use unlikely_text_section_name.
1620 (named_section): Add code to work properly with cold section.
1621 (function_section): Clean up if-statement.
1622 * config/darwin.c (darwin_asm_named_section): Return to original
1623 code, removing use of SECTION_FORMAT_STRING.
1624 * config/arm/pe.h (switch_to_section): Add case for
1625 in_unlikely_executed_text to switch statement.
1626 * config/i386/cygming.h (switch_to_section): Likewise.
1627 * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
1628 (SECTION_FORMAT_STRING): Likewise.
1629 * config/mcore/mcore.h (switch_to_section): Likewise.
1630 * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
1631 (SECTION_FORMAT_STRING): Remove.
1632
1633 2004-08-18 Roger Sayle <roger@eyesopen.com>
1634
1635 * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
1636 -ffixed-reg safe, by preserving the meanings of zero and one.
1637 (CALL_USED_REGISTERS): Likewise.
1638 (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
1639
1640 2004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
1641
1642 * config/sh/sh.c (split_branches): Check the result of
1643 next_active_insn.
1644 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
1645 Call rtl_register_cfg_hooks.
1646
1647 2004-08-18 Richard Henderson <rth@redhat.com>
1648
1649 * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
1650 * alias.c (true_dependence): Update to match new semantics.
1651 (canon_true_dependence, write_dependence_p): Likewise.
1652 (anti_dependence, output_dependence): Update write_dependence_p args.
1653 (unchanging_anti_dependence): Remove.
1654 * calls.c (purge_mem_unchanging_flag): Remove.
1655 (fixup_tail_calls): Don't call it.
1656 (expand_call): Don't add unchanging memory to function usage.
1657 * expr.c (emit_block_move_via_libcall): Likewise.
1658 (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
1659 (get_subtarget): Don't use RTX_UNCHANGING_P.
1660 (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
1661 (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
1662 * combine.c (get_last_value_validate): Use MEM_READONLY_P.
1663 * cse.c (insert): Don't use RTX_UNCHANGING_P.
1664 (cse_insn, canon_hash): Use MEM_READONLY_P.
1665 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
1666 instead of RTX_UNCHANGING_P.
1667 * explow.c (maybe_set_unchanging): Remove.
1668 * expr.h (maybe_set_unchanging): Remove.
1669 * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
1670 * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
1671 (assign_parm_setup_reg, expand_function_start): Likewise.
1672 * integrate.c (copy_rtx_and_substitute): Likewise.
1673 * ra-rewrite.c (emit_colors): Likewise.
1674 * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
1675 (fixup_match_1): Likewise.
1676 * reload1.c (reload, alter_reg): Likewise.
1677 * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
1678 not RTX_UNCHANGING_P.
1679 (equiv_init_varies_p): Likewise.
1680 * loop-invariant.c (check_maybe_invariant): Likewise.
1681 * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
1682 * loop.c (note_addr_stored): Likewise.
1683 (prescan_loop): Likewise. Don't check function usage for clobbered
1684 unchanging memory.
1685 * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
1686 not RTX_UNCHANGING_P.
1687 (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
1688 * varasm.c (force_const_mem): Likewise.
1689 * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
1690 * web.c (entry_register): Likewise.
1691 * tree-gimple.h (get_base_address): Move decl ...
1692 * tree.h: ... here.
1693 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
1694
1695 * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
1696 called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
1697 (alpha_set_memflags): Update to match.
1698
1699 * config/darwin.c (machopic_indirect_data_reference): Set
1700 MEM_READONLY_P instead of RTX_UNCHANGING_P.
1701 (machopic_indirect_call_target): Likewise.
1702 (machopic_legitimize_pic_address): Likewise.
1703 * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
1704 arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
1705 * config/arm/arm.md (load_multiple, store_multiple): Likewise.
1706 * config/frv/frv.md (symGOT2reg): Likewise.
1707 * config/i386/i386.c (legitimize_pic_address,
1708 legitimize_tls_address, ix86_split_to_parts): Likewise.
1709 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
1710 * config/ia64/ia64.md (load_fptr): Likewise.
1711 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
1712 * config/m68k/m68k.c (legitimize_pic_address): Likewise.
1713 * config/mcore/mcore.c (block_move_sequence): Likewise.
1714 * config/mn10300/mn10300.md (symGOT2reg): Likewise.
1715 * config/pa/pa.c (legitimize_pic_address): Likewise.
1716 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
1717 (rs6000_emit_move): Likewise.
1718 * config/s390/s390.c (legitimize_pic_address): Likewise.
1719 (legitimize_tls_address): Likewise.
1720 * config/s390/s390.md (casesi): Likewise.
1721 * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
1722 * config/sh/sh.md (symGOT2reg): Likewise.
1723 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
1724 * config/v850/v850.md (casesi): Likewise.
1725
1726 * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
1727 * config/iq2000/iq2000.c (save_restore_insns): Likewise.
1728 * config/mips/mips.c (mips_restore_gp): Likewise.
1729 (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
1730 * config/sh/sh.c (sh_reorg): Likewise.
1731
1732 2004-08-18 Richard Henderson <rth@redhat.com>
1733
1734 * tree.h (struct tree_decl): Add gimple_formal_temp.
1735 (DECL_GIMPLE_FORMAL_TEMP_P): New.
1736 * gimplify.c (pop_gimplify_context): Clear it.
1737 (lookup_tmp_var): Set it, if is_formal.
1738 (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
1739 Use is_gimple_val for VECTOR. Simplify return value.
1740 (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
1741 (gimplify_expr): Likewise.
1742 * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
1743 is_gimple_tmp_rhs for clarity. Update all callers.
1744 (is_gimple_reg_rhs): Simplify logic.
1745 (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
1746 clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
1747 (is_gimple_formal_tmp_reg): Similarly.
1748 * tree-gimple.h: Update decls.
1749 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
1750 DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting.
1751 * tree-ssa-live.c (var_union, type_var_init): Likewise.
1752
1753 2004-08-18 Paolo Bonzini <bonzini@gnu.org>
1754
1755 * c4x.c (legitimize_operands): Remove calls to
1756 preserve_subexpressions_p.
1757
1758 2004-08-18 David Edelsohn <edelsohn@gnu.org>
1759
1760 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
1761 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
1762
1763 2004-08-18 Ziemowit Laski <zlaski@apple.com>
1764
1765 * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
1766 Objective-C++ extensions.
1767 * gengtype.c (get_file_basename): Match entire subdirectory name
1768 ('cp', 'objc', 'objcp') rather than just its suffix.
1769 (get_base_file_bitmap): Allow for files to belong to more than one
1770 language.
1771 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
1772 used by more than one front-end.
1773
1774 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
1775
1776 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
1777 avoid use of preserve_subexpressions_p.
1778
1779 2004-08-17 Richard Henderson <rth@redhat.com>
1780
1781 PR 17051
1782 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
1783
1784 2004-08-17 DJ Delorie <dj@redhat.com>
1785
1786 * doc/extend.texi: Document new xstormy16 attribute.
1787
1788 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
1789 (xstormy16_splittable_below100_or_register): New.
1790 (combine_bnp): New.
1791 (xstormy16_reorg): New.
1792 (TARGET_MACHINE_DEPENDENT_REORG): Define.
1793
1794 * config/stormy16/stormy16.md (movqi_internal): Make name public.
1795 (movhi_internal): Likewise.
1796 (cbhranchhi): Likewise.
1797 (cbhranchhi_neg): Likewise.
1798 (andhi3): Only allow splittable below100 operands.
1799 (iorhi3): Likewise.
1800 (peephole2): New and/zero_extend->and peephole.
1801 (peephole2): New load/ior/save->set1 peephole.
1802 (peephole2): New load/and/save->clr1 peephole.
1803 (bclrx, bclrx2, bclr7, bclr15): New.
1804 (bsetx, bsetx2, bset7, bset15): New.
1805
1806 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
1807 liberal about acceptable 'B' masks.
1808
1809 * config/stormy16/stormy16-protos.h
1810 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
1811 xstormy16_below100_operand, xstormy16_below100_or_register,
1812 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
1813 (PREDICATE_CODES): Add new predicates.
1814
1815 * config/stormy16/stormy16.c
1816 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
1817 xstormy16_below100_operand, xstormy16_below100_or_register,
1818 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
1819 (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
1820 (xstormy16_legitimate_address_p): Allow below100 symbols.
1821 (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
1822 (xstormy16_expand_move): Leave below100 operands as-is.
1823 (xstormy16_encode_section_info): Encode below100 symbols.
1824 (xstormy16_strip_name_encoding): New.
1825 (xstormy16_print_operand): Print 'b' as shift mask.
1826 (xstormy16_attribute_table): Add below100 attributes.
1827 (xstormy16_handle_below100_attribute): New.
1828
1829 * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
1830 (XSTORMY16_SECTION_FUNCTION): New.
1831 (EXTRA_SECTION_FUNCTIONS): Define using the above.
1832 (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
1833 (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
1834 (ASM_OUTPUT_LABELREF): Define.
1835
1836 * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
1837 (movhi_internal): Add below100 support.
1838 (andhi3): Add below100 support.
1839 (iorhi3): Add below100 support.
1840 (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
1841
1842 2004-08-17 James E Wilson <wilson@specifixinc.com>
1843
1844 * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
1845 of VOIDmode for comparison code mode.
1846 * config/mips/mips.md: For conditional move patterns, use mode of
1847 first compare operand for comparison mode, instead of VOIDmode.
1848
1849 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
1850 normal and -ffast-math code.
1851
1852 2004-08-17 Mark Mitchell <mark@codesourcery.com>
1853
1854 PR c++/15871
1855 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
1856
1857 2004-08-17 Robert Bowdidge <bowdidge@apple.com>
1858
1859 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
1860
1861 2004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
1862
1863 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
1864 for non Darwin targets.
1865 (*call_value_nonlocal_darwin64): Likewise.
1866
1867 2004-08-17 Fariborz Jahanian <fjahanian@apple.com>
1868
1869 * config/rs6000/rs6000.c (rs6000_function_value): Check for
1870 altivec mode for altivec return register.
1871
1872 2004-08-17 David Edelsohn <edelsohn@gnu.org>
1873
1874 Revert 2004-08-16 Stan Shebs <shebs@apple.com>
1875 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1876 * config/rs6000/rs6000.md: Include darwin.md.
1877 (builtin_setjmp_receiver): Add DImode case.
1878 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1879 Darwin bits.
1880
1881 2004-08-17 Dorit Naishlos <dorit@il.ibm.com>
1882
1883 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
1884 trees.
1885 * tree-vectorizer.h: New File: Same.
1886 * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
1887 * common.opt (ftree-vectorize): New flag to enable vectorization.
1888 * timevar.def (TV_TREE_VECTORIZATION): New dump file for
1889 vectorization pass.
1890 * tree-data-ref.h (init_data_ref): Additional argument.
1891 (array_base_name_differ_p): Moved to tree-data-ref.c.
1892 * tree-data-ref.c (array_base_name_differ_p): Revised.
1893 (initialize_data_dependence_relation): Call array_base_name_differ_p
1894 with an extra argument.
1895 (analyze_all_data_dependences): Same.
1896 (init_data_ref): Additional argument is_read to set DR_IS_READ.
1897 * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
1898 file.
1899 * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
1900 * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
1901 * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
1902 vectorization pass.
1903 * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
1904 (tree_ssa_loop_done): Call scev_finalize.
1905 (tree_vectorize): Define the new vectorization pass.
1906 * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
1907 size of the vector they support (until support for multiple vector
1908 sizes is added to the vectorizer).
1909 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
1910 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
1911 * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
1912 documentation.
1913
1914 2004-08-17 Nathan Sidwell <nathan@codesourcery.com>
1915
1916 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
1917 usage.
1918 (generate_protocol_list, handle_impent): Likewise.
1919
1920 2004-08-17 Roger Sayle <roger@eyesopen.com>
1921
1922 * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
1923 ensure that call_used_regs is a superset of both fixed_regs and
1924 call_really_used_regs.
1925
1926 2004-08-17 Daniel Bornstein <danfuzz@milk.com>
1927
1928 PR target/17019
1929 * arm.md (addsi3_cbranch_scratch): Correct case labels.
1930
1931 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
1932
1933 PR middle-end/17036
1934 * fold-const.c (fold): Check for integer operand when
1935 folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew
1936 Pinski <pinskia@physics.uc.edu>.
1937
1938 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
1939
1940 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
1941 No need to check if in a cross configuration.
1942 * configure: Regenerate.
1943
1944 * calls.c (precompute_register_parameters):
1945 Inline preserve_subexpressions_p ().
1946 * expmed.c (expand_mult_const, emit_store_flag): Likewise.
1947 * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
1948 Likewise.
1949 * expr.c (get_subtarget): Likewise.
1950 * rtl.h (preserve_subexpressions_p): Remove.
1951 * stmt.c (preserve_subexpressions_p): Remove.
1952
1953 * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
1954 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
1955 Abort on gimplified cases.
1956
1957 2004-08-16 James E Wilson <wilson@specifixinc.com>
1958
1959 * tree.h (VECTOR_FLOAT_TYPE_P): New.
1960 (FLOAT_TYPE_P): Use it.
1961 * c-typeck.c (build_binary_op): After convert calls, check for
1962 check for ERROR_MARK operands.
1963
1964 2004-08-16 Zack Weinberg <zack@codesourcery.com>
1965
1966 * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
1967 (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
1968 (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
1969 (genobjs static pattern rule): Remove %.c dependency.
1970 ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
1971 Rename rules; delete commands; fix dependencies.
1972 (mostlyclean): Do not delete temporary source copies.
1973 * configure.ac: Delete all references to BUILD_PREFIX and
1974 BUILD_PREFIX_1.
1975 * configure: Regenerate.
1976
1977 * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
1978 Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
1979 basic-block.h #ifdef GENERATOR_FILE. Surround some more code
1980 with #ifndef GENERATOR_FILE so that nothing from those headers
1981 is used.
1982
1983 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
1984
1985 2004-08-16 Adam Nemet <anemet@lnxw.com>
1986
1987 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
1988
1989 2004-08-16 Andrew Pinski <apinski@apple.com>
1990
1991 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
1992 extraneous semicolon.
1993
1994 2004-08-16 Devang Patel <dpatel@apple.com>
1995
1996 * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
1997 * print-tree.c (print_node): Print DECL_PRESERVE_P.
1998 * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
1999 (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
2000 * target.h (struct gcc_target): New member, mark_decl_preserved.
2001 * hooks.c (hook_void_charptr): Rename to ...
2002 (hook_void_constcharptr): ... new name.
2003 * hooks.h (hook_void_charptr): Rename to ..
2004 (hook_void_constcharptr): ... new name.
2005 * tree.h (DECL_PRESERVE_P): New #define.
2006 (struct tree_decl): New member, preserve_flag.
2007 * varasm.c (assemble_start_function): Mark decl preserved.
2008 (assemble_variable): Same.
2009 * darwin.c (darwin_mark_decl_preserved): New function.
2010 * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
2011 * darwin-protos.h (darwin_mark_decl_preserved): New decl.
2012 * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
2013
2014 2004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
2015
2016 * c-decl.c (grokdeclarator): Allow for function definition where
2017 innermost declarator has attributes.
2018
2019 2004-08-16 Fariborz Jahanian <fjahanian@apple.com>
2020
2021 * except.c (get_exception_filter, build_post_landing_pads,
2022 dw2_build_landing_pads): Use target-specific mode for 'filter'.
2023 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
2024 * target.h (eh_return_filter_mode): New field added.
2025 * targhooks.c (default_eh_return_filter_mode): Defined.
2026 * targhooks.h (default_eh_return_filter_mode): Declared.
2027 * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
2028
2029 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
2030
2031 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
2032 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
2033 * configure: Regenerate.
2034
2035 2004-08-16 Stan Shebs <shebs@apple.com>
2036
2037 Basic support for 64-bit Darwin.
2038 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
2039 (machopic_legitimize_pic_address): Similarly, plus use Pmode
2040 instead of SImode.
2041 * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
2042 (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
2043 (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
2044 (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
2045 (PROCESSOR_DEFAULT64): Define.
2046 * config/rs6000/darwin.md: New file, patterns specific to 64-bit
2047 Darwin.
2048 * config/rs6000/rs6000.md: Include darwin.md.
2049 (builtin_setjmp_receiver): Add DImode case.
2050 * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
2051 Darwin.
2052 (TARGET_ASM_ALIGNED_DI_OP): Ditto.
2053 (rs6000_emit_move): Add DImode case to Darwin bits.
2054 (machopic_output_stub): Use .quad if 64-bit.
2055 * invoke.texi: Document -m32 and -m64.
2056
2057 2004-08-16 Janis Johnson <janis187@us.ibm.com>
2058
2059 * doc/extend.texi (AltiVec builtins): Document additional differences
2060 from the Motorola AltiVec PIM.
2061
2062 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
2063
2064 * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
2065 * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
2066 (struct tree_common): Update public_flag documentation.
2067
2068 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
2069
2070 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2071 Check for artificial variables, not is_gimple_tmp_var.
2072 * tree-ssa-live.c (var_union): Likewise.
2073
2074 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
2075
2076 * calls.c (load_register_parameters): Remove spurious FIXME token.
2077
2078 2004-08-15 Ziemowit Laski <zlaski@apple.com>
2079
2080 * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
2081 (c-lang.o): Depend on c-objc-common.h.
2082 (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
2083 c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
2084 * c-lang.c: Include c-objc-common.h.
2085 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
2086 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
2087 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
2088 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
2089 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
2090 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
2091 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
2092 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
2093 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
2094 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
2095 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
2096 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
2097 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
2098 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
2099 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
2100 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
2101 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
2102 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
2103 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
2104 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
2105 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
2106 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
2107 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
2108 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
2109 Move to c-objc-common.h.
2110 * c-objc-common.c: Include c-objc-common.h.
2111 * c-objc-common.h: New file.
2112
2113 2004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2114 Andrew Pinski <pinskia@physics.uc.edu>
2115
2116 PR target/14931
2117 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
2118 style.
2119
2120 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
2121
2122 * tree.h (build_int_cst): New.
2123 (build_int_2): Remove.
2124 * tree.c (build_int_2): Remove.
2125 (build_int_cst): New.
2126 (make_vector_type, build_common_tree_nodes,
2127 build_common_tree_nodes_2): Use build_int_cst.
2128 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
2129 expand_builtin_strpbrk, expand_builtin_fputs,
2130 build_string_literal, expand_builtin_printf,
2131 expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
2132 fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
2133 fold_builtin_isdigit, simplify_builtin_strstr,
2134 simplify_builtin_strpbrk, fold_builtin_fputs,
2135 simplify_builtin_sprintf): Use build_int_cst.
2136 * c-common.c (start_fname_decls, fix_string_type,
2137 c_common_nodes_and_builtins, c_init_attributes,
2138 shorten_compare): Likewise.
2139 * c-decl.c (complete_array_type,
2140 check_bitfield_type_and_width): Likewise.
2141 * c-lex.c (interpret_integer, lex_charconst): Likewise.
2142 * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
2143 * c-pretty-print.c (pp_c_integer_constant): Likewise.
2144 * c-typeck.c (really_start_incremental_init, push_init_level,
2145 set_nonincremental_init_from_string): Likewise.
2146 * calls.c (load_register_parameters): Likewise.
2147 * convert.c (convert_to_pointer): Likewise.
2148 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
2149 build_fn_info_type, build_ctr_info_value, build_gcov_info):
2150 Likewise.
2151 * except.c (init_eh, assign_filter_values, assign_filter_values):
2152 Likewise.
2153 * expmed.c (store_fixed_bit_field, extract_bit_field,
2154 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
2155 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
2156 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
2157 * expr.c (convert_move, emit_group_load, emit_group_store,
2158 expand_assignment, store_constructor, store_field,
2159 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2160 * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
2161 invert_truthvalue, optimize_bit_field_compare,
2162 decode_field_reference, all_ones_mask_p, constant_boolean_node,
2163 fold_div_compare, fold, fold_read_from_constant_string,
2164 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
2165 * function.c (assign_parm_setup_block): Likewise.
2166 * stmt.c (shift_return_value, expand_end_case_type,
2167 estimate_case_costs): Likewise.
2168 * stor-layout.c (layout_type, initialize_sizetypes,
2169 set_min_and_max_values_for_integral_type): Likewise.
2170 * tree-chrec.c (chrec_fold_multiply_poly_poly,
2171 reset_evolution_in_loop): Likewise.
2172 * tree-chrec.h (build_polynomial_chrec): Likewise.
2173 * tree-complex.c (build_replicated_const): Likewise.
2174 * tree-eh.c (honor_protect_cleanup_actions,
2175 lower_try_finally_onedest, lower_try_finally_copy,
2176 lower_try_finally_switch): Likewise.
2177 * tree-mudflap.c (mf_build_string, mx_register_decls,
2178 mudflap_register_call, mudflap_enqueue_constant): Likewise.
2179 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
2180 * tree-pretty-print.c (dump_generic_node): Likewise.
2181 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
2182 Likewise.
2183 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2184 * tree-ssa-loop-niter.c (number_of_iterations_cond,
2185 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
2186 Likewise.
2187
2188 * config/alpha/alpha.c (alpha_initialize_trampoline,
2189 alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
2190 * config/arm/arm.c (arm_get_cookie_size): Likewise.
2191 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2192 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2193 * config/i860/i860.c (i860_va_start): Likewise.
2194 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2195 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
2196 mips_gimplify_va_arg_expr): Likewise.
2197 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2198 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
2199 add_compiler_branch_island): Likewise.
2200 * config/s390/s390.c (s390_va_start): Likewise.
2201 * config/sh/sh.c (sh_va_start): Likewise.
2202 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2203 Likewise.
2204 * config/xtensa/xtensa.c (xtensa_va_start,
2205 xtensa_gimplify_va_arg_expr): Likewise.
2206
2207 * objc/objc-act.c (build_objc_string_object,
2208 build_objc_symtab_template, init_def_list, init_objc_symtab,
2209 init_module_descriptor, generate_static_references,
2210 build_selector_translation_table, get_proto_encoding,
2211 build_typed_selector_reference, build_selector_reference,
2212 build_next_objc_exception_stuff,
2213 build_method_prototype_list_template, generate_descriptor_table,
2214 generate_protocols, build_protocol_initializer,
2215 build_ivar_list_template, build_method_list_template,
2216 build_ivar_list_initializer, generate_ivars_list,
2217 generate_dispatch_table, generate_protocol_list,
2218 build_category_initializer, build_shared_structure_initializer,
2219 generate_shared_structures, handle_impent,
2220 generate_objc_image_info): Use build_int_cst.
2221
2222 2004-08-15 Ben Elliston <bje@au.ibm.com>
2223
2224 * vec.h: Comment improvements.
2225
2226 2004-08-14 Roger Sayle <roger@eyesopen.com>
2227
2228 * c-common.c (shorten_compare, pointer_int_sum,
2229 c_common_truthvalue_conversion, boolean_increment): Replace calls
2230 to build with calls to buildN.
2231 * c-decl.c (complete_array_type, grokdeclarator): Likewise.
2232 * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
2233 gimplify_switch_stmt): Likewise.
2234 * c-typeck.c (default_function_array_conversion,
2235 build_component_ref, build_array_ref, build_function_call,
2236 pointer_diff, build_unary_op, build_conditional_expr,
2237 build_compound_expr, build_modify_expr, c_finish_goto_label,
2238 c_finish_goto_ptr, c_finish_return, c_finish_loop,
2239 c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
2240 build_binary_op): Likewise.
2241
2242 2004-08-15 Steven Bosscher <stevenb@suse.de>
2243
2244 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
2245
2246 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2247
2248 * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
2249 curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
2250 * fixinc/fixincl.x: Rebuilt.
2251
2252 2004-08-14 Richard Sandiford <rsandifo@redhat.com>
2253
2254 * config/mips/mips-protos.h (mips_symbolic_constant_p)
2255 (mips_atomic_symbolic_constant_p, mips_stack_address_p)
2256 (mips_small_data_pattern_p): Declare.
2257 * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
2258 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
2259 * config/mips/mips.c (mips_symbolic_constant_p): Make global.
2260 (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
2261 (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
2262 (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
2263 (reg_or_const_float_1_operand, hilo_operand, extend_operator)
2264 (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
2265 (pc_or_label_operand, call_insn_operand, move_operand)
2266 (consttable_operand, symbolic_operand, general_symbolic_operand)
2267 (global_got_operand, local_got_operand, stack_operand)
2268 (fp_register_operand, lo_operand, fcc_register_operand): Delete.
2269 (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
2270 (mips_small_data_pattern_p): Replace previous small_data_pattern
2271 predicate. Turn into a bool () (rtx) function.
2272 * config/mips/predicates.md: New file.
2273 * config/mips/mips.md: Include it. Use the target-independent
2274 comparison_operator instead of cmp_op. Rename trap_cmp_op to
2275 trap_comparison_operator and equality_op to equality_operator.
2276 Replace uses of small_int with the equivalent const_arith_operand.
2277 Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename
2278 const_float_1_operand to const_1_operand. Rename fcc_register_operand
2279 to fcc_reload_operand.
2280 * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
2281
2282 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2283
2284 PR libstdc++/17005 partial fix.
2285 * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
2286 except when generating ANSI/C89 code.
2287
2288 2004-08-14 Nathan Sidwell <nathan@codesourcery.com>
2289
2290 * c-common.c (shorten_compare): Use force_fit_type directly.
2291
2292 2004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
2293 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
2294 Dave Korn <dk@artimi.com>
2295
2296 * doc/install.texi (Building): Avoid duplicate reference to GNU
2297 make requirement.
2298 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
2299
2300 2004-08-14 Richard Henderson <rth@redhat.com>
2301
2302 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
2303 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
2304
2305 2004-08-13 Richard Henderson <rth@redhat.com>
2306
2307 * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
2308 for constant_call_address_operand.
2309 (call_value_pop_1, call_value_1): Likewise.
2310 (sibcall_value_1, call_value_1_rex64): Likewise.
2311
2312 2004-08-13 James E Wilson <wilson@specifixinc.com>
2313
2314 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
2315 Correct mode from SFmode to DFmode.
2316
2317 2004-08-13 Ziemowit Laski <zlaski@apple.com>
2318
2319 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
2320 __cstring_object and __image_info sections with the no_dead_strip
2321 attribute.
2322
2323 2004-08-13 Roger Sayle <roger@eyesopen.com>
2324 David Billinghurst <David.Billinghurst@riotinto.com>
2325
2326 PR libgfortran/15930
2327 * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
2328 * fixinc/fixincl.x: Regenerate.
2329 * fixinc/tests/base/internal/math_core.h: New file.
2330
2331 2004-08-13 Richard Henderson <rth@redhat.com>
2332
2333 * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
2334 (dbxout_function_end): Remove ifdefs for it.
2335 (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
2336
2337 2004-08-13 Richard Henderson <rth@redhat.com>
2338
2339 * Makefile.in (insn-preds.o): Depend on TREE_H.
2340 * genpreds.c (write_insn_preds_c): Include tree.h.
2341 * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
2342 reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
2343 const48_operand, and_operand, or_operand, mode_width_operand,
2344 mode_mask_operand, mul8_operand, const0_operand,
2345 hard_fp_register_operand, hard_int_register_operand,
2346 reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
2347 samegp_function_operand, direct_call_operand, small_symbolic_operand,
2348 global_symbolic_operand, call_operand, symbolic_operand,
2349 dtp16_symbolic_operand, dtp32_symbolic_operand,
2350 gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
2351 gottp_symbolic_operand, alpha_comparison_operator,
2352 alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
2353 signed_comparison_operator, alpha_fp_comparison_operator,
2354 divmod_operator, fix_operator, aligned_memory_operand,
2355 unaligned_memory_operand, reg_or_unaligned_mem_operand,
2356 any_memory_operand, reg_not_elim_operand, normal_memory_operand,
2357 reg_no_subreg_operand, addition_operation): Move to predicates.md.
2358 (reg_or_const_int_operand): Remove. Replace all users with
2359 reg_or_cint_operand.
2360 (tls_symbolic_operand_1): Export. Don't check mode or for CONST.
2361 (resolve_reload_operand): Split out of aligned_memory_operand.
2362 * config/alpha/alpha-protos.h: Update for exports.
2363 * config/alpha/alpha.h (PREDICATE_CODES): Remove.
2364 * config/alpha/alpha.md: Include predicates.md.
2365 * config/alpha/predicates.md: New file.
2366
2367 2004-08-13 Richard Sandiford <rsandifo@redhat.com>
2368
2369 * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
2370 fields with a pointer to the instruction definition.
2371 (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
2372 (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
2373 (write_attr_case, write_const_num_delay_slots): Update accordingly.
2374 (write_attr_case, write_const_num_delay_slots): Write the name of
2375 an insn next to its case statement.
2376 * genoutput.c (data): Add a filename field.
2377 (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
2378 (output_insn_data): Print the location of each insn definition.
2379 * genrecog.c (write_action): Print the name of an insn above
2380 the statement that returns its code.
2381
2382 2004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
2383
2384 * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
2385 * config/libgloss.h: Likewise.
2386 * config/arm/arm.c (arm_gen_load_multiple): Likewise.
2387 * c4x/c4x-modes.def: Likewise.
2388 * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
2389 (c4x_rptb_nop_p): Likewise.
2390 (c4x_rptb_valid_p): Likewise.
2391 (c4x_rptb_insert): Likewise.
2392 (c4x_address_conflict): Likewise.
2393 * config/c4x/c4x.md: Likewise.
2394 * config/frv/frv.md: Likewise.
2395 * config/i386/athlon.md: Likewise.
2396 * config/i386/i386.md: Likewise.
2397 * config/i386/predicates.md: Likewise.
2398 * config/ia64/ia64.c: Likewise.
2399 * config/ia64/itanium1.md: Likewise.
2400 * config/ia64/itanium2.md: Likewise.
2401 * config/iq2000/iq2000.md: Likewise.
2402 * config/mcore/mcore.c: Likewise.
2403 * config/mips/mips.c: Likewise.
2404 * config/mips/r3900.h: Likewise.
2405 * config/mips/sb1.md: Likewise.
2406 * config/pa/milli64.S: Likewise.
2407 * config/pa/pa.c: Likewise.
2408 * config/pa/pa.h: Likewise.
2409 * config/rs6000/8540.md: Likewise.
2410
2411 2004-08-13 Daniel Berlin <dberlin@dberlin.org>
2412
2413 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
2414
2415 2004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
2416
2417 * sh.md (cbranch define_delay) Use cond_delay_slot for
2418 non-anulled condition too.
2419
2420 2004-08-12 David Edelsohn <edelsohn@gnu.org>
2421
2422 * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
2423 * config/rs6000/rs6000.h (PREDICATE_CODES): Add
2424 any_parallel_operand, lmw_operation, stmw_operation,
2425 mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand.
2426 * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
2427 any_parallel_operand.
2428 (return_and_restore_fpregs_{si,di}): Same.
2429
2430 2004-08-12 Zack Weinberg <zack@codesourcery.com>
2431
2432 * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
2433 if pred->singleton != PARALLEL, issue a warning and pretend it was.
2434 Also issue a warning for any predicate we don't know about.
2435
2436 2004-08-12 Richard Henderson <rth@redhat.com>
2437
2438 * config/i386/i386.c (internal_label_prefix): Export.
2439 (internal_label_prefix_len, struct ix86_address,
2440 ix86_decompose_address, maybe_get_pool_constant,
2441 ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
2442 memory_address_length): Export.
2443 (any_fp_register_operand, fp_register_operand,
2444 register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
2445 x86_64_general_operand, x86_64_szext_general_operand,
2446 x86_64_nonmemory_operand, x86_64_movabs_operand,
2447 x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
2448 x86_64_zext_immediate_operand, const_int_1_31_operand,
2449 symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
2450 tls_symbolic_operand, global_dynamic_symbolic_operand,
2451 local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
2452 local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
2453 constant_call_address_operand, const0_operand, const1_operand,
2454 const248_operand, const_0_to_3_operand, const_0_to_7_operand,
2455 const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
2456 shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
2457 general_no_elim_operand, nonmemory_no_elim_operand,
2458 index_register_operand, q_regs_operand, flags_reg_operand,
2459 non_q_regs_operand, zero_extended_scalar_load_operand,
2460 vector_move_operand, no_seg_address_operand, sse_comparison_operator,
2461 ix86_comparison_operator, ix86_carry_flag_operator,
2462 fcmov_comparison_operator, promotable_binary_operator,
2463 cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
2464 mult_operator, div_operator, arith_or_logical_operator,
2465 memory_displacement_operand, cmpsi_operand, long_memory_operand,
2466 aligned_operand): Move to predicates.md as define_predicates.
2467 (tls_symbolic_operand_1): Remove.
2468 (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
2469 (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
2470 (legitimize_address): Merge tls_symbolic_operand contents.
2471 (ix86_expand_move): Likewise.
2472 * config/i386/i386-protos.h: Update for exports.
2473 * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
2474 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
2475 * config/i386/i386.md: Include predicates.md.
2476 * config/i386/predicates.md: New file.
2477
2478 2004-08-13 Mark Mitchell <mark@codesourcery.com>
2479
2480 PR c++/16924
2481 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
2482 SYMBOL_REF_DECL.
2483 (i386_pe_mark_dllimport): Likewise.
2484 (i386_pe_encode_section_info): Likewise, when overriding
2485 dllimport attribute.
2486
2487 2004-08-12 Geoffrey Keating <geoffk@apple.com>
2488
2489 * configure.ac: When testing for flex, nm, ar, and bison, check
2490 that they will actually be built.
2491 * configure: Regenerate.
2492
2493 2004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
2494
2495 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
2496 (MOVE_MAX_PIECES): Define.
2497
2498 2004-08-12 Devang patel <dpatel@apple.com>
2499
2500 * dbxout.c (dbxout_begin_prologue): New function.
2501 (dbx_debug_hooks): Use new begin prologue hook.
2502 (dbxout_function_end): Emit N_ENSYM.
2503 * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
2504
2505 2004-08-12 Janis Johnson <janis187@us.ibm.com>
2506
2507 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
2508 argument is float*.
2509
2510 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
2511 for vec_dss.
2512
2513 * doc/extend.texi (AltiVec builtins): Fix description for recent
2514 changes. Update operation list to match current support.
2515
2516 2004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
2517
2518 * config/s390/s390.c (struct s390_frame_layout): New struct as element
2519 of struct machine_function.
2520 (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
2521 changed all uses.
2522 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
2523 changed all uses.
2524 (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
2525 (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
2526 (s390_frame_area, s390_register_info): New functions.
2527 (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
2528 for base register.
2529 (s390_return_addr_rtx, s390_return_address_offset)
2530 (s390_va_start, s390_gimplify_va_arg)
2531 (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
2532 layouts.
2533 (s390_frame_info): Functionality partly moved to s390_register_info.
2534 Made adaptions for new stack layout.
2535 (save_gprs, restore_gprs): Changed meaning of second parameter and
2536 adapted all callers.
2537
2538 * config/s390/s390.h (s390_backchain_string): New global variable.
2539 (MASK_BACKCHAIN): Removed definition.
2540 (TARGET_BACKCHAIN): Changed check.
2541 (TARGET_KERNEL_BACKCHAIN): New macro.
2542 (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
2543 (TARGET_OPTIONS): Added "backchain", "no-backchain" and
2544 "kernel-backchain".
2545 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
2546
2547 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
2548 as condition. Adjusted for new stack layout.
2549
2550 * doc/invoke.texi: Added documentation for new option
2551 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
2552 "-mno-backchain".
2553
2554 2004-08-12 Paul Brook <paul@codesourcery.com>
2555
2556 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
2557 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
2558
2559 2004-08-12 David Daney <ddaney@avtrex.com>
2560
2561 * java/gcj.texi: Add subsection on signal usage.
2562
2563 2004-08-12 David Edelsohn <edelsohn@gnu.org>
2564
2565 * expr.c (move_by_pieces): Set alignment for move to minimum of
2566 MOVE_MAX_PIECES mode alignment and the largest non-slow mode
2567 alignment, but not less than the original alignment.
2568 (move_by_pieces_ninsns): Same.
2569 (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
2570 (store_by_pieces_1): Same.
2571
2572 2004-08-12 Diego Novillo <dnovillo@redhat.com>
2573
2574 PR tree-optimization/16867
2575 * tree.c (is_global_var): New function.
2576 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
2577 Call is_global_var.
2578 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
2579 Update all users.
2580 (is_global_var): Declare.
2581 * tree-dfa.c (dump_variable): Display global and addressable
2582 attributes.
2583 (add_referenced_var): Clarify documentation when marking
2584 variables call-clobbered.
2585 * tree-flow-inline.h (is_call_clobbered): Call is_global_var
2586 instead of needs_to_live_in_memory.
2587 (mark_call_clobbered): If the variable is a tag, mark it
2588 DECL_EXTERNAL.
2589 * tree-gimple.c (is_gimple_reg): Don't check for
2590 TREE_ADDRESSABLE.
2591 (is_gimple_non_addressable): Likewise.
2592 * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
2593 needs to be marked call-clobbered.
2594 (setup_pointers_and_addressables): Call is_global_var instead
2595 of needs_to_live_in_memory.
2596 * tree-ssa-dce.c (need_to_preserve_store): Remove.
2597 Update all users with is_global_var.
2598 (mark_stmt_if_obviously_necessary): Fix processing of aliased
2599 stores. Don't check the virtual definitions. Rather, check
2600 whether the store is going into global memory.
2601 (find_obviously_necessary_stmts): Get the symbol from the PHI
2602 result.
2603 * tree-ssa-operands.c (get_call_expr_operands): Do not add
2604 clobbering may-defs if the call does not have side effects.
2605
2606 2004-08-12 Jakub Jelinek <jakub@redhat.com>
2607
2608 PR c++/16276
2609 * output.h (default_function_rodata_section,
2610 default_no_function_rodata_section): New prototypes.
2611 * target.h (struct gcc_target): Add asm_out.function_rodata_section.
2612 * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
2613 (TARGET_ASM_OUT): Add it.
2614 * varasm.c (default_function_rodata_section,
2615 default_no_function_rodata_section): New functions.
2616 * final.c (final_scan_insn): Call
2617 targetm.asm_out.function_rodata_section instead of
2618 readonly_data_section.
2619 * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
2620 * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2621 * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2622 * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2623 Likewise.
2624 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2625 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2626 Likewise.
2627 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2628 Likewise.
2629 * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2630 * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2631 * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
2632
2633 2004-08-12 Paul Brook <paul@codesourcery.com>
2634
2635 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
2636 frame info.
2637 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
2638 DWARF2_UNWIND_INFO.
2639
2640 2004-08-12 Ben Elliston <bje@au.ibm.com>
2641
2642 PR target/16286
2643 * config/rs6000/altivec.h: Change vector to __vector throughout.
2644 (Except for the `vector' macro itself).
2645
2646 2004-08-12 Zack Weinberg <zack@codesourcery.com>
2647
2648 * genpreds.c: Add capability to generate predicate bodies as
2649 well as function prototypes. Write function prototypes for
2650 the generic predicates too.
2651 (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
2652 (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
2653 (write_match_code, write_predicate_expr, write_one_predicate_function)
2654 (parse_option): New functions.
2655 (output_predicate_decls): Delete.
2656 (main): Read the machine description, process DEFINE_PREDICATE or
2657 DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
2658 as appropriate.
2659
2660 * genrecog.c (struct decision_test): Replace index with
2661 struct pred_data pointer.
2662 (next_index): Remove, unused.
2663 (pred_table, preds, special_mode_pred_table): Delete.
2664 (compute_predicate_codes, process_define_predicate): New functions.
2665 (validate_pattern, add_to_sequence, write_switch): Update for
2666 new data structures.
2667 (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
2668 Check both error_count and have_error.
2669
2670 * gensupport.c (in_fname, first_predicate): New globals.
2671 (define_pred_queue, define_pred_tail): New RTL-pattern queue.
2672 (predicate_table, last_predicate, old_pred_table)
2673 (old_special_pred_table): New statics.
2674 (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
2675 (add_predicate, init_predicate_table): New functions.
2676 (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
2677 (init_md_reader_args_cb): Use the global in_fname. No need to zero
2678 it or max_include_len. Call init_predicate_table.
2679 (read_rtx): Run the predicate queue after the attribute queue
2680 but before all the others.
2681 * gensupport.h (in_fname, struct pred_data, first_predicate)
2682 (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
2683 * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
2684 (DEFINE_SPECIAL_PREDICATE): New RTL codes.
2685 * dummy-conditions.c: Don't include bconfig.h, system.h,
2686 coretypes.h, tm.h, or system.h. Do include stddef.h.
2687 Duplicate declaration of struct c_test from gensupport.h.
2688
2689 * Makefile.in (OBJS-common): Add insn-preds.o.
2690 (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
2691 (insn-preds.c, insn-preds.o): New rules.
2692 (s-preds): Also generate insn-preds.c.
2693 (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
2694 Update dependencies.
2695 (print-rtl.o, print-rtl1.o): Correct dependencies.
2696
2697 * recog.h: Delete prototypes of predicate functions.
2698
2699 * doc/md.texi (Predicates): New section with complete
2700 documentation of operand/operator predicates. Remove some
2701 incomplete documentation of predicates from other places.
2702 * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
2703 PREDICATE_CODES; indicate that both are deprecated in favor
2704 of define_predicate/define_special_predicate.
2705
2706 * config/ia64/ia64.c: All predicate function definitions moved
2707 to ia64.md, except
2708 (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
2709 (ia64_expand_load_address, ia64_expand_move):
2710 Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
2711
2712 * config/ia64/ia64.md: All predicates now defined here.
2713 (symbolic_operand): Is now a special predicate.
2714
2715 * config/ia64/ia64.h: Declare ia64_section_threshold.
2716 (PREDICATE_CODES): Delete.
2717
2718 2004-08-12 Richard Henderson <rth@redhat.com>
2719
2720 * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
2721 * c-semantics.c (add_stmt): Set it.
2722 * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
2723 before instantiating a variable sized type.
2724
2725 2004-08-12 Richard Henderson <rth@redhat.com>
2726
2727 * stor-layout.c (round_up, round_down): Move ...
2728 * fold-const.c (round_up, round_down): ... here. Use
2729 multiple_of_p to avoid any arithmetic at all.
2730
2731 2004-08-12 Richard Henderson <rth@redhat.com>
2732
2733 * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
2734 (gimplify_init_ctor_preeval_1): New.
2735 (gimplify_init_ctor_preeval): New.
2736 (gimplify_init_ctor_eval): New.
2737 (gimplify_init_constructor): Use them. Always gimplify the LHS
2738 object first.
2739
2740 2004-08-12 Ziemowit Laski <zlaski@apple.com>
2741
2742 (This patch is part of merge of objc-improvements-branch
2743 into mainline.)
2744
2745 * doc/frontends.texi: Mention Objective-C++ in addition to
2746 Objective-C.
2747 * doc/install.texi: Add 'obj-c++' to list of configurable
2748 languages.
2749 * doc/invoke.texi: Rename Objective-C option headings to
2750 indicate they also apply to Objective-C++. List file
2751 extensions for Objective-C++ sources. Mention that
2752 ObjC and ObjC++ compilations may also use C and C++ options,
2753 respectively. Point users to doc/standards.texi for
2754 further info on ObjC and ObjC++.
2755 * doc/sourcebuild.texi: Mention the objcp/ directory and
2756 the Objective-C++ sources it contains.
2757 * doc/standards.texi: Update link to Apple ObjC site;
2758 add link to gcc readings.html WWW doc.
2759
2760 2004-08-12 Alan Modra <amodra@bigpond.net.au>
2761
2762 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
2763 and 2004-07-14 changes.
2764
2765 2004-08-12 Paul Brook <paul@codesourcery.com>
2766
2767 * doc/invoke.texi: Fix typo.
2768
2769 2004-08-11 Devang Patel <dpatel@apple.com>
2770
2771 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
2772 and -no_dead_strip_inits_and_terms.
2773 (LINK_SPEC): Same.
2774 * doc/invoke.texi (Darwin Options): Document -dead_strip and
2775 -no_dead_strip_inits_and_terms.
2776
2777 2004-08-11 Paul Brook <paul@codesourcery.com>
2778
2779 * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
2780 (arm_load_pic_register): ... to this.
2781 * config/arm/arm.c (arm_finalize_pic): Rename ...
2782 (arm_load_pic_register): ... to this. Always output insns at the
2783 current location. Load via low reg in thumb mode.
2784 (arm_expand_prologue): Call arm_load_pic_register.
2785 (thumb_expand_prologue): Ditto.
2786 * config/arm/arm.h (FINALIZE_PIC): Remove.
2787 * config/arm/arm.md (builtin_setjmp_receiver): Call
2788 arm_load_pic_register.
2789
2790 2004-08-11 Paul Brook <paul@codesourcery.com>
2791
2792 * arm.c (thumb_force_lr_save): Add prototype.
2793 (thumb_compute_save_reg_mask): New function.
2794 (thumb_find_work_register): New function.
2795 (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
2796 (thumb_unexpanded_epilogue): Ditto. Remove redundant code.
2797 Don't clobber r3 when removing pretend args.
2798 (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
2799 (thumb_output_function_prologue): Use new functions.
2800 (thumb_set_return_address): Use thumb_compute_save_reg_mask.
2801 * arm.h (THUMB_REG_PUSHED_P): Remove.
2802
2803 2004-08-11 James E Wilson <wilson@specifixinc.com>
2804
2805 PR rtl-optimization/16490
2806 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
2807 global_live_at_end for new basic block if already set for other blocks.
2808
2809 2004-08-11 David Edelsohn <edelsohn@gnu.org>
2810
2811 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
2812
2813 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
2814 (mfcr rlwinm rlwinm patterns): Set length to 12.
2815
2816 2004-08-11 Andrew MacLeod <amacleod@redhat.com>
2817
2818 * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
2819 get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
2820 (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
2821 (start_ssa_stmt_operands): Delete.
2822 * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
2823 struct stmt_operands_d.
2824 (build_ssa_operands): New extern entry point.
2825 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
2826 building code, replace with create_ssa_artficial_load_stmt().
2827 * tree-ssa-operands.c (struct voperands_d): Delete.
2828 (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
2829 (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
2830 (free_uses, free_defs, free_vuses, free_v_may_defs,
2831 free_v_must_defs): Remove dealloc parameter.
2832 (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
2833 (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
2834 finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
2835 vector comparisons, ssa_name reuse, and allocations here.
2836 (verify_start_operands): Delete.
2837 (finalize_ssa_stmt_operands): Set new operands by calling finalize
2838 routines.
2839 (start_ssa_stmt_operands): Move from tree-flow-inline.h.
2840 (append_def, append_usei): Simplify to simple accumulation.
2841 (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
2842 duplicates and simple accumulation.
2843 (free_ssa_operands): Free vectors in a stmt_operand structure.
2844 (build_ssa_operands): New. Create a new stmt_operand structure from
2845 a stmt and an old set of stmt_operands.
2846 (get_stmt_operands): Simplify and call build_ssa_operands.
2847 (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
2848 get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
2849 add_call_read_ops): Don't pass prev_vops around anymore.
2850 (note_addressable): Return if no stmt annotation.
2851 (copy_virtual_operands): Access v_may_def operands through a struct.
2852 (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
2853 hash tables without treating the stmt as a real stmt.
2854 * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
2855 v_may_def def and use through a struct instead of 2 array elements.
2856 (struct v_may_def_optype_d): Use v_may_def_operand_type.
2857 (struct stmt_operands_d): New. Struct for storing all operand vectors.
2858
2859 2004-08-11 Nick Clifton <nickc@redhat.com>
2860
2861 * config/arm/arm.c (arm_is_longcall_p): Update comment describing
2862 this funciton's behaviour. Return true when the current function
2863 has a section attribute and -mlong-calls is in effect.
2864 * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
2865 short-call marker when -mlong-calls is in effect and the function
2866 has a section attribute.
2867
2868 2004-08-10 Zack Weinberg <zack@codesourcery.com>
2869
2870 * stmt.c (expand_return): If asked to return the RESULT_DECL,
2871 just call expand_value_return on result_rtl.
2872
2873 2004-08-10 Richard Henderson <rth@redhat.com>
2874
2875 * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
2876 * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
2877 * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
2878 (add_location_or_const_value_attribute): ... not here. Use
2879 loc_descriptor_from_tree if possible.
2880 (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
2881 Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
2882 values specially.
2883 (loc_descriptor_from_tree): New. Update callers.
2884 * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
2885 * gimplify.c (gimplify_decl_expr): Lower variable sized types to
2886 pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
2887 (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
2888 and BUILT_IN_STACK_RESTORE.
2889 (gimplify_expr): Lower DECL_VALUE_EXPR decls.
2890 * stmt.c (expand_stack_alloc): Remove.
2891 * tree-mudflap.c (mx_register_decls): Don't look for
2892 BUILT_IN_STACK_ALLOC.
2893 * tree-nested.c (convert_local_reference): Likewise.
2894 * tree.h (DECL_VALUE_EXPR): New.
2895
2896 2004-08-10 Richard Henderson <rth@redhat.com>
2897
2898 * stor-layout.c (round_up): Check for 0/1 before dividing.
2899 (round_down): Likewise.
2900
2901 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
2902
2903 2004-08-09 Mark Mitchell <mark@codesourcery.com>
2904
2905 * config.gcc (arm*-*-eabi*): New target.
2906 * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
2907 (TARGET_LIB_INT_CMP_BIASED): Likewise.
2908 * expmed.c (expand_divmod): Try a two-valued divmod function as a
2909 last resort.
2910 * gthr.h: Remove bogus tokens at end of #pragma.
2911 * optabs.c (expand_twoval_binop_libfunc): New function.
2912 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
2913 (prepare_float_lib_cmp): Try reversing the condition.
2914 (debug_optab_libfuncs): New function.
2915 * optabs.h (expand_twoval_binop_libfunc): Declare.
2916 * config/arm/arm.c (arm_init_libfuncs): New function.
2917 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
2918 (TARGET_INIT_LIBFUNCS): Define it.
2919 * config/arm/arm.h (TARGET_BPABI): New macro.
2920 * config/arm/arm-protos.h
2921 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
2922 * config/arm/bpabi.S: New file.
2923 * config/arm/bpabi.c: Likewise.
2924 * config/arm/bpabi.h: Likewise.
2925 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
2926 (__aeabi_drsub): Likewise.
2927 (__aeabi_dsub): Likewise.
2928 (__aeabi_dadd): Likewise.
2929 (__aeabi_ui2d): Likewise.
2930 (__aeabi_i2d): Likewise.
2931 (__aeabi_f2d): Likewise.
2932 (__aeabi_dmul): Likewise.
2933 (__aeabi_ddiv): Likewise.
2934 (__aeabi_cdrcmple): Likewise.
2935 (__aeabi_cdcmpeq): Likewise.
2936 (__aeabi_cdcmple): Likewise.
2937 (__aeabi_dcmpeq): Likewise.
2938 (__aeabi_dcmplt): Likewise.
2939 (__aeabi_dcmple): Likewise.
2940 (__aeabi_dcmpge): Likewise.
2941 (__aeabi_dcmpgt): Likewise.
2942 (__aeabi_dcmpun): Likewise.
2943 (__aeabi_d2iz): Likewise.
2944 (__aeabi_d2uiz): Likewise.
2945 (__aeabi_d2f): Likewise.
2946 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
2947 (__aeabi_frsub): Likewise.
2948 (__aeabi_fsub): Likewise.
2949 (__aeabi_fadd): Likewise.
2950 (__aeabi_ui2f): Likewise.
2951 (__aeabi_i2f): Likewise.
2952 (__aeabi_fmul): Likewise.
2953 (__aeabi_fdiv): Likewise.
2954 (__aeabi_cfrcmple): Likewise.
2955 (__aeabi_cfcmpeq): Likewise.
2956 (__aeabi_cfcmple): Likewise.
2957 (__aeabi_fcmpeq): Likewise.
2958 (__aeabi_fcmplt): Likewise.
2959 (__aeabi_fcmple): Likewise.
2960 (__aeabi_fcmpge): Likewise.
2961 (__aeabi_fcmpgt): Likewise.
2962 (__aeabi_fcmpun): Likewise.
2963 (__aeabi_f2iz): Likewise.
2964 (__aeabi_f2uiz): Likewise.
2965 * config/arm/lib1funcs.asm (ARM_CALL): New macro.
2966 (__aeabi_uidivmod): New function or alias.
2967 (__aeabi_idivmod): Likewise.
2968 (__aeabi_idiv0): Likewise.
2969 (__aeabi_ldiv0): Likewise.
2970 (__aeabi_llsr): Likewise.
2971 (__aeabi_lasr): Likewise.
2972 (__aeabi_llsl): Likewise.
2973 (bpabi.S): Include it.
2974 * config/arm/libgcc-bpabi.ver: New file.
2975 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
2976 (LINK_SPEC): Remove.
2977 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
2978 __aeabi_ulcmp.
2979 * config/arm/t-bpabi: New file.
2980 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
2981 (TARGET_LIB_INT_CMP_BIASED): Likewise.
2982
2983 2004-08-10 David Edelsohn <edelsohn@gnu.org>
2984
2985 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
2986 * config/rs6000/rs6000.md (clrmemsi): New pattern.
2987 * config/rs6000/rs6000.c (expand_block_clear): New function.
2988 (expand_block_move): Convert alignment to bits. Use SImode and
2989 HImode for unaligned addresses if not STRICT_ALIGNMENT.
2990
2991 2004-08-10 Caroline Tice <ctice@apple.com>
2992
2993 * varasm.c (unlikely_section_label): New global variable.
2994 (unlikely_text_section_name): New global variable.
2995 (text_section): Remove alignment statement.
2996 (unlikely_text_section): Remove alignment statement; use
2997 unlikely_section_label rather than hard-coded string.
2998 (assemble_start_function): Initialize unlikely_section_label and
2999 unlikely_text_section_name; make sure cold section is properly
3000 aligned at start of function; output unlikely_section_label if
3001 appropriate.
3002
3003 2004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
3004
3005 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
3006 * config/s390/s390.c (s390_canonicalize_comparison): New function.
3007 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
3008 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
3009 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
3010 ("*tmqi_mem"): Remove SUBREG from pattern.
3011 ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
3012 ("*andsi3_cconly"): Likewise.
3013
3014 2004-08-10 H.J. Lu <hongjiu.lu@intel.com>
3015
3016 PR target/16909
3017 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
3018
3019 2004-08-10 Janis Johnson <janis187@us.ibm.com>
3020
3021 * doc/sourcebuild.texi (compat testing): Document available test
3022 framework commands. Use the preferred spelling of DejaGnu.
3023
3024 2004-08-10 Daniel Berlin <dberlin@dberlin.org>
3025
3026 * lambda.h: Add matrix type, and prototypes for remainder of
3027 matrix and vector functions.
3028 (lambda_vector_mult_const): New function.
3029 (lambda_vector_negate): Ditto.
3030 (lambda_vector_add): Ditto.
3031 (lambda_vector_add_mc): Ditto.
3032 (lambda_vector_copy): Ditto.
3033 (lambda_vector_zerop): Ditto.
3034 (lambda_vector_equal): Ditto.
3035 (lambda_vector_min_nz): Ditto.
3036 (lambda_vector_first_nz): Ditto.
3037 (lambda_vector_matrix_mult): Ditto.
3038 * lambda-mat.c: New file.
3039 * Makefile.in (lambda-mat.o): New.
3040
3041 2004-08-10 Andrew MacLeod <amacleod@redhat.com>
3042
3043 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
3044 after linking stmt into the program.
3045 (bsi_remove): Don't call modify_stmt.
3046 * tree-complex.c (update_complex_assignment,
3047 expand_complex_comparison): Call modify_stmt after changing the stmt.
3048 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
3049 removing the stmt.
3050 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
3051 the stmt, and only if needed.
3052 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
3053 expression.
3054 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
3055 (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
3056 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
3057 (eliminate_redundant_computations): Don't pass an annotation. Call
3058 modify_stmt rather than setting the annotation directly.
3059 (record_equivalences_from_stmt): Remove unused local 'j'.
3060 (cprop_operand): Take a stmt rather than an annotation as a parameter.
3061 Call modify_stmt.
3062 (cprop_into_stmt): Pass stmt rather than annotation.
3063 (update_rhs_and_lookup_avail_expr): Call modify_stmt.
3064 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
3065 modify_stmt.
3066 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
3067
3068 2004-08-10 Jason Merrill <jason@redhat.com>
3069
3070 PR middle-end/16948
3071 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
3072 the RESULT_DECL.
3073
3074 2004-08-10 Geoffrey Keating <geoffk@apple.com>
3075
3076 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
3077 hash function.
3078
3079 2004-08-10 Roger Sayle <roger@eyesopen.com>
3080
3081 * config/mips/mips.md: New reciprocal square root patterns that
3082 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
3083
3084 2004-08-10 Paul Brook <paul@codesourcery.com>
3085
3086 * config/arm/arm-protos.h (arm_set_return_address,
3087 thumb_set_return_address): Add prototypes.
3088 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
3089 * config/arm/arm.c (arm_compute_func_type,
3090 use_return_insn, arm_compute_save_reg0_reg12_mask,
3091 arm_compute_save_reg_mask, arm_output_function_prologue,
3092 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
3093 current_function_calls_eh_return.
3094 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
3095 old eh code.
3096 (arm_set_return_address, thumb_set_return_address): New functions.
3097 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
3098 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
3099 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
3100 (epilogue): Use the stackadj register.
3101 (eh_return, arm_eh_return, thumb_eh_return): New pattern.
3102
3103 2004-08-10 Jakub Jelinek <jakub@redhat.com>
3104
3105 PR target/3144
3106 * expr.c (move_by_pieces_ninsns): Add max_size argument.
3107 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
3108 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
3109 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
3110 but using MOVE_RATIO.
3111 (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
3112 (can_store_by_pieces): Change max_size type to unsigned int.
3113 (store_by_pieces_1): Likewise. Pass max_size to
3114 move_by_pieces_ninsns.
3115 * config/s390/s390.h (STORE_BY_PIECES_P): Define.
3116 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
3117 to move_by_pieces_ninsns.
3118 (STORE_BY_PIECES_P): Define.
3119 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
3120 to move_by_pieces_ninsns.
3121 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
3122
3123 * config/i386/i386.h (CLEAR_RATIO): Define.
3124
3125 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
3126
3127 * expr.c (expand_expr_real_1): Add back code that was not dead.
3128
3129 2004-08-09 Andrew Pinski <apinski@apple.com>
3130
3131 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
3132 which is found to be compatible before returning the aliasing set.
3133
3134 2004-08-09 Daniel Jacobowitz <dan@debian.org>
3135
3136 * ggc-zone.c (struct alloc_zone): Add statistics counters.
3137 (always_collect): New flag.
3138 (ggc_alloc_zone_1): Update statistics support. Don't include
3139 overhead in allocated counter.
3140 (sweep_pages): Update allocated counter for large pages. Don'y
3141 include overhead.
3142 (ggc_collect_1): Always collect.
3143 (ggc_collect): Honor always_collect flag. Sum all zones to decide
3144 whether to collect.
3145 (SCALE, LABEL): New macros.
3146 (ggc_print_statistics): Add statistics support.
3147
3148 2004-08-09 Roger Sayle <roger@eyesopen.com>
3149
3150 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
3151 (init_expmed): Fix potential overrun problem with "all.reg".
3152 (expand_sdiv2_pow2): Add an alternate implementation for signed
3153 division, if the target provides a suitable conditional move insn.
3154
3155 2004-08-09 Paul Brook <paul@codesourcery.com>
3156 Richard Henderson <rth@redhat.com>
3157
3158 * unwind-dw2.c (uw_install_context_1): Update target saved stack
3159 pointer.
3160
3161 2004-08-09 Geoffrey Keating <geoffk@apple.com>
3162
3163 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
3164 Check DATA limit only if there's no AS limit. Ignore insanely
3165 low DATA limits.
3166 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
3167 but take care that the AS limit isn't overrun.
3168 * doc/invoke.texi: Update documentation of min-heapsize parameter.
3169
3170 2004-08-09 Jeff Law <law@redhat.com>
3171
3172 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
3173 (tree-ssa-threadupdate.o): Add dependencies.
3174 * tree-ssa-threadupdate.c: New file.
3175 * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
3176 (rewrite_vars_out_of_ssa): Remove prototype.
3177 (cleanup_tree_cfg): Returns a bool.
3178 * tree.h (thread_through_all_blocks): Prototype.
3179 * tree-outof-ssa.c (SSANORM_*): Move into here.
3180 (remove_ssa_form): Now static.
3181 (rewrite_vars_out_of_ssa): Kill.
3182 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
3183 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
3184 (remove_ssa_form, register_partitions_for_vars): Kill declarations.
3185 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
3186 anything was changed.
3187 * tree-phinodes.c (add_phi_arg): Get the block for the PHI
3188 from the PHI's annotation rather than the edge associated with
3189 the new argument.
3190 * tree-ssa-dom.c (redirection_edges): Kill.
3191 (redirect_edges_and_update_ssa_graph): Kill.
3192 (tree_ssa_dominator_optimize): Do not reset forwardable flag
3193 for blocks anymore. Do not initialize redirection_edges.
3194 Call thread_through_all_blocks. Simplify code for cleanup
3195 of the CFG and iterating. No longer call cleanup_tree_cfg
3196 outside the iteration loop.
3197 (thread_across_edge): No longer mess with forwardable blocks.
3198
3199 2004-08-09 Zack Weinberg <zack@codesourcery.com>
3200
3201 * explow.c (memory_address): Use memory_address_p.
3202 * recog.c (general_operand): Likewise.
3203 * regrename.c: No need to define REG_OK_STRICT.
3204
3205 2004-08-09 Steven Bosscher <stevenb@suse.de>
3206
3207 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
3208 New timers.
3209 * gcse.c: Include timevar.h.
3210 (const_prop_count, copy_prop_count): Rename to global_const_prop_count
3211 and global_copy_prop_count.
3212 (local_const_prop_count, local_copy_prop_count): New static globals.
3213 (gcse_main): Set the right timevar for each pass.
3214 (cprop_jump): Increment global_const_prop_count when a constant is
3215 propagated. Add "GLOBAL" to dump output.
3216 (cprop_insn): Increment global_const_prop_count when a constant is
3217 propagated, or global_copy_prop_count when a copy is propagated.
3218 (do_local_cprop): Likewise for local_const_prop_count and
3219 local_copy_prop_count.
3220 (one_cprop_pass): Initialize const/cprop counters to zero.
3221 Print out results of local and global const/cprop separately.
3222 (bypass_block): Break over-length line.
3223 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
3224 for bb-reorder.o and tracer.o.
3225
3226 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
3227
3228 * Makefile.in (GTFILES): Remove stmt.c
3229 (stmt.o): Do not depend on gt-stmt.h.
3230 * emit-rtl.c (emit_line_note): Do not call
3231 set_file_and_line_for_stmt.
3232 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
3233 do everything.
3234 * function.c (free_after_parsing): Do not free STMT field.
3235 (allocate_struct_function): Do not call init_stmt_for_function.
3236 (assign_stack_temp_for_type): Do not accept values of keep
3237 other than 0 or 1.
3238 (init_temp_slots): Do not initialize removed variables.
3239 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
3240 and X_VAR_TEMP_SLOT_LEVEL fields.
3241 * rtl.h (set_file_and_line_for_stmt): Remove.
3242 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
3243 struct stmt_status, cond_stack, case_stack, nesting_stack,
3244 nesting_depth, emit_locus, set_file_and_line_for_stmt,
3245 same_case_target_p, init_stmt_for_function, emit_nop,
3246 expand_start_cond, expand_start_elseif, expand_start_else,
3247 expand_elseif, expand_end_cond): Remove.
3248 (preserve_subexpressions_p): Remove references to CFUN->STMT.
3249 (expand_start_case, expand_end_case_type): Remove, merge into...
3250 (expand_case): ... this one, including other bits from
3251 expand_expr_real_1. Inline same_case_target_p. Turn members
3252 of CASE_STACK into local variables.
3253 (emit_case_bit_tests): Inline same_case_target_p.
3254 (add_case_node): Add HEAD argument, return new head of the list,
3255 do not handle default label here.
3256 * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
3257 expand_start_elseif, current_nesting_level, expand_start_case,
3258 expand_end_case_type, expand_end_case, add_case_node,
3259 init_stmt_for_function, expand_elseif): Remove prototypes.
3260 (expand_case): Add prototype.
3261
3262 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
3263
3264 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
3265
3266 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
3267
3268 * expr.c (var_rtx): Remove.
3269 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
3270 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
3271 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
3272 Abort.
3273 (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
3274 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
3275 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
3276
3277 2004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
3278 Ayal Zaks <zaks@il.ibm.com>
3279
3280 * common.opt (freschedule-modulo-scheduled-loops): New flag.
3281 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
3282 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
3283 when -freschedule-modulo-scheduled-loops flag is not specified.
3284 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
3285 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
3286 More accurate placing of insn in row of partial schedule.
3287 (ps_insn_find_column): New function.
3288 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
3289 * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
3290 (schedule_region): Use sched_is_disabled_for_current_region_p.
3291 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
3292
3293 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
3294
3295 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
3296 change.
3297
3298 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
3299
3300 * config/i386/i386.c (ix86_expand_clrmem): Properly call
3301 gen_strset for 64bit target.
3302
3303 2004-08-07 Olivier Hainque <hainque@act-europe.fr>
3304
3305 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
3306
3307 2004-08-07 Jason Merrill <jason@redhat.com>
3308
3309 Make return in memory explicit.
3310 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
3311 (assign_parm_find_data_types): Remove code for old front end
3312 invisible reference handling.
3313 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
3314 (expand_function_end): Likewise.
3315 * gimplify.c (gimplify_return_expr): Handle a dereferenced
3316 RESULT_DECL.
3317 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
3318 (declare_return_variable): Handle DECL_BY_REFERENCE.
3319 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
3320 (cp_genericize_r): Use convert_from_reference.
3321 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
3322 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
3323
3324 * c-common.c (c_warn_unused_result): Check TREE_USED before
3325 warning about a CALL_EXPR with an unused value.
3326
3327 2004-08-06 Mark Mitchell <mark@codesourcery.com>
3328
3329 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
3330 to the compiler. Use -fshort-wchar by default.
3331
3332 2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
3333
3334 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
3335 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
3336 threshhold.
3337 * doc/invoke.texi (param): Document min-crossjump-insns.
3338
3339 2004-08-06 Richard Sandiford <rsandifo@redhat.com>
3340
3341 PR c/13282
3342 * c.opt (Wmissing-field-initializers): New option.
3343 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
3344 * c-typeck.c (pop_init_level): Guard the missing field warning with
3345 warn_missing_field_initializers rather than extra_warnings.
3346 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
3347 some of the explanation from...
3348 (-Wextra): ...here. Say that the missing field warning can be
3349 seperately controlled by -Wmissing-field-initializers.
3350
3351 2004-08-06 Paolo Bonzini <bonzini@gnu.org>
3352
3353 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
3354 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
3355 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
3356 * tree.def (ENTRY_VALUE_EXPR): Remove.
3357
3358 2004-08-06 Jakub Jelinek <jakub@redhat.com>
3359
3360 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
3361 the places where it is actually needed. Don't use repz; stosb
3362 for -Os with sufficiently small constant sizes.
3363 For sufficiently small repz; stos{l,q} repeat counts use a sequence
3364 of stos{l,q} instructions instead.
3365
3366 2004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3367
3368 PR tree-optimization/16807
3369 * loop-iv.c (dump_iv_info): Dump invariants correctly.
3370 (iv_subreg, iv_extend): Express value of invariant purely in
3371 base field.
3372
3373 2004-08-06 Mark Mitchell <mark@codesourcery.com>
3374
3375 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
3376 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
3377
3378 2004-08-06 Roman Zippel <zippel@linux-m68k.org>
3379
3380 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
3381 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
3382 pre_dec_operand.
3383 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
3384 pattern until reload is finished to allow better code generation
3385 and split them completely into separate instrunctions.
3386 (*andsi3_split): New pattern.
3387
3388 2004-08-05 Mark Mitchell <mark@codesourcery.com>
3389
3390 * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
3391 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
3392 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3393 * tree.h (handle_dll_attribute): Declare. Test
3394 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3395 * c-common.h (c_determine_visibility): Declare.
3396 * c-common.c (c_determine_visibility): New function.
3397 * c-decl.c (finish_decl): Use it.
3398 (finish_function): Likewise.
3399 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
3400 zero, by default. Use #if, not #ifdef, to test it.
3401 * config/arm/arm.c (arm_attribute_table): Use
3402 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
3403 #if.
3404 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
3405 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3406 to 1.
3407 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
3408 * config/i386/i386.c (ix86_attribute_table): Use
3409 handle_dll_attribute for dllimport/dllexport. Test
3410 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3411 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
3412 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3413 it to 1.
3414 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
3415 with #if.
3416 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3417 it to 1.
3418 * doc/extend.texi (dllexport): Clarify and correct documentation.
3419 (dllimport): Likewise.
3420 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
3421 handle_dll_attribute.
3422
3423 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3424
3425 * tree-ssa-loop-manip.c: New file.
3426 * Makefile.in (tree-ssa-loop-manip.o): Add.
3427 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
3428 Declare.
3429 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
3430 form.
3431 (tree_ssa_loop_done): Verify loop closed ssa form.
3432 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
3433
3434 2004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3435
3436 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
3437 pa_asm_output_aligned_local): New functions.
3438 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
3439 pa_asm_output_aligned_common and pa_asm_output_aligned_local.
3440 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
3441 pa_asm_output_aligned_common.
3442 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3443 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
3444 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
3445 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3446 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
3447 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
3448 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3449 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
3450 common data.
3451
3452 2004-08-05 Andrew Pinski <apinski@apple.com>
3453
3454 * objc/objc-act.c (build_objc_string_object): Mark the address
3455 expression as constant.
3456
3457 2004-08-05 David Edelsohn <edelsohn@gnu.org>
3458
3459 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
3460 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
3461 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
3462
3463 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
3464
3465 * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
3466 Remove definitions conditioned on USE_GNULIBC_1 or conditioned
3467 out, and associated obsolete comments.
3468
3469 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
3470
3471 * tree.h (force_fit_type): Return a tree, take three flags.
3472 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
3473 TREE_CONSTANT_OVERFLOW here.
3474 (int_const_binop, const_binop): Adjust.
3475 (size_int_type): Do sign extension here.
3476 (fold_convert_const, optimize_bit_field_compare,
3477 decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
3478 fold_negate_const, fold_abs_const, fold_not_const): Adjust.
3479 * tree.c (size_in_bytes, int_fits_type_p): Adjust.
3480
3481 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3482
3483 PR tree-optimization/16864
3484 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
3485 for ssa names without default_def.
3486
3487 2004-08-05 Richard Sandiford <rsandifo@redhat.com>
3488
3489 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
3490 frame pointer, restore eax with an ebp-relative address.
3491
3492 2004-08-04 Geoffrey Keating <geoffk@apple.com>
3493
3494 PR 14516
3495 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
3496 * c-common.h (make_rtl_for_local_static): Delete.
3497 * c-decl.c (shadow_tag_warned): Clean up comment.
3498 (finish_decl): Clean up spacing. Use set_user_assembler_name when
3499 appropriate. Don't pass asmspec to rest_of_decl_compilation.
3500 * c-semantics.c (make_rtl_for_local_static): Delete.
3501 * expr.c (init_block_move_fn): Use set_user_assembler_name.
3502 (init_block_clear_fn): Likewise.
3503 * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
3504 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
3505 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
3506 * tree.h (make_decl_rtl): Remove second parameter.
3507 (set_user_assembler_name): New.
3508 * varasm.c (set_user_assembler_name): New.
3509 (make_decl_rtl): Remove second parameter. Update callers in many
3510 files.
3511
3512 2004-08-05 Adam Nemet <anemet@lnxw.com>
3513
3514 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
3515 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
3516 to LynxOS 4.0.
3517 * gthr-lynx.h: New file.
3518 * config/lynx-ng.h: Remove file.
3519 * config/lynx.h: Update to LynxOS 4.0.
3520 * config/t-lynx: New file.
3521 * config/i386/lynx-ng.h: Remove file.
3522 * config/i386/lynx.h: Update to LynxOS 4.0.
3523 * config/rs6000/lynxbase.h: Remove file.
3524 * config/rs6000/lynx.h: Update to LynxOS 4.0.
3525 * config/rs6000/t-lynx: New file.
3526 * doc/install.texi (Options specification): Remove reference to
3527 LynxOS from systems where --with-gnu-as makes a difference.
3528
3529 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
3530
3531 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
3532 __UINTMAX_TYPE__.
3533 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
3534 __INTMAX_MAX__.
3535 (c_cpp_builtins): Call it.
3536 * doc/cpp.texi: Update.
3537
3538 2004-08-04 David Edelsohn <edelsohn@gnu.org>
3539
3540 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
3541 cost.
3542
3543 2004-08-04 Jan Hubicka <jh@suse.cz>
3544
3545 * basic-block.h (profile_staus): New global variable.
3546 * cfg.c (profile_status): Declare.
3547 (check_bb_profile): Break out from ....; use profile_status
3548 (dump_flow_info): ... here.
3549 * cfgbuild.c (find_basic_blocks): Set profile_status.
3550 * cfgexpand.c (tree_expand_cfg): Likewise.
3551 * predict.c (estimate_probability): Likewise.
3552 * profile.c (branch_prob): Likewise.
3553 * tree-cfg.c (build_tree_cfg): Likewise.
3554 (dump_function_to_file): Use check_bb_profile.
3555 * tree-pretty-print (dump_bb_header): Likewise.
3556 * tree-profile.c (do_tree_profiling): Cleanup.
3557
3558 2004-08-04 Zack Weinberg <zack@codesourcery.com>
3559
3560 * Makefile.in (RTL_BASE_H, RTL_H): Correct.
3561 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
3562 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
3563 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
3564 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
3565 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
3566 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
3567 (ggc-none.o, errors.o): Move rule to generators section;
3568 correct dependencies.
3569 (min-insn-modes.o): Move rule to generators section; remove
3570 unnecessary explicit command; correct dependencies.
3571 (print-rtl.o, print-rtl1.o): Correct dependencies.
3572 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
3573 (mostlyclean): Update.
3574
3575 * errors.c: Include bconfig.h not config.h. Correct comment.
3576 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
3577 * ggc-none.c: Include bconfig.h; not config.h or tm.h.
3578 * print-rtl.c: Don't include tm_p.h.
3579
3580 * rtl.h: Move forward-decl of struct function down where it's
3581 needed. Include genrtl.h #ifndef GENERATOR_FILE, not
3582 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
3583
3584 2004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3585 Jeff Law <law@redhat.com>
3586
3587 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
3588 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
3589 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
3590 manipulate the duplicated ssa names.
3591 * tree-ssanames.c (ssa_names_to_rewrite): New variable.
3592 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
3593 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
3594 New functions.
3595 (release_ssa_name): Do not release ssa names that may have multiple
3596 definitions.
3597 * tree.h (release_ssa_name_force, mark_for_rewrite,
3598 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
3599 marked_ssa_names): Declare.
3600 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
3601 (duplicate_blocks): Remove call to mark_defs_for_rewrite.
3602 Update call to rewrite_ssa_into_ssa.
3603
3604 2004-08-04 Mark Mitchell <mark@codesourcery.com>
3605
3606 * defaults.h (TARGET_DECLSPEC): New macro.
3607 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
3608 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
3609 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
3610 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
3611 __declspec support.
3612 (TARGET_DECLSPEC): Define.
3613 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
3614 __declspec support.
3615 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
3616 __declspec support.
3617 (TARGET_DECLSPEC): Define.
3618 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
3619 __declspec support.
3620 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
3621 support.
3622 * doc/tm.texi (TARGET_DECLSPEC): Document.
3623
3624 * doc/extend.texi: Fix typo in comment.
3625
3626 2004-08-04 Paul Brook <paul@codesourcery.com>
3627
3628 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
3629 (TARGET_CXX): Use it.
3630 * target.h (struct gcc_target): Add cdtor_returns_this.
3631 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
3632 (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
3633 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
3634
3635 2004-08-03 Nathan Sidwell <nathan@codesourcery.com>
3636
3637 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
3638 low/high pair. Do range checking directly.
3639 (interpret_integer): Adjust.
3640
3641 2004-08-04 Nick Clifton <nickc@redhat.com>
3642
3643 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
3644 GCC ABI.
3645 * doc/invoke.texi: Document this new switch and also the -mrenesas
3646 switch.
3647
3648 2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
3649
3650 * cfglayout.c (insn_locators_initialize): Update the current
3651 location before initializing a location.
3652
3653 2004-08-03 Zack Weinberg <zack@codesourcery.com>
3654
3655 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
3656 (dbxout_function_end): Return after emitting the "Lscope" symbol
3657 under the same conditions that this function formerly wasn't called.
3658 Add explanatory comments.
3659
3660 PR 14860
3661 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
3662 on the new decl.
3663
3664 PR 13956
3665 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
3666 functions, broken out of dbxout_block.
3667 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
3668 stabs too, if it contains symbols. Use the begin_label and
3669 the Lscope label (emitted by dbxout_function_end) for the
3670 range of this block.
3671
3672 2004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
3673
3674 * doc/install.texi: Update autoconf version requirements.
3675
3676 2004-08-03 Zack Weinberg <zack@codesourcery.com>
3677
3678 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
3679 * recog.c (general_operand, immediate_operand, nonmemory_operand)
3680 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
3681 * regclass.c (record_reg_classes): Likewise.
3682 * reload.c (find_reloads): Likewise.
3683 * reload1.c (reload): Likewise.
3684
3685 2004-08-03 Zack Weinberg <zack@codesourcery.com>
3686
3687 * gensupport.c (init_md_reader_args_cb): Renamed from
3688 init_md_reader_args. Add third option, callback function for
3689 parsing program-specific options. Add diagnosis of incorrect
3690 number of input files.
3691 (init_md_reader): Fold into init_md_reader_args_cb.
3692 (init_md_reader_args): Now a thin wrapper around
3693 init_md_reader_args_cb.
3694 * gensupport.h: Update prototypes.
3695
3696 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
3697 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
3698 * genrecog.c: No need to diagnose lack of an input file;
3699 init_md_reader_args will handle it.
3700 * genconditions.c: Likewise, and use init_md_reader_args.
3701 * genconstants.c: Likewise, and no need to call read_md_rtx.
3702
3703 2004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
3704
3705 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
3706 declarations.
3707
3708 2004-08-03 Mike Stump <mrs@apple.com>
3709
3710 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
3711 for frameworks.
3712 * doc/invoke.texi (Darwin Options): Update to reflect above.
3713
3714 2004-08-03 Roger Sayle <roger@eyesopen.com>
3715
3716 PR middle-end/16790
3717 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
3718 truncations, not just global truncations.
3719
3720 2004-08-03 Andrew Pinski <apinski@apple.com>
3721
3722 PR bootstrap/16865
3723 * loop-iv.c (simplify_using_assignment): Initialize lhs.
3724
3725 2004-08-03 Paul Brook <paul@codesourcery.com>
3726
3727 * gcc/doc/install.texi: Document MPFR requirement.
3728
3729 2004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
3730
3731 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3732 and mmap() explicitly instead of relying on preset autoconf cache
3733 variables.
3734 * configure: Regenerate.
3735
3736 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
3737
3738 PR target/16570
3739 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
3740 to tmake_file.
3741 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
3742 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
3743 to tmake_file.
3744
3745 * config/i386/t-gmm_malloc: New file.
3746 * config/i386/t-pmm_malloc: Likewise.
3747
3748 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
3749
3750 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
3751 Tanguy Fautrà <tfautre@pandora.be>
3752
3753 * config/i386/pmm_malloc.h: New file.
3754
3755 2004-08-03 Danny Smith <dannysmith@users.sourceforge.net>
3756
3757 * config/i386/gmm_malloc.h: New file.
3758
3759 2004-08-03 Dale Johannesen <dalej@apple.com>
3760
3761 * config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs.
3762 * c-common.c: Include opts.h.
3763 (c_common_get_alias_set): Fix check for a single input file.
3764 * toplev.c: Remove current_file_decl.
3765 * tree.h: Ditto.
3766
3767 2004-08-03 Mark Mitchell <mark@codesourcery.com>
3768
3769 * config.gcc (arm*-*-symbianelf*): New target.
3770 * config/arm/symbian.h: New file.
3771
3772 * gthr-gnat.c: Add visibility #pragmas.
3773 * gthr-gnat.h : Likewise.
3774 * gthr.h: Likewise.
3775 * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
3776 (__ffsDI2): Likewise.
3777 (__clzSI2): Likewise.
3778 (__ctzSI2): Likewise.
3779 (__ctzDI2): Likewise.
3780 (__popcountSI2): Likewise.
3781 (__popcountDI2): Likewise.
3782 (__paritySI2): Likewise.
3783 (__parityDI2): Likewise.
3784 * libgcc2.h: Add visibility #pragmas.
3785 (__clzDI2): Add prototype.
3786 (__clzSI2): Likewise.
3787 (__ctzSI2): Likewise.
3788 (__ffsDI2): Likewise.
3789 (__ffsSI2): Likewise.
3790 (__ctzDI2): Likewise.
3791 (__popcountSI2): Likewise.
3792 (__popcountDI2): Likewise.
3793 (__paritySI2): Likewise.
3794 (__parityDI2): Likewise.
3795 * unwind-dw2-fde.h: Add visibility #pragmas.
3796 * unwind.h: Likewise.
3797
3798 2004-08-03 David Edelsohn <edelsohn@gnu.org>
3799 Dale Johannesen <dalej@apple.com>
3800 Roger Sayle <roger@eyesopen.com>
3801
3802 * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
3803 constants more accurately. Adjust costs for FMA instructions.
3804 Add cases for most logical and float operations. Recurse into
3805 most operands.
3806
3807 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3808
3809 * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
3810
3811 2004-08-03 Pat Haugen <pthaugen@us.ibm.com>
3812
3813 * ra-build.c (conflicts_between_webs): For webs that cross a call add
3814 conflicts to regs_invalidated_by_call.
3815
3816 2004-08-03 Paul Brook <paul@codesourcery.com>
3817
3818 * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
3819
3820 2004-08-03 Jan Hubicka <jh@suse.cz>
3821
3822 * coverage.c (tree_coverage_counter_ref): Fix computation of the new
3823 ARRAY_REF argument.
3824
3825 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3826
3827 * arm-cores.def: Sort by architecture. Add arm946es, arm966es,
3828 arm968es, arm10e, arm1020e, arm1022e.
3829 * invoke.texi: Update list of ARM cores.
3830 * arm-tune.md: Regenerate.
3831
3832 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3833
3834 * arm/gentune.sh: New file.
3835 * arm/t-arm: New file.
3836 * arm/arm-tune.md: New file (autogenerated).
3837 * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
3838 * arm.md (attribute tune): Delete. Include arm-tune.md.
3839
3840 2004-08-03 Paolo Bonzini <bonzini@gnu.org>
3841
3842 * gcc.c (add_prefix, add_sysrooted_prefix): Remove
3843 penultimate parameter. All callers adjusted.
3844 (struct prefix_list): Remove used_flag_ptr.
3845 (find_a_file): Do not set *pl->used_flag_ptr.
3846 (warn_B, warn_std_ptr): Remove.
3847
3848 2004-08-03 Yossi Markovich <yossim@il.ibm.com>
3849 Mostafa Hagog <mustafa@il.ibm.com>
3850
3851 * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
3852
3853 2004-08-02 Geoffrey Keating <geoffk@apple.com>
3854
3855 * dwarf2out.c (output_call_frame_info): Don't change data format
3856 due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local
3857 label. Use 'true' not '1'.
3858 * doc/install.texi (powerpc-*-darwin*): Mention cctools version
3859 required.
3860
3861 2004-08-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
3862
3863 * gdbinit.in: Reflect previous changes to rtunion_def.
3864
3865 2004-08-02 Roger Sayle <roger@eyesopen.com>
3866
3867 * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
3868 -> "X % Y" is only valid for TRUNC_MOD_EXPR.
3869
3870 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3871
3872 * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
3873 vec_p_reserve.
3874 * langhooks.h (lang_hooks::builtin_function): Rename parameter
3875 from "class" to "bt_class".
3876
3877 2004-08-02 Paul Brook <paul@codesourcery.com>
3878
3879 PR rtl-optimization/15068
3880 * flow.c (init_propagate_block_info): Check condition is reversible.
3881
3882 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3883
3884 * gengtype.h (options::info): Change type to const char *.
3885 (enum gc_used_enum): Move out of struct type scope.
3886 * gengtype.c (create_option): Convert initializer for option::info to
3887 appropiate type.
3888 (adjust_field_type, walk_type, write_func_for_structure,
3889 write_root, write_roots): Remove pointless cast.
3890
3891 2004-08-02 J"orn Rennecke <joern.rennecke@superh.com>
3892
3893 * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
3894
3895 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3896
3897 * rtl.h (union rtunion_def): Have all members start with the
3898 prefix "rt_".
3899 (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
3900 X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
3901 X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
3902 XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
3903 access.
3904 * gengtype.c (adjust_field_rtx_def): Likewise.
3905 * rtlanal.c (loc_mentioned_in_p): Likewise.
3906
3907 2004-08-02 Richard Sandiford <rsandifo@redhat.com>
3908
3909 * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
3910 Replace uses of mips/elf64.h with mips/elf.h
3911 * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
3912 (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
3913 (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
3914 (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
3915 (HANDLE_SYSV_PRAGMA): Delete.
3916 (ASM_OUTPUT_DEF): Fix formatting.
3917 * config/mips/elf64.h: Delete.
3918
3919 2004-08-01 Zack Weinberg <zack@codesourcery.com>
3920
3921 * config/ia64/ia64.c (got_symbolic_operand): Do require a
3922 symbol+offset operand to have its offset be zero mod 0x3fff
3923 when GOT entries are in use. Clarify logic in SYMBOL_REF
3924 case. Clarify comments.
3925 (ia64_expand_load_address): Split a symbol+offset load when
3926 the offset is nonzero mod 0x3fff, not 0x1fff.
3927
3928 2004-08-01 Geoffrey Keating <geoffk@apple.com>
3929
3930 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
3931 if trying to *store* to a non-offsettable address.
3932 * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
3933 a nonoffsettable address.
3934 (movdi_internal32): Don't move GPRs to a nonoffsettable address.
3935 Clean up.
3936 (movti_string): Don't move GPRs to a nonoffsettable address.
3937 (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
3938
3939 2004-08-02 Ben Elliston <bje@au.ibm.com>
3940
3941 PR target/16155
3942 * config/rs6000/altivec.h: Replace typeof with __typeof__.
3943
3944 2004-08-01 Richard Henderson <rth@redhat.com>
3945
3946 * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
3947 variable sized types.
3948
3949 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3950
3951 * doc/invoke.texi: In the MIPS options section, remove the passage
3952 saying that -mexplicit-relocs is usually disabled for -mabicalls
3953 -fno-unit-at-a-time.
3954 * config/mips/mips.c (override_options): Remove the code that enforced
3955 this rule.
3956
3957 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3958
3959 * config/mips/mips.md (cprestore): Provide two alternatives, one for
3960 an in-range offset and one for an out-of-range offset. Wrap the latter
3961 in .set macro/.set nomacro if it's inside a .set nomacro block.
3962
3963 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3964
3965 * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
3966 (mips_restore_gp): Declare.
3967 * config/mips/mips.c (mips_add_offset): Add a scratch register
3968 argument. Reimplement in rtl only, reusing MIPS16 logic from
3969 mips_output_mi_thunk.
3970 (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
3971 to mips_add_offset.
3972 (mips_gp_save_slot): Delete.
3973 (mips_restore_gp): New function.
3974 (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
3975 * config/mips/mips.md (exception_receiver): Turn into a
3976 define_insn_and_split. Use mips_restore_gp to do the split.
3977 (call_internal, call_value_internal, call_value_multiple_internal): Use
3978 mips_restore_gp to restore $gp.
3979
3980 2004-07-31 Andrew Pinski <apinski@apple.com>
3981
3982 PR other/16842
3983 * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
3984
3985 2004-07-31 Joseph S. Myers <jsm@polyomino.org.uk>
3986
3987 * c-decl.c (diagnose_mismatched_decls): Give error for external
3988 redeclaration of identifier declared with no linkage, not just
3989 warning with -Wtraditional. Do not check DECL_CONTEXT to give
3990 error for redeclaration with no linkage.
3991
3992 2004-07-30 Geoffrey Keating <geoffk@apple.com>
3993 Fariborz Jahanian <fjahanian@apple.com>
3994
3995 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
3996 non-offsettable addresses even for DImode.
3997 (rs6000_split_multireg_move): Cope with non-offsettable addresses
3998 being moved into multiple GPRs.
3999
4000 * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
4001 to 64.
4002 (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
4003 * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
4004 to 128.
4005 * config/rs6000/darwin-ldouble.c (isless): New macro.
4006 (inf): New macro.
4007 (nonfinite): New macro.
4008 (FPKINF): Delete.
4009 (_xlqadd): Completely rewrite.
4010 (_xlqmul): Correct overflow handling.
4011 (_xlqdiv): Correct overflow handling.
4012 * config/rs6000/darwin-ldouble-format: New file.
4013
4014 2004-07-30 Roger Sayle <roger@eyesopen.com>
4015 Richard Henderson <rth@redhat.com>
4016
4017 * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
4018 9 into the equivalent lea instruction.
4019
4020 2004-07-30 Richard Henderson <rth@redhat.com>
4021
4022 * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
4023 with DECL_INITIAL if fb_lvalue.
4024 * tree-gimple.c (is_gimple_id): Add CONST_DECL.
4025 * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
4026 with <Cxxx>.
4027 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
4028
4029 2004-07-30 Diego Novillo <dnovillo@redhat.com>
4030
4031 * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
4032 pointer escapes through a function call, assume that the
4033 callee will dereference it.
4034 (add_pointed_to_var): Assume that VALUE is always an
4035 ADDR_EXPR.
4036 (collect_points_to_info_r): Only call add_pointed_to_var if
4037 the value is an ADDR_EXPR.
4038
4039 2004-07-30 Diego Novillo <dnovillo@redhat.com>
4040
4041 * tree-ssa-alias.c (create_alias_map_for): Do not get the
4042 alias set of the inner type of ARRAY_TYPEs.
4043
4044 2004-07-29 Diego Novillo <dnovillo@redhat.com>
4045
4046 * tree-ssa-ccp.c (visit_assignment): Move code to prevent
4047 setting a non-register to UNDEFINED right before the call to
4048 set_lattice_value.
4049
4050 2004-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
4051
4052 * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
4053
4054 2004-07-29 Diego Novillo <dnovillo@redhat.com>
4055
4056 * tree-ssa.c (verify_flow_sensitive_alias_info): When
4057 comparing points-to sets of different pointers, make sure the
4058 second pointer is actually referenced in the code.
4059
4060 2004-07-29 Zack Weinberg <zack@codesourcery.com>
4061
4062 * config/ia64/ia64.c (setjmp_operand): Delete, unused.
4063 (got_symbolic_operand): Remove unreachable code.
4064 * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
4065 setjmp_operand; add entry for tls_symbolic_operand.
4066 * config/ia64/ia64-protos.h: Remove all prototypes of
4067 predicate functions.
4068
4069 2004-07-29 Mark Mitchell <mark@codesourcery.com>
4070
4071 * c-common.h (lang_post_pch_load): New variable.
4072 * c-pch.c (lang_post_pch_load): Define it.
4073 (c_common_read_pch): Use it.
4074 * cgraphunit.c (record_call_1): Give the front end a chance to
4075 record additional needed entities when a variable is marked as
4076 needed.
4077 * tlink.c (recompile_files): Robustify.
4078 (scan_linker_output): If a symbol is assigned to a file,
4079 but after recompilation is not present there, issue an error
4080 message.
4081
4082 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4083
4084 * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
4085 Take orig_loop argument and pass it to set_level.
4086 (schedule_sm): Pass the correct orig_loop to force_move_till.
4087
4088 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4089
4090 * cfgloop.c (update_latch_info): Update dominator of the new block.
4091 (canonicalize_loop_headers, flow_loops_find): Do not free dominance
4092 info.
4093 * dominance.c (verify_dominators): Check that the dominance tree is
4094 connected.
4095 (recount_dominator): Ignore unreachable blocks.
4096 (iterate_fix_dominators): Cleanup old dominance information before
4097 recomputing it.
4098
4099 2004-07-29 Diego Novillo <dnovillo@redhat.com>
4100
4101 * tree-ssa-operands.c (get_expr_operands): Revert changes
4102 to ADDR_EXPR processing introduced by:
4103 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4104 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
4105
4106 2004-07-29 Joseph S. Myers <jsm@polyomino.org.uk>
4107
4108 * doc/implement-c.texi: Add C90 subclause references. Point to
4109 preprocessor documentation instead of duplicating it. Add points
4110 only present in C90. Fill in documentation for all points.
4111
4112 2004-07-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4113
4114 * pa.c (output_movb): Correct typo.
4115
4116 2004-07-29 Pat Haugen <pthaugen@us.ibm.com>
4117
4118 * ra.h (single_reg_in_regclass): Declare.
4119 * ra.c (single_reg_in_regclass): Define.
4120 (first_hard_reg): New.
4121 (init_ra): Initialize single_reg_in_regclass.
4122 * ra-colorize.c (ok_class): New.
4123 (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
4124
4125 2004-07-29 Nathan Sidwell <nathan@codesourcery.com>
4126
4127 * gcov-io.h: Allow zero tag as EOF indicator.
4128 (gcov_is_eof): Remove.
4129 (gcov_truncate): Remove.
4130 * gcov-io.c (gcov_seek): Always SEEK_SET.
4131 * libgcov.c (gcov_exit): Don't use gcov_truncate. Write explicit
4132 EOF tag.
4133 * coverage.c (read_counts_file): Don't use gcov_is_eof.
4134 * gcov-dump.c (dump_file): Likewise.
4135 * gcov.c (read_graph_file, read_count_file): Likewise.
4136
4137 * c-decl.c (complete_array_type): Don't gratuitously copy
4138 maxindex. Check it always has a type.
4139
4140 2004-07-29 Steven Bosscher <stevenb@suse.de>
4141
4142 * rtl.c (currently_expanding_to_rtl): New.
4143 * rtl.h (currently_expanding_to_rtl): Export it.
4144 * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
4145
4146 * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
4147 inliner hack.
4148 * config/sh/sh.c: Replace rtx_equal_function_value_matters
4149 with currently_expanding_to_rtl.
4150 * config/sh/sh.md: Likewise.
4151 * config/ia64/ia64.c (got_symbolic_operand): Likewise.
4152
4153 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
4154
4155 Introduce sh2a support.
4156 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
4157 * config.gcc: Build multilibs for sh2a and sh2a-single by
4158 default.
4159 * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
4160 default. Split their tests out of the corresponding SH4
4161 multilibs.
4162 * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
4163 multilibs for SH2a.
4164 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
4165 * config.gcc: Handle sh2a multilibs and cpu selection.
4166 * config/sh/sh.h: Likewise. Handle sh2a command line flags.
4167 * config/sh/t-mlib-sh2a: New.
4168 * config/sh/t-mlib-sh2a-nofpu: New.
4169 * config/sh/t-mlib-sh2a-single: New.
4170 * config/sh/t-mlib-sh2a-single-only: New.
4171 2004-07-09 Nick Clifton <nickc@redhat.com>
4172 Issue 43400
4173 * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
4174 -ml and -m2a are used together.
4175 2004-03-23 DJ Delorie <dj@redhat.com>
4176 * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
4177 when we have a double-sized FPU.
4178 2004-02-24 Corinna Vinschen <vinschen@redhat.com>
4179 * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
4180 is set.
4181 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
4182 -msh2a-single and -msh2a-single-only
4183 2004-02-24 Corinna Vinschen <vinschen@redhat.com>
4184 * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
4185 is set.
4186 2004-02-20 DJ Delorie <dj@delorie.com>
4187 * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
4188 2004-02-20 Fred Fish <fnf@redhat.com>,
4189 Corinna Vinschen <vinschen@redhat.com>
4190 * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
4191 (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
4192 2004-02-18 DJ Delorie <dj@redhat.com>
4193 * config/sh/sh.c (broken_move): Add support for movi20.
4194 * config/sh/sh.h: Likewise.
4195 (SHIFT_COUNT_TRUNCATED): Set for sh2a.
4196 * config/sh/sh.md (udivsi3_sh2a): New.
4197 (udivsi3): Call it.
4198 (divsi3_sh2a): New.
4199 (divsi3): Call it.
4200 (mul_r): New.
4201 (ashlsi3_sh2a): New.
4202 (ashrsi3_sh2a): New.
4203 (lshrsi3_sh2a): New.
4204 (movsi_i): Disable for sh2a.
4205 (movsi_ie): Add movi20.
4206 (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
4207 sh2a, for -m2a-nofpu mode.
4208 2004-02-13 DJ Delorie <dj@redhat.com>
4209 * config/sh/lib1funcs.asm: Handle double vs single better.
4210 * config/sh/sh.h: Likewise.
4211 2004-02-09 DJ Delorie <dj@redhat.com>
4212 * config/sh/crt1.asm: Add support for sh2a.
4213 * config/sh/elf.h: Likewise.
4214 * config/sh/lib1funcs.asm: Likewise.
4215 * config/sh/sh.c: Likewise.
4216 * config/sh/sh.md: Likewise.
4217 * config/sh/sh.h: Likewise.
4218 * config/sh/t-sh: Likewise.
4219
4220 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
4221
4222 * config/frv/frv.md (movqi_internal, movhi_internal,
4223 movsi_internal): Add backup alternatives for memory inputs.
4224
4225 2004-07-28 Matt Austern <austern@apple.com>
4226
4227 * config/darwin.c (darwin_one_byte_bool): New global variable.
4228 * config/darwin.h (darwin_one_byte_bool): Declare.
4229 (SUBTARGET_OPTIONS): Define macro. (for -mone-byte-bool flag.)
4230 * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
4231 value of darwin_one_byte_bool.
4232 * doc/invoke.texi: Document -mone-byte-bool flag.
4233
4234 2004-07-28 Eric Christopher <echristo@redhat.com>
4235
4236 * c-common.c (c_common_unsafe_for_reeval): Delete.
4237 * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
4238 * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
4239 * calls.c (fix_unsafe_tree): Delete.
4240 (expand_call): Delete code which used above.
4241 * dojump.c (do_jump): Delete UNSAVE_EXPR case.
4242 * expr.c (expand_expr_real_1): Ditto.
4243 * fold-const.c (non_lvalue): Ditto.
4244 * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
4245 (lhd_unsafe_for_reeval): Ditto.
4246 * langhooks.c (lhd_unsafe_for_reeval): Ditto.
4247 * langhooks.h (unsafe_for_reeval): Ditto.
4248 (unsave_expr_now): Adjust comment.
4249 * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
4250 (estimate_num_insns_1): Ditto.
4251 * tree-pretty-print.c (dump_generic_node): Ditto.
4252 * tree.c (expr_align): Ditto.
4253 (unsave_expr): Delete.
4254 (unsafe_for_reeval): Ditto.
4255 * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
4256 * tree.def (UNSAVE_EXPR): Delete.
4257 * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
4258
4259 2004-07-28 Zack Weinberg <zack@codesourcery.com>
4260
4261 * tree.h (enum tls_model): Move ...
4262 * coretypes.h: ... here.
4263
4264 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
4265
4266 * config/frv/frv.h (EPILOGUE_USES): New. Use LR.
4267
4268 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
4269
4270 * cse.c (validate_canon_reg): New function, split out from...
4271 (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'.
4272
4273 2004-07-28 Diego Novillo <dnovillo@redhat.com>
4274
4275 * tree-ssa-alias.c (maybe_create_global_var): Don't just
4276 return if .GLOBAL_VAR has been created.
4277
4278 2004-07-28 Diego Novillo <dnovillo@redhat.com>
4279
4280 * tree-ssa.c (verify_flow_insensitive_alias_info): Process
4281 every variable that may have aliases, not just tags.
4282
4283 2004-07-28 Aldy Hernandez <aldyh@redhat.com>
4284
4285 * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
4286 move_from_CR_eq_bit.
4287 Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
4288
4289
4290 * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
4291 e500_flip_eq_bit.
4292
4293 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
4294 output_e500_flip_eq_bit.
4295
4296 * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
4297 output_e500_flip_eq_bit.
4298 (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
4299 output_e500_flip_eq_bit.
4300 Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
4301 (print_operand): case D. Get to EQ bit.
4302
4303 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
4304
4305 * gcov.c (function_summary): Add missing \n.
4306
4307 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
4308
4309 Introduce sh4a support.
4310 * config.gcc: Handle sh4a multilibs and cpu selection.
4311 * config/sh/sh.h: Likewise. Handle sh4a command line flags.
4312 * config/sh/t-mlib-sh4a: New.
4313 * config/sh/t-mlib-sh4al: New.
4314 * config/sh/t-mlib-sh4a-nofpu: New.
4315 * config/sh/t-mlib-sh4a-single: New.
4316 * config/sh/t-mlib-sh4a-single-only: New.
4317 2004-02-20 DJ Delorie <dj@redhat.com>
4318 * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
4319 * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
4320 2003-08-22 Eric Christopher <echristo@redhat.com>
4321 * config/sh/sh4a.md: Update for chip errata.
4322 2003-08-07 Eric Christopher <echristo@redhat.com>
4323 * config/sh/sh4a.md: New file. sh4a processor description.
4324 2003-07-08 Alexandre Oliva <aoliva@redhat.com>
4325 * config/sh/sh.h (TARGET_SWITCHES): Added 4al. Adjust description
4326 of -m4a-nofpu.
4327 (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
4328 * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
4329 * doc/invoke.texi (SH Options): Document -m4al.
4330 2003-07-03 Alexandre Oliva <aoliva@redhat.com>
4331 * config/sh/sh.c (expand_block_move): Remove commented-out code
4332 checked in by mistake.
4333 (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
4334 single elements from SFmode vectors.
4335 * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
4336 register.
4337 (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
4338 2003-07-01 Alexandre Oliva <aoliva@redhat.com>
4339 * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
4340 sh_fsca_int2sf): Remove variable declarations.
4341 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
4342 sh_fsca_int2sf): New functions.
4343 (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
4344 sh_fsca_int2sf_rtx): New static variables.
4345 * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
4346 sh_fsca_int2sf): Declare.
4347 * config/sh/sh.md: Adjust.
4348 * doc/invoke.texi (SH Options): Document new options.
4349 * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
4350 compatibility from SH4 code.
4351 2003-06-27 Alexandre Oliva <aoliva@redhat.com>
4352 * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
4353 early.
4354 (memory_movsrc_operand): Renamed to...
4355 (unaligned_load_operand): ... this. Simplified.
4356 * config/sh/sh.h (PREDICATE_CODES): Adjust.
4357 * config/sh/sh.md (movua, extv, extzv): Likewise. Change movua's
4358 input operand to SImode, and adjust the others. Introduce
4359 post-increment by peephole.
4360 * config/sh/sh.c (expand_block_move): Give the target address the
4361 same mode as the temp reg.
4362 * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
4363 copying.
4364 2003-06-26 Alexandre Oliva <aoliva@redhat.com>
4365 Introduce support for SH4a.
4366 * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
4367 __SH4A__. Emit 4 4kb blocks and touch all of them otherwise.
4368 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
4369 sh_fsca_int2sf): New.
4370 (sh_init_builtins): Initialize them.
4371 (print_operand): Support `d'.
4372 (expand_block_move): Use movua if src is misaligned.
4373 (memory_movsrc_operand): New.
4374 * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
4375 and one of the SH4 macros.
4376 (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
4377 SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
4378 SELECT_SH4A_SINGLE): New.
4379 (TARGET_NONE): Add SH4A_BIT.
4380 (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
4381 (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
4382 (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
4383 (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
4384 (enum processor_type): Added PROCESSOR_SH4A.
4385 (PREDICATE_CODES): Add memory_movsrc_operand.
4386 * config/sh/sh.md: Removed unused variables.
4387 (attr cpu): Add sh4a.
4388 (attr type): Add movua, fsrra and fsca.
4389 (prefetch): New, for SH4.
4390 (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
4391 (toggle_sz): Set type to fp.
4392 (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
4393 (movua, extv, extzv): New.
4394 * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
4395 and 4a-single-only.
4396
4397 2004-07-28 Diego Novillo <dnovillo@redhat.com>
4398
4399 * tree-optimize.c (init_tree_optimization_passes): Schedule
4400 pass_may_alias right after the program is renamed into SSA.
4401 * tree-pass.h (PROP_alias): Define.
4402 * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
4403 * tree-sra.c (pass_sra): Likewise.
4404 * tree-ssa-ccp.c (pass_ccp): Likewise.
4405 * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
4406 * tree-ssa-dce.c (pass_dce): Likewise.
4407 * tree-ssa-dom.c (pass_dominator): Likewise.
4408 * tree-ssa-dse.c (pass_dse): Likewise.
4409 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
4410 * tree-ssa-loop-ch.c (pass_ch): Likewise.
4411 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4412 * tree-ssa-pre.c (pass_pre): Likewise.
4413 * tree-tailcall.c (pass_tail_recursion): Likewise.
4414 * tree-ssa.c (pass_redundant_phi): Likewise.
4415 * tree-ssa-alias.c (aliases_computed_p): Remove.
4416 Update all users.
4417 (init_alias_info): Do not mark all type tags for renaming
4418 unconditionally.
4419 Clear may_aliases from every symbol.
4420 (setup_pointers_and_addressables): If a pointer has not been
4421 dereferenced and it had a type tag, clear it and mark the old
4422 tag for renaming.
4423
4424 2004-07-28 Diego Novillo <dnovillo@redhat.com>
4425
4426 PR tree-optimization/16705
4427 * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
4428 .GLOBAL_VAR.
4429
4430 2004-07-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4431
4432 * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
4433 check.
4434
4435 * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
4436 don't make another one.
4437
4438 PR optimization/15077
4439 * function.h (struct function): Add field saved_static_chain_decl.
4440 Fix comment for static_chain_decl.
4441 * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
4442 * tree-inline.h (save_body): Add new arg.
4443 * tree-optimize.c (tree_rest_of_compilation): Handle saving
4444 static_chain_decl.
4445
4446 2004-07-27 Richard Henderson <rth@redhat.com>
4447
4448 * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
4449 (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
4450 is_gimple_addressable.
4451 * tree-gimple.c (is_gimple_addressable): Rename from
4452 is_gimple_addr_expr_arg; accept INDIRECT_REF.
4453 (is_gimple_lvalue): Don't test INDIRECT_REF directly.
4454 * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
4455 rename to is_gimple_addressable.
4456
4457 2004-07-28 Alan Modra <amodra@bigpond.net.au>
4458
4459 * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
4460
4461 2004-07-27 Richard Henderson <rth@redhat.com>
4462
4463 * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
4464 before rounding.
4465
4466 2004-07-27 Zack Weinberg <zack@codesourcery.com>
4467
4468 * libgcc2.c: Change all conditionals testing
4469 LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
4470 * libgcc2.h: Likewise.
4471 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
4472 TYPE_PRECISION of float80_type to 80.
4473 * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
4474 of fpreg_type and float80_type to 80.
4475 * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
4476 * config/m68k/netbsd-elf.h:
4477 Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
4478 to evaluate to 80 whenever they would formerly have evaluated to 96.
4479 * config/i386/sco5.h: Remove unnecessary redefinition of
4480 LONG_DOUBLE_TYPE_SIZE.
4481 * doc/rtl.texi: Clarify uses of XFmode and TFmode.
4482 * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
4483 XFmode, with a bitsize of 80. Update commentary.
4484 * config/ia64/ia64-modes.def: Likewise.
4485 * config/m68k/m68k-modes.def: Likewise.
4486
4487 2004-07-27 Steven Bosscher <stevenb@suse.de>
4488
4489 * cfgexpand.c (tree_expand_cfg): Fix comment.
4490
4491 * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
4492 * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
4493 Remove.
4494 (prepare_function_start): Don't set rtx_equal_function_value_matters.
4495 * integrate.c (copy_rtx_and_substitute): Don't test for it.
4496 * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
4497 Don't set rtx_equal_function_value_matters. Don't register RTL hooks
4498 here again. Update leading comment.
4499 * rtl.c (rtx_equal_function_value_matters): Remove.
4500 (rtx_equal_p): Don't test for it.
4501 * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
4502 Likewise.
4503
4504 * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
4505 * rtl.c (note_insn_name): Likewise.
4506 * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
4507 * final.c (final_scan_insn): Likewise.
4508
4509 * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
4510 * passes.c (rest_of_handle_eh): Do it here.
4511
4512 * stmt.c (struct nesting): Remove struct nesting block member.
4513 (struct stmt_status): Remove x_block_start_count field.
4514 (current_block_start_count): Remove.
4515
4516 2004-07-27 Brian Booth <bbooth@redhat.com>
4517
4518 * tree-optimize.c (register_one_dump_file): Update condition that uses
4519 static_pass_number.
4520 (dup_pass_1): Replace with...
4521 (next_pass_1): This.
4522 (NEXT_PASS): Call next_pass_1.
4523 (DUP_PASS): Remove.
4524 (init_tree_optimization_passes): Remove uses of DUP_PASS.
4525 (execute_one_pass): Update condition that uses
4526 static_pass_number.
4527 * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
4528 integer.
4529
4530 2004-07-27 Nick Clifton <nickc@redhat.com>
4531
4532 * config/m32r/m32r.c: Include integrate.h in order to get the
4533 prototype for get_hard_reg_initial_val().
4534
4535 * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
4536 and tidy up indentation.
4537 (final_presence_set): Use absence_set instead, so that if there is
4538 nothing in the "o" pipe the "s" pipe can be scheduled.
4539
4540 2004-07-27 Diego Novillo <dnovillo@redhat.com>
4541
4542 * tree-ssa-alias.c (create_name_tags): Ignore pointers that
4543 don't have PT_VARS nor PT_MALLOC set.
4544 Clear name tag from pointers that have not been dereferenced.
4545 (set_pt_anything, set_pt_malloc): Forward declare.
4546 * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
4547 not type compatibility when determining if a pointer can be
4548 copy propagated.
4549
4550 2004-07-27 Richard Sandiford <rsandifo@redhat.com>
4551
4552 * expr.h (canonicalize_condition, get_condition): Add an int argument.
4553 * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
4554 it to check whether the condition is still valid at the jump insn.
4555 * ifcvt.c (noce_get_condition): Likewise.
4556 (noce_get_alt_condition): Update call to canonicalize_condition.
4557 * loop-iv.c (simplify_using_initial_values): Update call to
4558 get_condition. Remove FIXME.
4559 (check_simple_exit): Update call to get_condition.
4560 * loop-unswitch.c (may_unswitch_on): Likewise.
4561 * loop.c (check_dbra_loop): Likewise.
4562 (canonicalize_condition, get_condition): Add an argument to say whether
4563 the condition must still be valid at INSN.
4564 (get_condition_for_loop): Update call to get_condition. Require that
4565 the condition be valid at INSN.
4566 * predict.c (estimate_probability): Update call to get_condition.
4567 Remove unused earliest parameter.
4568 (expected_value_to_br_prob): Update call to canonicalize_condition.
4569
4570 2004-07-26 Eric Christopher <echristo@redhat.com>
4571
4572 * tree-dfa.c (add_referenced_var): Register initializers of global
4573 variables.
4574
4575 2004-07-26 Paolo Bonzini <bonzini@gnu.org>
4576
4577 * config/i386/i386.c (function_arg): Always treat 8-
4578 and 16-byte wide vectors the same, even if MMX/SSE
4579 are disabled.
4580 (contains_128bit_aligned_vector_p): Add comment.
4581
4582 2004-07-26 J"orn Rennecke <joern.rennecke@superh.com>
4583
4584 * ra.h (enum node_type): Rename to:
4585 (enum ra_node_type).
4586 * ra-colorize.c: Likewise.
4587
4588 2004-07-26 Richard Sandiford <rsandifo@redhat.com>
4589
4590 * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
4591 after simplifying the jump.
4592
4593 2004-06-26 Richard Henderson <rth@redhat.com>
4594
4595 * calls.c (combine_pending_stack_adjustment_and_call): Make
4596 preferred_unit_stack_boundary argument unsigned. Make
4597 unadjusted_alignment unsigned.
4598 (expand_call): Make preferred_stack_boundary and
4599 preferred_unit_stack_boundary variables unsigned.
4600 * function.c (assign_stack_local_1): Make alignment unsigned.
4601 * function.h (struct function): Make stack_alignment_needed,
4602 preferred_stack_boundary unsigned.
4603 * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
4604 (ix86_compute_frame_layout): Make stack_alignment_needed,
4605 preferred_alignment variables unsigned.
4606 * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
4607
4608 2004-07-26 Tom Tromey <tromey@redhat.com>
4609
4610 * tree.h: Fix typo in comment.
4611
4612 2004-07-26 Daniel Jacobowitz <dan@debian.org>
4613
4614 PR bootstrap/12804
4615 * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
4616 (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
4617 (ggc_free): Remove incorrect freeing.
4618 (sweep_pages): Advance PP for large pages. Fix indentation.
4619
4620 2004-07-26 Richard Sandiford <rsandifo@redhat.com>
4621
4622 PR rtl-optimization/16643
4623 * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
4624 * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
4625 * basic-block.h (reorder_basic_blocks): Add a flags parameter.
4626 * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
4627 (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
4628 * function.c (thread_prologue_and_epilogue_insns): Likewise.
4629 * rtl.h (tracer): Add a flags parameter.
4630 * tracer.c (tracer): Pass it to cfg_layout_initialise.
4631 * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
4632 (rest_of_handle_reorder_blocks): Update calls to tracer and
4633 reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
4634 (rest_of_handle_tracer): Pass 0 to tracer.
4635 (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
4636
4637 2004-07-25 David Edelsohn <edelsohn@gnu.org>
4638
4639 PR target/16239
4640 * config/rs6000/rs6000.md (movdi_internal64): Further disparage
4641 f->f.
4642
4643 2004-07-24 Nathan Sidwell <nathan@codesourcery.com>
4644
4645 * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
4646 (BINFO_BASE_ACCESS): Adjust.
4647 (BINFO_BASE_ACCESS_APPEND): New.
4648 (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
4649 * dbxout.c (dbxout_type): Adjust binfo access accessing.
4650 * dwarf2out.c (gen_member_die): Likewise.
4651 * tree-dump.c (deque_and_dump): Likewise.
4652
4653 2004-07-26 Falk Hueffner <falk@debian.org>
4654
4655 * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
4656 costs.
4657
4658 2004-07-25 Roger Sayle <roger@eyesopen.com>
4659
4660 * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
4661 value off of the stack if TARGET_USE_FFREEP.
4662
4663 2004-07-26 Bernardo Innocenti <bernie@develer.com>
4664
4665 * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
4666 * gengtype-yacc.y: Likewise. Replace free() with XDELETE ().
4667 * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
4668 check on invocation of XRESIZEVEC ().
4669
4670 2004-07-26 Bernardo Innocenti <bernie@develer.com>
4671
4672 * c-common.c (disable_builtin_function): Rename variable n to
4673 new_disabled_builtin.
4674 * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
4675 Rename local variable old to old_decl.
4676 * gensupport.c (shift_output_template): Rename parameter old to src.
4677 * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
4678 old_rtx and newx to new_rtx.
4679
4680 2004-07-26 Bernardo Innocenti <bernie@develer.com>
4681
4682 * Makefile.in (C_PRAGMA_H): New variable to track dependencies
4683 of c-pragma.h.
4684 * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
4685 enum cpp_ttype.
4686 * c-lex.c: Likewise.
4687
4688 2004-07-25 Roger Sayle <roger@eyesopen.com>
4689
4690 * fold-const.c (constant_boolean_node): Make extern.
4691 (make_range): Wrap long lines.
4692 (fold_cond_expr_with_comparison): Remove unnecessary call to
4693 pedantic_non_lvalue. Add missing calls to fold_convert.
4694 (fold_truthop): Add missing calls to fold_convert.
4695 (fold): Likewise.
4696 * tree.h (constant_boolean_node): Add prototype here.
4697 * builtins.c (expand_builtin_strncmp): Add missing calls to
4698 fold_convert.
4699 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
4700 Call fold_convert and constant_boolean_node to correct types.
4701 * tree-ssa-forwprop.c (substitute_single_use_vars): Add
4702 missing call to fold_convert to correct types.
4703
4704 2004-07-26 Niall Douglas <s_fsfeurope2@nedprod.com>
4705 Brian Ryner <bryner@brianryner.com>
4706
4707 PR c++/9283
4708 PR c++/15000
4709 * c-common.c (c_common_attribute_table): Allow
4710 handle_visibility_attribute to be called for types.
4711 (handle_visibility_attribute) When given a type, set the visibility
4712 bits on the TYPE_NAME. When given a decl, don't set no_add_attrs
4713 so that we can check later whether the attribute was present. Added
4714 warning if attribute applied to non class type.
4715 * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
4716 decls and checking that they are consistent.
4717 * common.opt: Added -fvisibility.
4718 * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
4719 * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
4720 * flags.h, tree.h: Added assorted support defines for overall patch
4721 * opts.c: Added parsing support for -fvisibility.
4722 * tree.c (build_decl): Set visibility for all decls to be whatever
4723 is in force at that time.
4724 * varasm.c (default_binds_local_p_1): Reworked logic determining
4725 when to make a symbol locally bound.
4726 * doc/invoke.texi: Added documentation for -fvisibility and
4727 -fvisibility-inlines-hidden.
4728
4729 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4730
4731 * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
4732 * c-common.c: Add missing casts from void * to other types.
4733 * c-decl.c: Likewise.
4734 * c-format.c: Likewise.
4735 * c-lex.c: Likewise.
4736 * c-pragma.c: Likewise.
4737 * c-typeck.c: Likewise.
4738 * defaults.h: Likewise.
4739 * genconstants.c: Likewise.
4740 * gengtype-lex.l: Likewise.
4741 * genmodes.c: Likewise.
4742 * read-rtl.c: Likewise.
4743 * rtl.c: Likewise.
4744
4745 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4746
4747 * bitmap.c: Use type-safe memory allocation macros from libiberty.
4748 * c-common.c: Likewise.
4749 * c-decl.c: Likewise.
4750 * c-lang.c: Likewise.
4751 * c-lex.c: Likewise.
4752 * c-opts.c: Likewise.
4753 * c-parse.in: Likewise.
4754 * c-typeck.c: Likewise.
4755 * genconditions.c: Likewise.
4756 * gengtype-lex.l: Likewise.
4757 * gengtype-yacc.y: Likewise.
4758 * gengtype.c: Likewise.
4759 * genmodes.c: Likewise.
4760 * gensupport.c: Likewise.
4761 * read-rtl.c: Likewise.
4762 * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
4763 htab_find_slot().
4764
4765 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4766
4767 * c-decl.c (groktypename, groktypename_in_param_context): Rename
4768 variable typename to type_name.
4769 * c-lex.c (interpret_float): Likewise.
4770
4771 2004-07-25 Roger Sayle <roger@eyesopen.com>
4772
4773 * convert.c (convert_to_real, convert_to_integer,
4774 convert_to_complex): Replace calls to build with calls to buildN.
4775 * coverage.c (tree_coverage_counter_ref): Likewise.
4776 * dojump.c (do_jump): Likewise.
4777 * dwarf2out.c (loc_descriptor_from_tree): Likewise.
4778 * emit-rtl.c (component_ref_for_mem_expr,
4779 set_mem_attributes_minus_bitpos): Likewise.
4780 * explow.c (update_nonlocal_goto_save_area): Likewise.
4781 * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
4782 expand_mult_add): Likewise.
4783 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
4784 store_constructor, get_inner_reference, expand_expr_real_1,
4785 try_casesi, try_tablejump): Likewise.
4786 * function.c (expand_function_start): Likewise.
4787 * stmt.c (emit_case_bit_tests, expand_end_case_type,
4788 node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
4789 * stor-layout.c (place_union_field, layout_type): Likewise.
4790 * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
4791 * varasm.c (copy_constant): Likewise.
4792
4793 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4794
4795 * c-common.c: Rename all identifiers named `new'.
4796 * c-decl.c: Likewise.
4797 * gensupport.c: Likewise.
4798 * simplify-rtx.c: Likewise.
4799 * c-common.c (disable_builtin_function): Replace a call to xmalloc()
4800 with XNEW().
4801 * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
4802 with XNEWVEC().
4803
4804 2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
4805
4806 PR c/15360
4807 * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
4808 declarations until after calling pushdecl.
4809 (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
4810 "extern" and not on whether the declaration is initialized.
4811
4812 2004-07-25 Daniel Jacobowitz <dan@debian.org>
4813
4814 * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
4815 (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
4816 * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
4817 "cpplib.h", "c-pragma.h", "c-common.h".
4818 (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
4819 (solaris_register_pragmas): New functions.
4820 * config/sol2-protos.h: New file.
4821 * config/sol2.c: New file.
4822 * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
4823 (REGISTER_TARGET_PRAGMAS): New macros.
4824 (solaris_pending_aligns, solaris_pending_inits)
4825 (solaris_pending_finis): New variables.
4826 * config/t-sol2 (sol2-c.o): Update dependencies.
4827 (sol2.o): New rule.
4828 * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
4829 SUBTARGET_INSERT_ATTRIBUTES.
4830 (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
4831 * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
4832 (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
4833 * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
4834 * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
4835 * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
4836 (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
4837 * config/sparc/sparc.c (sparc_attribute_table): New.
4838 (TARGET_INSERT_ATTRIBUTES): Define in terms of
4839 SUBTARGET_INSERT_ATTRIBUTES.
4840 (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
4841 is defined.
4842 * doc/extend.texi (Solaris Pragmas): New section.
4843
4844 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4845
4846 * c-common.c: Rename all identifiers named `class' to `cl'.
4847 * c-common.h: Likewise.
4848 * c-parse.in: Likewise.
4849 * c-typeck.c: Likewise.
4850 * genmodes.c: Likewise.
4851 * real.c: Likewise.
4852 * real.h: Likewise.
4853 * recog.c: Likewise.
4854 * recog.h: Likewise.
4855 * regrename.c: Likewise.
4856 * tree.h: Likewise.
4857 * c-common.c (builtin_function_2): Change type of 5th parameter from
4858 int to enum built_in_function. Change type of 8th parameter from int
4859 to bool.
4860 * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
4861 with GGC_CNEW().
4862 * c-typeck.c (convert_arguments): Change type of formal_prec from
4863 int to unsigned int.
4864 * genmodes.c (blank_mode): Make a few negative constants unsigned.
4865 (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
4866 emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
4867 emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
4868 emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
4869 iterator to for_all_modes () instead of an enum because enums can't
4870 be incremented in C++.
4871
4872
4873 2004-07-25 Daniel Jacobowitz <dan@debian.org>
4874
4875 * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
4876 hard registers.
4877
4878 2004-07-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4879
4880 * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
4881 Handle ARRAY_RANGE_REF like ARRAY_REF.
4882
4883 2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
4884
4885 * c-typeck.c (digest_init): Don't allow arrays of signed or
4886 unsigned variants of wchar_t to be initialized by wide string
4887 constants. Do allow arrays of enumerated types compatible with
4888 wchar_t to be initialized by wide string constants. Refine tests
4889 distinguishing wide and narrow strings and arrays. Give specific
4890 error for arrays of other integer types initialized by string
4891 constants.
4892 (output_init_element, process_init_element): Check for
4893 INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
4894 initializing with string constants.
4895
4896 2004-07-25 Richard Henderson <rth@redhat.com>
4897
4898 * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
4899 on the RESULT_DECL.
4900 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4901 * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
4902 DECL_IGNORED_P to new decl.
4903
4904 2004-07-24 Zack Weinberg <zack@codesourcery.com>
4905
4906 * config/ia64/ia64.c (general_xfmode_operand)
4907 (destination_xfmode_operand): Delete.
4908 * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
4909 * config/ia64/ia64.md (*movxf_internal): Use general_operand
4910 and destination_operand.
4911
4912 2004-07-24 Alexander Kabaev <kan@freebsd.org>
4913
4914 * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
4915 (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
4916
4917 2004-07-24 Alexander Kabaev <kan@freebsd.org>
4918 Zack Weinberg <zack@codesourcery.com
4919
4920 PR 16684
4921 * c-decl.c (diagnose_mismatched_decls): Don't issue a
4922 redundant-declaration warning the first time a builtin is
4923 declared explicitly.
4924
4925 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4926
4927 * tree.h (staticp): Change return type to bool.
4928
4929 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4930
4931 * c-common.c (c_staticp): Last episode of the staticp saga.
4932
4933 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4934
4935 * c-common.h (c_staticp): Change return type from int to bool.
4936 * tree.c (staticp): Likewise.
4937 * langhooks.h (staticp): Likewise.
4938
4939 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4940
4941 * langhooks-def.h (lhd_staticp): Change return type from int to
4942 bool in prototype to match definition.
4943
4944 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4945
4946 * system.h (bool, true, false): Don't redefine as preprocessor macros
4947 in C++.
4948
4949 2004-07-24 Roger Sayle <roger@eyesopen.com>
4950
4951 * expmed.c (init_expmed): A signed modulus by a power of two is
4952 considered cheap if its less than or equal to four instructions.
4953
4954 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4955
4956 * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
4957 GGC_CNEWVAR): New macros.
4958
4959 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4960
4961 * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
4962 lists.
4963 * c-decl.c: Likewise.
4964 * c-format.c: Likewise.
4965 * c-lex.c: Likewise.
4966 * c-opts.c: Likewise.
4967 * c-pragma.c: Likewise.
4968 * c-typeck.c: Likewise.
4969 * gencheck.c: Likewise.
4970 * genconditions.c: Likewise.
4971 * genconfig.c: Likewise.
4972 * genflags.c: Likewise.
4973 * gengtype.c: Likewise.
4974 * gensupport.c: Likewise.
4975 * ggc-none.c: Likewise.
4976 * langhooks.c: Likewise.
4977 * statistics.h: Likewise.
4978 * stub-objc.c: Likewise.
4979 * java/decl.c: Likewise.
4980
4981 2004-07-24 Roman Zippel <zippel@linux-m68k.org>
4982
4983 * config/m68k/m68k.c (output_scc_di): Fix coding style.
4984 (symbolic_operand): Fix prototype.
4985 * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
4986 * config/m68k/m68k.md: Add constants for registers a0 and sp and
4987 use them, change from the "{...}" syntax to the simpler {...}
4988 syntax.
4989 (*cfv4_extendqisi2): Fix destination predicate.
4990 * config/m68k/m68k-protos.h: Remove various declarations also
4991 generated via PREDICATE_CODES.
4992
4993 2004-07-23 Mike Stump <mrs@apple.com>
4994
4995 * c-typeck.c (convert_for_assignment): Tightened up pointer
4996 converstions that differ in signedness.
4997
4998 2004-07-23 Zack Weinberg <zack@codesourcery.com>
4999
5000 * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
5001
5002 2004-07-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5003
5004 * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
5005 * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
5006
5007 * gimplify.c (gimplify_compound_lval): Check for no handled
5008 operations, rather than checking for explicit list of nodes.
5009 (is_gimple_addr_expr_arg_or_indirect): New function.
5010 (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
5011 redundant setting of TREE_INVARIANT.
5012 (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
5013 * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
5014
5015 2004-07-23 Diego Novillo <dnovillo@redhat.com>
5016
5017 PR tree-optimization/16688
5018 PR tree-optimization/16689
5019 * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
5020 unnecessary initialization of 'tag'.
5021 (get_tmt_for): Check that the new type tag has the same alias
5022 set as the pointed-to type.
5023 (group_aliases): Only regular variables need to be removed
5024 from the alias set of a name tag.
5025 * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
5026 propagation if the two types are not compatible.
5027 (merge_alias_info): Rename from replace_ssa_names_ann.
5028 Add more checking.
5029 (replace_exp_1): If both arguments are SSA_NAMEs, check that
5030 the propagation can be done.
5031 Only call merge_alias_info on pointers.
5032 (propagate_value): Likewise.
5033 * tree-ssa-copyrename.c: Include langhooks.h.
5034 (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
5035 to do the merging.
5036 Do not coalesce variables with incompatible types.
5037 (rename_ssa_copies): Call replace_ssa_name_symbol.
5038 * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
5039 the same type as the underlying _DECL.
5040 * tree-ssanames.c (replace_ssa_name_symbol): New function.
5041 * tree.h (replace_ssa_name_symbol): Declare.
5042
5043 2004-07-23 Richard Henderson <rth@redhat.com>
5044
5045 PR c++/16277
5046 * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
5047 unshare it properly.
5048 (gimplify_modify_expr_rhs): Push assignment from a conditional into
5049 the conditional for all non-register types.
5050
5051 2004-07-23 Richard Henderson <rth@redhat.com>
5052
5053 * expr.c (expand_expr_real_1): Don't handle non-local variables.
5054 * expr.h (fix_lexical_addr): Remove.
5055 * function.c (NEED_SEPARATE_AP): Remove.
5056 (fix_lexical_addr): Remove.
5057 * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
5058 not null decl_function_context.
5059 (create_alias_vars): Likewise.
5060 * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
5061 (simple_goto_p): Likewise.
5062 * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
5063 * tree-ssa-ccp.c (get_default_value): Likewise.
5064 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
5065 * tree.c (needs_to_live_in_memory): Likewise.
5066 * tree-flow-inline.h (may_be_aliased): Move...
5067 * tree-ssa-alias.c (may_be_aliased): ... here. Enhance check for
5068 when TREE_STATIC variables may be addressable.
5069
5070 2004-07-24 Jakub Jelinek <jakub@redhat.com>
5071
5072 * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
5073
5074 2004-07-23 Zack Weinberg <zack@codesourcery.com>
5075
5076 * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
5077 bitmap contents if GENERATOR_FILE is defined.
5078 * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
5079 ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
5080
5081 2004-07-23 Joseph S. Myers <jsm@polyomino.org.uk>
5082
5083 * c-decl.c (start_function): Form composite type of function types
5084 rather than copying type from previous prototype declaration.
5085
5086 2004-07-23 Janis Johnson <janis187@us.ibm.com>
5087
5088 * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
5089 the const qualifier for the second argument in the C++ functions.
5090
5091 * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
5092 specific pointer types.
5093
5094 * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
5095 vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
5096 for vector bool and/or vector pixel, add C++ and C missing support.
5097 (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
5098 vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
5099 vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
5100 vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
5101 vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
5102 missing C++ and C support for vector bool and/or vector pixel.
5103 (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
5104 vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
5105 vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
5106 vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
5107 vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
5108 C++ and C types used for vector bool and/or vector pixel.
5109 (vec_st, vec_stl): Add C++ support for vector pixel.
5110 (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
5111 (vec_all_ne): Add C++ support for vector pixel.
5112
5113 * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
5114 (vec_vmulesb): Add missing C++ function.
5115 (vec_perm): Fix type of third argument in C++ function.
5116 (vec_vsum4shs): Fix C++ function name.
5117 (vec_any_ge): Remove C++ functions for unsupported arg combinations.
5118 (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
5119 argument passed to the error handler in C macro.
5120 (vec_nmsub): Remove extra parens around argument names in C macro.
5121 (vec_packpx): Add missing parens in C macro.
5122
5123 2004-07-22 Paolo Bonzini <bonzini@gnu.org>
5124
5125 * machmode.def: Remove vector modes.
5126 * config/alpha/alpha-modes.def: Add supported vector modes.
5127 * config/arm/arm-modes.def: Likewise.
5128 * config/frv/frv-modes.def: Likewise.
5129 * config/i386/i386-modes.def: Likewise.
5130 * config/rs6000/rs6000-modes.def: Likewise.
5131 * config/sh/sh-modes.def: Likewise.
5132
5133 2004-07-23 Matthias Klose <doko@debian.org>
5134
5135 * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
5136 * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
5137 * config.h: Regenerate.
5138 * configure: Likewise.
5139
5140 2004-07-22 Mark Mitchell <mark@codesourcery.com>
5141
5142 * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
5143 generated SYMBOL_REFs for labels.
5144 * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
5145 Change prototype.
5146 (machopic_stub_name): Remove.
5147 (machopic_indirection_name): New function.
5148 (machopic_mcount_stub_name): Likewise.
5149 (machopic_classify_name): Remove.
5150 (machopic_function_base_sym): New function.
5151 (machpoic_classify_symbol): Likewise.
5152 (machopic_classify_ident): Remove.
5153 (machopic_define_ident): Likewise.
5154 (machopic_define_name): Likewise.
5155 (machopic_name_defined_p): Likewise.
5156 (machopic_ident_defined_p): Likewise.
5157 (darwin_strip_name_encoding): Likewise.
5158 (machopic_define_symbol): New function.
5159 * config/darwin.c (hashtab.h): Include.
5160 (machopic_defined_list): Remove.
5161 (machopic_classify_ident): Likewise.
5162 (machopic_classify_name): Likewise.
5163 (machopic_ident_defined_p): Likewise.
5164 (machopic_define_ident): Likewise.
5165 (machopic_define_name): Likewise.
5166 (machopic_symbol_defined_p): New function.
5167 (machopic_classify_symbol): Likewise.
5168 (machopic_data_defined_p): Use machopic_classify_symbol.
5169 (machopic_define_symbol): New function.
5170 (machopic_function_base_sym): New function.
5171 (machopic_non_lazy_pointers): Remove.
5172 (machopic_non_lazy_ptr_name): Likewise.
5173 (machopic_stubs): Likewise.
5174 (machopic_stub_name): Likewise.
5175 (NON_LAZY_POINTER_SUFFIX): New macro.
5176 (STUB_SUFFIX): Likewise.
5177 (machopic_indirection): New structure.
5178 (machopic_indirections): New variable.
5179 (machopic_indirection_hash): New function.
5180 (machopic_indirection_eq): Likewise.
5181 (machopic_indirection_name): Likewise.
5182 (machopic_mcount_stub_name): New function.
5183 (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
5184 hash table.
5185 (machopic_indirect_data_reference): Rework to use new functions.
5186 (machopic_indirect_call_target): Likewise.
5187 (machopic_legitimize_pic_address): Likewise.
5188 (machopic_output_indirection): New function.
5189 (machopic_finish): Use it.
5190 (machopic_operand_p): Rework to use new functions.
5191 (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
5192 (darwin_strip_name_encoding): Remove.
5193 (update_non_lazy_ptrs): Remove.
5194 (update_stubs): Likewise.
5195 (darwin_non_lazy_pcrel): Use new functions.
5196 * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
5197 (ASM_OUTPUT_LABELREF): Likewise.
5198 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
5199 (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
5200 (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
5201 (TARGET_STRIP_NAME_ENCODING): Do not use
5202 darwin_strip_name_encoding.
5203 (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
5204 darwin_strip_name_encoding.
5205 * config/i386/darwin.h (FUNCTION_PROFILER): Use
5206 machopic_mcount_stub_name.
5207 * config/i386/i386.c (x86_output_mi_thunk): Use
5208 machopic_indirection_name, not machopic_stub_name.
5209 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
5210 machopic_function_base_sym.
5211 (print_operand): Use machopic_classify_symbol.
5212 (rs6000_emit_prologue): Use machopic_function_base_sym.
5213 (output_profile_hook): Do not use machopic_stub_name.
5214 (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
5215
5216 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
5217
5218 PR c/7284
5219 * fold-const.c (extract_muldiv_1): Do not treat signed left shift
5220 as multiplication.
5221
5222 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
5223
5224 * doc/implement-c.texi: New file.
5225 * doc/extend.texi (C Implementation): Move to there.
5226 * doc/gcc.texi: Include implement-c.texi.
5227 * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
5228
5229 2004-07-22 Jason Merrill <jason@redhat.com>
5230
5231 * integrate.c (copy_decl_for_inlining): Remove invisible reference
5232 handling.
5233 * tree-inline.c (setup_one_parameter): Likewise.
5234
5235 2004-07-22 Brian Booth <bbooth@redhat.com>
5236
5237 * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
5238 (substitute_and_fold): Propigate into VUSE operands when possible.
5239 (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
5240 (cp_lattice_meet): Handle merging of latticevalues when
5241 UNKNOWN_VAL is present.
5242 (visit_stmt): Visit assignments with V_MUST_DEFs.
5243 (visit_assignment): Gather ccp information for V_MUST_DEF operands.
5244 (ccp_fold): Deal with RHS' that are constant and virtual.
5245 (evaluate_stmt): Handle UNKNOWN_VAL likely values.
5246 (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
5247 (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
5248 V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
5249 computing immediate uses.
5250 (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
5251 transition.
5252 (replace_vuse_in): New function.
5253 (likely_value): Add check of vuse operands.
5254 (get_default_value): Set the default value of virtually defined
5255 variables to UKNOWN_VAL instead of VARYING.
5256
5257 2004-07-22 Richard Henderson <rth@redhat.com>
5258
5259 * expr.c (emit_push_insn): Don't use set_mem_attributes.
5260
5261 2004-07-22 Richard Henderson <rth@redhat.com>
5262
5263 * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
5264 variables due to conditional compilation.
5265
5266 2004-07-22 Diego Novillo <dnovillo@redhat.com>
5267
5268 * tree-into-ssa.c (set_livein_block): Fix typo in comment.
5269 (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
5270 Release SSA names that have been re-renamed.
5271 * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
5272 variable.
5273 * tree-ssa-alias.c (init_alias_info): If aliases have been
5274 computed before, clear existing alias information.
5275 (create_name_tags): Do no fixup PT_ANYTHING pointers.
5276 If the new name tag for a pointer is different than the one it
5277 had before, mark the old tag for renaming.
5278 (replace_may_alias): New function.
5279 (group_aliases): Call it.
5280 (setup_pointers_and_addressables): Always call get_tmt_for.
5281 (maybe_create_global_var): Don't create .GLOBAL_VAR more than
5282 once.
5283 (set_pt_anything): New local function.
5284 (set_pt_malloc): New local function.
5285 (merge_pointed_to_info): Don't merge pointed-to variables from
5286 the original pointer if the destination is pointing to an
5287 unknown location.
5288 (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
5289 (add_pointed_to_var): Do not add a variable to the points-to
5290 set if the pointer is already pointing to anywhere.
5291 (collect_points_to_info_r): If the defining statement is a PHI
5292 node, only merge pointed-to information if the argument has
5293 already been visited.
5294 (get_tmt_for): Only create a new tag if the pointer didn't
5295 have one already.
5296 (dump_alias_info): Emit more information.
5297 (dump_points_to_info_for): Likewise.
5298 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
5299 try to get the annotation of an SSA_NAME.
5300 * tree-ssa-operands.c (add_stmt_operand): Only check for empty
5301 alias sets when checking is enabled.
5302 * tree-ssa-pre.c (need_eh_cleanup): New local variable.
5303 (eliminate): Mark basic blocks that will need
5304 EH information cleaned up.
5305 (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
5306 predecessor.
5307 Initialize need_eh_cleanup.
5308 (fini_pre): Call tree_purge_all_dead_eh_edges and
5309 cleanup_tree_cfg if needed.
5310 Free need_eh_cleanup.
5311 * tree-ssa.c (verify_ssa_name): New function.
5312 (verify_def): Call it.
5313 Re-arrange to avoid printing too many error messages.
5314 (verify_use): Likewise.
5315 (verify_phi_args): Likewise.
5316 (verify_flow_insensitive_alias_info): New function.
5317 (verify_flow_sensitive_alias_info): New function.
5318 (verify_alias_info): New function.
5319 (verify_ssa): Call verify_alias_info.
5320 Clear TREE_VISITED on all the SSA_NAMEs before scanning the
5321 program.
5322 Re-arrange to avoid printing too many error messages.
5323 * tree-ssanames.c (make_ssa_name): Clear
5324 SSA_NAME_IN_FREE_LIST.
5325 (release_ssa_name): Never release a default definition.
5326 (release_defs): New function.
5327 * tree.h: Declare it.
5328 * tree-ssa-dce.c (remove_dead_stmt): Call it.
5329
5330 2004-07-22 Diego Novillo <dnovillo@redhat.com>
5331
5332 * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
5333 If true, do a depth-first search. Do a breadht-first search,
5334 otherwise.
5335 (walk_use_def_chains): Add new argument IS_DFS.
5336 Update all users.
5337 * tree-flow.h (walk_use_def_chains): Update prototype.
5338
5339 2004-07-22 Hans-Peter Nilsson <hp@axis.com>
5340
5341 * config/cris/cris.md: Tweak formatting.
5342 (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
5343 (mover2side, moverside, movemside, movei, op3, andu): Replace
5344 live define_peephole:s with define_peephole2 near-equivalents.
5345 Delete the rest.
5346 ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all
5347 word-size modes.
5348 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
5349 Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
5350 "*mov_sidesi_mem" respectively.
5351
5352 2004-07-22 Paolo Bonzini <bonzini@gnu.org>
5353
5354 * tree-cfg.c (gimplify_val): Move from tree-complex.c.
5355 (gimplify_build1): Move from tree-complex.c do_unop.
5356 (gimplify_build2): Move from tree-complex.c do_binop.
5357 (gimplify_build3): New.
5358 * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
5359 Adjust throughout to call the functions above.
5360 * tree-flow.h: Declare the functions above.
5361 * tree-nested.c (gimplify_val): Rename to...
5362 (tsi_gimplify_val): ... this.
5363
5364 * Makefile.in (tree_complex.o): Update dependencies.
5365 (stor-layout.o): Depend on regs.h.
5366 * c-common.c (handle_vector_size_attribute): Update for
5367 vector types without corresponding vector modes.
5368 * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
5369 a corresponding vector mode is not available.
5370 * print-tree.c (print_node): Print nunits for vector types
5371 * regclass.c (have_regs_of_mode): New.
5372 (init_reg_sets_1): Initialize it and use it instead
5373 of allocatable_regs_of_mode.
5374 * regs.h (have_regs_of_mode): Declare it.
5375 * stor-layout.c (layout_type): Pick a mode for vector types.
5376 * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
5377 build_replicated_const, do_unop, do_binop, do_plus_minus,
5378 do_negate, expand_vector_piecewise, expand_vector_parallel,
5379 expand_vector_addition, expand_vector_operations_1,
5380 expand_vector_operations, tree_lower_operations,
5381 pass_lower_vector_ssa, pass_pre_expand): New.
5382 (expand_complex_operations, pass_lower_complex): Remove.
5383 * tree-optimize.c (init_tree_optimization_passes): Adjust
5384 pass ordering for changes in tree-complex.c.
5385 * tree-pass.h: Declare new passes.
5386 * tree.c (finish_vector_type): Remove.
5387 (make_vector_type): New.
5388 (build_vector_type_for_mode, build_vector_type): Rewritten.
5389 * tree.def (VECTOR_TYPE): Document where the number of
5390 subparts is stored.
5391 * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
5392 (make_vector): Remove declaration.
5393
5394 2004-07-21 Richard Henderson <rth@redhat.com>
5395
5396 * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
5397 TREE_THIS_VOLATILE, may_aliases, or optimization level.
5398 (remove_useless_vars): Dump debugging info.
5399 (expand_used_vars): Move ...
5400 * cfgexpand.c (expand_used_vars): ... here. Make static.
5401 * tree-flow-inline.h (set_is_used): New.
5402 (set_default_def): Use get_var_ann.
5403 * tree-flow.h: Update decls.
5404 * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
5405 (create_ssa_var_map): Use it.
5406 * tree-ssa.c (set_is_used): Remove.
5407
5408 2004-07-22 Ben Elliston <bje@au.ibm.com>
5409
5410 * gdbinit.in: Set a breakpoint on internal_error.
5411
5412 2004-07-21 Richard Henderson <rth@redhat.com>
5413
5414 * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
5415 to create a new basic block.
5416
5417 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
5418
5419 PR c/15052
5420 * c-decl.c (grokdeclarator): Only pedwarn for qualified void
5421 return type on function definitions. Move other warnings for
5422 qualified return type to -Wreturn-type. Do not condition any such
5423 warnings on -pedantic. Update comments.
5424 (start_function): Only copy function type from previous prototype
5425 declaration if return types are compatible.
5426 * c-typeck.c (function_types_compatible_p): Don't condition
5427 warning for incompatibility of volatile qualifiers on the return
5428 type on -pedantic. Update comment.
5429 * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
5430
5431 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
5432
5433 * c-typeck.c (set_init_index): Require designator to be of integer
5434 type.
5435
5436 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
5437
5438 PR c/11250
5439 * c-parse.in (init): Change to exprtype.
5440 (primary): Set original_code for STRING to STRING_CST.
5441 Call maybe_warn_string_init for compound literals.
5442 (initdcl, notype_initdcl): Call maybe_warn_string_init.
5443 (initval): Update.
5444 * c-tree.h (maybe_warn_string_init): New.
5445 (pop_init_level, process_init_element): Use struct c_expr.
5446 (struct c_expr): Update comment.
5447 * c-typeck.c (maybe_warn_string_init): New function.
5448 (digest_init): Call it. Additional parameter strict_string. All
5449 callers changed.
5450 (output_init_element): Likewise.
5451 (struct constructor_stack): Use struct c_expr for
5452 replacement_value.
5453 (really_start_incremental_init, push_init_level): Update.
5454 (pop_init_level): Update. Return struct c_expr.
5455 (process_init_level): Update. Take struct c_expr argument.
5456
5457 2004-07-21 David S. Miller <davem@nuts.davemloft.net>
5458
5459 * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
5460 commit.
5461
5462 2004-07-21 Eric Christopher <echristo@redhat.com>
5463
5464 * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
5465 removal.
5466 * c-decl.c (pop_scope): Ditto.
5467 * calls.c (expand_call): Remove call to current_nesting_level,
5468 update comment accordingly. Remove calls to expand_start_target_temps
5469 and expand_end_target_temps.
5470 * cfgexpand.c (construct_init_block): Remove call to
5471 expand_start_bindings_and_block.
5472 (construct_exit_block): Remove call to expand_end_bindings.
5473 * expr.c (safe_from_p): Remove BIND_EXPR handling.
5474 (expand_expr_real_1): Ditto. Fix formatting.
5475 (expand_vars): Delete.
5476 * stmt.c (POPSTACK): Remove block_stack.
5477 (stmt_status): Remove x_block_stack.
5478 (block_stack): Delete.
5479 (expand_start_bindings_and_block): Ditto.
5480 (expand_start_target_temps): Ditto.
5481 (expand_end_target_temps): Ditto.
5482 (current_nesting_level): Ditto.
5483 (warn_about_unused_variables): Ditto.
5484 (expand_end_bindings): Ditto.
5485 * tree.h: Remove declarations for above.
5486
5487 2004-07-21 Steven Bosscher <stevenb@suse.de>
5488
5489 * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
5490 * rtl.c (note_insn_name): Likewise.
5491 * print-rtl.c (print_rtx): Don't print it.
5492 * cfgrtl.h (can_delete_note_p): Don't handle it.
5493 (rtl_delete_block): Likewise.
5494 * passes.c (rest_of_handle_guess_branch_prob): Remove.
5495 (rest_of_compilation): Don't call it.
5496 * predict.c (process_note_predictions, process_note_prediction,
5497 note_prediction_to_br_prob): Remove.
5498 * basic-block.c (note_prediction_to_br_prob): Remove prototype.
5499 * stmt.c (return_prediction): Remove.
5500 (expand_value_return): Don't call it. Don't add prediction
5501 notes for return statements.
5502
5503 2004-07-21 Josef Zlomek <zlomekj@suse.cz>
5504
5505 * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
5506 once.
5507
5508 2004-07-21 Paolo Bonzini <bonzini@gnu.org>
5509
5510 * c-common.c (vector_types_convertible_p): Use vector types'
5511 TYPE_SIZE and TREE_TYPE instead of their mode.
5512 * convert.c (convert_to_integer): Likewise.
5513 (convert_to_vector): Likewise.
5514 * fold-const.c (fold_convert): Likewise.
5515 * varasm.c (output_constant): Likewise.
5516 * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
5517 Allow a VECTOR_TYPE initializer to be made of several vectors.
5518 For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
5519 of cleared and need_to_clear, and use fold_convert.
5520 * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
5521 integer vectors.
5522
5523 2004-07-20 Richard Henderson <rth@redhat.com>
5524
5525 * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
5526 (expand_gimple_basic_block): out from here. Renamed from expand_block.
5527
5528 2004-07-20 David S. Miller <davem@nuts.davemloft.net>
5529
5530 * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
5531 enormous cost if not TARGET_HARD_MUL.
5532
5533 2004-07-20 Andrew Pinski <apinski@apple.com>
5534
5535 PR target/16557
5536 * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
5537 (ASM_SPEC): here.
5538
5539 2004-07-21 Paul brook <paul@codesourcery.com>
5540
5541 * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
5542
5543 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5544
5545 * fold-const.c (operand_equal_p): Temporarily support NULL args.
5546 (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
5547 (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
5548
5549 2004-07-20 Zack Weinberg <zack@codesourcery.com>
5550
5551 * rtl.h (plus_constant): Delete.
5552 (plus_constant_wide): Rename to plus_constant.
5553 (plus_constant_for_output_wide): Delete vestigial prototype.
5554 (GEN_INT): Remove unnecessary cast.
5555 * tree.h (build_int_2, size_int_type): Delete.
5556 (build_int_2_wide): Rename to build_int_2.
5557 (size_int_wide): Rename to size_int_kind.
5558 (size_int_type_wide): Rename to size_int_type.
5559 (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
5560 Remove unnecessary cast.
5561 * tree.c (build_int_2_wide): Rename build_int_2; update comment.
5562 * explow.c (plus_constant_wide): Rename plus_constant; update comment.
5563 * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
5564 (size_int_type_wide): Rename size_int_type.
5565 (int_const_binop): Use size_int_type.
5566 * c-lex.c (interpret_integer): Use build_int_2.
5567 * final.c (split_double): Remove unnecessary casts.
5568 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
5569
5570 2004-07-20 Richard Henderson <rth@redhat.com>
5571
5572 * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
5573 (gimplify_compound_lval): Use is_gimple_tmp_reg.
5574 * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
5575 (is_gimple_tmp_reg): New.
5576 * tree-gimple.h (is_gimple_tmp_reg): Declare.
5577
5578 2004-07-20 Richard Henderson <rth@redhat.com>
5579
5580 * tree-pretty-print.c (dump_generic_node): Dump
5581 CALL_EXPR_HAS_RETURN_SLOT_ADDR.
5582
5583 2004-07-20 Frank Ch. Eigler <fche@redhat.com>
5584
5585 * tree-mudflap.c (mf_set_options_fndecl): New tree.
5586 (mudflap_init): Set it.
5587 (mudflap_register_call): Remove __mf_init call.
5588 (mudflap_finish_file): Emit call to __mf_init here. Emit a call to
5589 to pass "-ignore-reads" option to libmudflap if needed.
5590
5591 2004-07-20 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
5592
5593 PR c++/14607
5594 * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
5595 (MAKE_DECL_ONE_ONLY): Undefine.
5596 * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
5597 readonly_data, one_only_data_section, forget_section): New prototypes.
5598 * pa.c (pa_init_machine_status, som_text_section_asm_op): New
5599 functions.
5600 (pa_select_section): Add one-only (COMDAT) support.
5601 * pa.h (struct machine_function): Define.
5602 * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
5603 (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
5604 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
5605 ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
5606 ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
5607 (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
5608 (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
5609 (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
5610 ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
5611 for EXTRA_SECTION_FUNCTIONS.
5612 * doc/install.texi: Update binutils requirements.
5613
5614 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
5615
5616 * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
5617 VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
5618 VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
5619 size_t.
5620 (struct VEC): Use unsigned for num and alloc.
5621 * vec.c (struct vec_prefix): Likewise.
5622 (vec_o_reserve): Adjust.
5623
5624 * dbxout.c (dbxout_type): Fix printf format.
5625
5626 * tree.h (binfo_member): Remove.
5627 * tree.c (binfo_member): Remove.
5628
5629 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
5630
5631 * tree.h: Include vec.h
5632 (DEF_VEC_P(tree)): New type.
5633 (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
5634 (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
5635 (BINFO_LANG_SLOT): Remove.
5636 (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
5637 (struct tree_binfo): Turn base_binfos into a trailing
5638 VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
5639 (binfo_lang_slots): Remove.
5640 * tree.c (binfo_lang_slots): Remove.
5641 (make_tree_binfo_stat): Take a base binfo count, not a
5642 lang slot count. Adjust.
5643 * Makefile.in (TREE_H): Add vec.h
5644 * alias.c (record_component_aliases): Adjust BINFO access.
5645 * dbxout.c (dbxout_type): Likewise.
5646 * dwarf2out.c (gen_member_die): Likewise.
5647 * sdbout.c (sdbout_one_type): Likewise.
5648 * tree-dump.c (deque_and_dump): Likewise.
5649 * config/i386/i386.c (classify_argument,
5650 contains_128bit_aligned_vector_p): Likewise.
5651 * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
5652 * doc/c-tree.texi (Classes): Update BINFO documentation.
5653
5654 2004-07-20 Steven Bosscher <stevenb@suse.de>
5655
5656 * c-common.h (check_case_value): Remove prototype.
5657 (c_add_case_label): Adjust prototype.
5658 * c-common.c (check_case_value): Make static.
5659 (check_case_bounds): New function.
5660 (c_add_case_label): Use it. Take new argument orig_type.
5661 * c-typeck.c (struct c_switch): New orig_type field.
5662 (c_start_case): Set it.
5663 (do_case): Pass it to c_add_case_label.
5664 * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
5665 cases from here. Add the labels in reverse order.
5666 * stmt.c (struct case_node): Adjust comment. Remove balance field.
5667 (add_case_node): Return nothing, don't check for duplicate cases.
5668 Insert new case nodes in a list, not in an AVL tree.
5669 (expand_end_case_type): Don't turn a case tree into a case list.
5670 (case_tree2list): Remove.
5671 * tree.h (add_case_node): Adjust prototype.
5672
5673 2004-07-19 Paolo Bonzini <bonzini@gnu.org>
5674
5675 * genattr.c (struct range, struct function_unit,
5676 write_units, extend_range, init_range): Remove them.
5677 (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
5678 Output "#define INSN_SCHEDULING" here.
5679 * genattrtab.c (struct range, struct function_unit_op,
5680 struct function_unit, struct dimension, enum operator,
5681 operate_exp, expand_units, simplify_knowing,
5682 encode_units_mask, simplify_by_exploding,
5683 find_and_mark_used_attributes, unmark_used_attributes,
5684 add_values_to_cover, increment_current_value,
5685 test_for_current_value, simplify_with_current_value,
5686 simplify_with_current_value_aux, gen_unit,
5687 write_unit_name, write_function_unit_info,
5688 write_complex_function, write_toplevel_expr,
5689 find_single_value, extend_range): Remove.
5690 (write_attr_get): Do not handle common_av->value
5691 being an FFS.
5692 (struct attr_desc): Remove func_units_p and blockage_p.
5693 (write_attr_valueq): Do not handle them.
5694 (find_attr): Do not clear them.
5695 (make_internal_attr): Do not initialize them.
5696 (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
5697 * sched-vis.c (init_target_units, insn_print_units,
5698 init_block_visualization, print_block_visualization,
5699 visualize_scheduled_insns, visualize_no_unit,
5700 visualize_stall_cycles, visualize_alloc,
5701 visualize_free, target_units, get_visual_tbl_length,
5702 MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
5703 visual_tbl_line_length, visual_tbl, n_vis_no_unit,
5704 MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
5705 * haifa-sched.c (blockage_range, clear_units,
5706 schedule_unit, actual_hazard, potential_hazard,
5707 insn_unit, unit_last_insn, unit_tick,
5708 actual_hazard_this_instance, potential_hazard,
5709 schedule_unit, max_insn_queue_index_value): Remove.
5710 (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
5711 max_insn_queue_index.
5712 * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
5713 * doc/md.texi (Processor pipeline description): Remove
5714 references to old pipeline descriptions.
5715 (Automaton pipeline description): Merge with the above.
5716 (Old pipeline description, Comparison of the two descriptions):
5717 Remove.
5718
5719 * bt-load.c (migrate_btr_def): Remove references to
5720 use_pipeline_interface.
5721 * haifa-sched.c (insn_cost, schedule_insn,
5722 schedule_block, advance_one_cycle, sched_init,
5723 queue_to_ready, sched_finish): Likewise.
5724 * modulo-sched.c (sms_schedule, advance_one_cycle,
5725 ps_has_conflicts): Likewise.
5726 * sched-rgn.c (init_ready): Likewise.
5727 (debug_dependencies): Likewise, and remove an "if (1)".
5728 * target.h (use_dfa_pipeline_interface): Remove.
5729 * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5730 * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5731 * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5732 * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5733 * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5734 * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5735 * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5736 * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5737 * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5738 * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5739 * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5740 * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5741 * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5742 * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5743 * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5744 * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5745 * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5746 * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5747 * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5748
5749 2004-07-19 Roger Sayle <roger@eyesopen.com>
5750
5751 * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
5752
5753 2004-07-19 Jeff Law <law@redhat.com>
5754
5755 * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
5756 (get_eq_expr_value): Use it. Simplify slightly.
5757
5758 2004-07-19 Maciej W. Rozycki <macro@linux-mips.org>
5759
5760 * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
5761 (umulsidi3_32bit_r4000): Likewise.
5762
5763 2004-07-19 Nathan Sidwell <nathan@codesourcery.com>
5764
5765 * vec.h: Propagate location information properly.
5766 (VEC_T_iterate): Add result pointer parameter.
5767 (VEC_T_space): New.
5768 (VEC_T_reserve): Use it.
5769
5770 2004-07-19 Daniel Jacobowitz <dan@debian.org>
5771
5772 * Makefile.in (c-format.o): Depend on c-format.h.
5773 * c-format.h: New file.
5774 (struct format_char_info): Add CHAIN member.
5775 * c-format.c: Move some types and constants to c-format.h.
5776 (format_type_error): Set to -1.
5777 (struct function_format_info): Use an int for format_type.
5778 (decode_format_type): Return an int. Return format_type_error
5779 on error.
5780 (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
5781 (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
5782 (scan_char_table, time_char_table, monetary_char_table): Initialize
5783 CHAIN to NULL.
5784 (n_format_types): New variable.
5785 (check_format_info_main): Handle CHAIN in format_char_info.
5786 (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
5787 TARGET_N_FORMAT_TYPES.
5788 * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
5789 (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
5790 * config/sol2-c.c: New file.
5791 * config/t-sol2: New file.
5792 * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
5793 * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
5794 TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
5795
5796 * doc/extend.texi (Target Format Checks): New section.
5797 (Function Attributes): Mention it.
5798 * doc/invoke.texi: Mention target format checks.
5799 * doc/sourcebuild.texi: Mention target format checks.
5800 * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
5801 TARGET_FORMAT_TYPES.
5802
5803 2004-07-19 Andreas Krebbel <krebbel1@de.ibm.com>
5804
5805 * config/s390/s390-protos.h (s390_return_address_offset): Prototype
5806 added.
5807 * config/s390/s390.c (regclass_map initializer): Register 35 added to
5808 ADDR_REGS.
5809 (load_multiple_operation, store_multiple_operation): Removed
5810 pointless sanity check.
5811 (s390_decompose_address): Added check for return_address_pointer_rtx.
5812 (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
5813 (s390_return_address_offset): New function.
5814 * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
5815 (FRAME_REGNO_P): Added check for register 35.
5816 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
5817 REG_ALLOC_ORDER): Appended entry for register 35.
5818 (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
5819 (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
5820 (RETURN_ADDRESS_POINTER_REGNUM): New macro.
5821 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
5822 is eliminable using stack pointer or hard frame pointer.
5823 (REGISTER_NAMES): Added name for register 35.
5824 * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
5825 pointless sanity check.
5826
5827 2004-07-19 Roger Sayle <roger@eyesopen.com>
5828
5829 * fold-const.c (tree_expr_nonzero_p): Add function prototype.
5830 (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
5831 fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
5832 (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
5833 of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
5834 (fold_relational_const): Tidy up handling of floating point
5835 comparisons by calling real_compare. Remove tree_expr_nonzero_p
5836 transformation; fold_relational_const assumes constant operands.
5837
5838 2004-07-19 Gabriel Dos Reis <gdr@integrable-solution.net>
5839
5840 * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
5841 directory.
5842
5843 2004-07-19 Joseph S. Myers <jsm@polyomino.org.uk>
5844
5845 * c-tree.h (struct c_expr): Define.
5846 (C_SET_EXP_ORIGINAL_CODE): Remove.
5847 (parser_build_binary_op, build_compound_expr): Update prototypes.
5848 * c-parse.in (%union): Add exprtype.
5849 (FUNC_NAME): Mark as ttype.
5850 (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
5851 exprtype.
5852 (expr): Update. Define directly in terms of expr_no_commas
5853 instead of using nonnull_exprlist.
5854 (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
5855 offsetof_member_designator, typespec_nonreserved_nonattr, init,
5856 initval, designator, component_declarator,
5857 component_notype_declarator, enumerator, array_declarator,
5858 condition, exexpr, switch_statement, stmt_nocomp, stmt,
5859 nonnull_asm_operands, ivar_declarator, receiver): Update. Don't
5860 set C_EXP_ORIGINAL_CODE. Use TREE_NO_WARNING for assignments
5861 where appropriate.
5862 * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
5863 * c-common.c (c_common_truthvalue_conversion): Don't check
5864 C_EXP_ORIGINAL_CODE.
5865 * c-typeck.c (parser_build_binary_op): Use c_expr structures.
5866 Don't use C_EXP_ORIGINAL_CODE.
5867 (default_conversion, default_function_array_conversion): Don't use
5868 C_EXP_ORIGINAL_CODE. Preserve TREE_NO_WARNING.
5869 (internal_build_compound_expr): Merge into build_compound_expr.
5870 (build_compound_expr): Take two operands instead of a TREE_LIST.
5871 * objc/objc-act.c (get_super_receiver): Update calls to
5872 build_compound_expr.
5873
5874 2004-07-18 Paolo Bonzini <bonzini@gnu.org>
5875
5876 * config/sh/sh.c (sh_use_dfa_interface): Remove.
5877 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
5878 hook_int_void_1.
5879 * config/sh/sh.md: Extract pipeline descriptions
5880 into separate files.
5881 * config/sh/sh1.md: New file, extracted from sh.md.
5882 * config/sh/sh4.md: New file, extracted from sh.md.
5883 * config/sh/shmedia.md: New file, extracted from sh.md
5884 and rewritten using new-style pipeline description.
5885
5886 2004-07-18 Zack Weinberg <zack@codesourcery.com>
5887
5888 * config/pa/pa.md: Delete the two remaining define_peephole
5889 patterns.
5890
5891 2004-07-18 Steven Bosscher <stevenb@suse.de>
5892 Joseph S. Myers <jsm@polyomino.org.uk>
5893
5894 * c-common.c (c_common_truthvalue_conversion): Don't warn if
5895 TREE_NO_WARNING is set.
5896
5897 2004-07-18 Roger Sayle <roger@eyesopen.com>
5898
5899 * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
5900 simplify_builtin_strncmp): Delete.
5901 (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
5902 Change argument to accept an arglist instead of an "exp". Assume
5903 that the return type is always integer_type_node. Copy missing
5904 transformations from their now obsolete simplify_builtin_*
5905 equivalents.
5906 (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
5907 fold_builtin_strcmp and fold_builtin_strncmp.
5908 (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
5909 and fold_builtin_strncmp instead of simplify_builtin_memcmp,
5910 simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
5911
5912 2004-07-18 Daniel Jacobowitz <dan@debian.org>
5913
5914 * Makefile.in (tree-alias-common.o): Update dependencies.
5915
5916 2004-07-17 Sebastian Pop <pop@cri.ensmp.fr>
5917
5918 * cfgloop.c (flow_loop_nested_p): Fix comment.
5919
5920 2004-07-17 Jason Merrill <jason@redhat.com>
5921
5922 PR c++/16115
5923 * stor-layout.c (relayout_decl): New fn.
5924 * tree.h: Declare it.
5925 (DECL_BY_REFERENCE): New macro.
5926
5927 2004-07-17 Eric Botcazou <ebotcazou@act-europe.fr>
5928
5929 * libgcc2.c (__enable_execute_stack): New symbol.
5930 * libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4
5931 and declare __enable_execute_stack.
5932 * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
5933 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
5934 * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
5935 ENABLE_EXECUTE_STACK.
5936 * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
5937 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
5938 * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
5939 ENABLE_EXECUTE_STACK.
5940 * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5941 * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
5942 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
5943 * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
5944 ENABLE_EXECUTE_STACK.
5945 * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5946 * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5947 * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5948 * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5949 * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
5950 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
5951 (sparc64_initialize_trampoline): Likewise.
5952 * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
5953
5954 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
5955
5956 * langhooks.h (builtin_function): New langhook.
5957 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
5958 (LANG_HOOKS_INITIALIZER): Update.
5959 * tree.h (builtin_function): Remove.
5960 * doc/tm.texi: Update.
5961 * c-tree.h (builtin_function): Declare.
5962 * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
5963 config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
5964 config/ia64/ia64.c, config/iq2000/iq2000.c,
5965 config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
5966 config/stormy16/stormy16.c: All callers of builtin_function
5967 changed.
5968
5969 2004-07-17 Andrew Pinski <pinskia@physics.uc.edu>
5970
5971 PR target/16556
5972 * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5973 Remove white space after the backslash.
5974
5975 2004-07-17 Eric Botcazou <ebotcazou@libertysurf.fr>
5976
5977 PR rtl-optimization/16294
5978 * resource.c (return_insn_p): New predicate.
5979 (mark_target_live_regs): Use it. Special-case return insns.
5980 (init_resource_info): Use it. Don't scan the epilogue past
5981 a return.
5982
5983 2004-07-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5984
5985 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
5986 destroy dominance information.
5987 * passes.c (rest_of_handle_loop2): Free dominance information.
5988 * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
5989 jump threading.
5990 (thread_jumps): Update dominance information and remove unreachable
5991 blocks.
5992 * tree-ssa-phiopt.c (replace_phi_with_stmt): Update dominance
5993 information and remove the unreachable block.
5994
5995 2004-07-17 Graham Stott <graham.stott@btinternet.com>
5996
5997 * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
5998
5999 2004-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
6000
6001 * doc/sourcebuild.texi: Remove libf2c entry.
6002
6003 2004-07-17 Paolo Bonzini <bonzini@gnu.org>
6004
6005 * config/i386/i386.md (movv16qi_internal): Fix typo.
6006
6007 2004-07-17 Steven Bosscher <stevenb@suse.de>
6008
6009 * final.c (final_scan_insn): Fix broken commit from previous
6010 patch.
6011
6012 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
6013
6014 * c-typeck.c (parser_build_binary_op): Condition warnings for
6015 X<=Y<=Z on -Wparentheses instead of -Wextra.
6016 * doc/invoke.texi: Update. Document that most of -Wparentheses is
6017 supported for C only.
6018
6019 2004-07-17 Steven Bosscher <stevenb@suse.de>
6020
6021 * cfgcleanup.c (try_simplify_condjump): Don't remove line
6022 notes to avoid unreachable code warnings.
6023 * toplev.c (backend_init): Don't emit line notes for
6024 unreachable code warnings.
6025
6026 * combine.c (distribute_notes): Don't distribute a
6027 REG_VTABLE_REF note.
6028 * final.c (final_scan_insn): Don't handle it.
6029 * rtl.c (reg_note_name): Remove it.
6030 * rtl.h (enum reg_node): Dito.
6031
6032 * emit-rtl.c (force_line_numbers, restore_line_number_status):
6033 Remove.
6034 * rtl.h (force_line_numbers, restore_line_number_status):
6035 Remove prototypes.
6036
6037 * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
6038 * tree-eh.c (using_eh_for_cleanups_p): ...here. Make static.
6039 (using_eh_for_cleanups): Also moved here.
6040
6041 * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
6042 <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY. Update calls
6043 to expand_start_case and add_case_node.
6044 * stmt.c (struct nesting): Cleanup unused fields condition_code,
6045 last_unconditional_cleanup, nominal_type, printname, and
6046 line_number_status.
6047 (struct fixup_goto): Remove.
6048 (struct stmt_status): Remove x_goto_fixup_chain field.
6049 (goto_fixup_chain): Remove.
6050 (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
6051 pushcase, pushcase_range): Remove.
6052 (expand_start_bindings_and_block): Don't set unused fields in
6053 the nesting stack.
6054 (expand_start_case, add_case_node): Cleanup unused formal arguments.
6055 (expand_end_case_type): Don't simplify the case-list. Use emit_jump
6056 instead of emit_jump_if_reachable.
6057 (emit_case_nodes): Likewise.
6058 * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
6059 static.
6060 (update_eh_label): Work around left-over exception handing regions.
6061 * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
6062 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
6063 (pass_cleanup_cfg_post_optimizing): New pass.
6064 (init_tree_optimization_passes): Run the new pass after all
6065 optimizations.
6066 * tree.h (pushcase, pushcase_range): Remove prototypes.
6067 (expand_start_case, add_case_node): Update prototypes.
6068
6069 2004-07-16 Krister Walfridsson <cato@df.lth.se>
6070
6071 * tree-inline.c (estimate_num_insns_1): Correct increase of count.
6072
6073 2004-07-16 Richard Henderson <rth@redhat.com>
6074
6075 * builtins.c (std_expand_builtin_va_arg): Remove.
6076 (expand_builtin_va_arg): Remove.
6077 * expr.h: Don't declare them.
6078 * gimplify.c (mark_decls_volatile_r): Remove.
6079 (copy_if_shared_r): Don't call it.
6080 * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
6081 * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
6082 * gimple-low.c (lower_stmt): Likewise.
6083 * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
6084 * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
6085 * tree-ssa-operands.c (get_expr_operands): Likewise.
6086 * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
6087 EXPAND_BUILTIN_VA_ARG.
6088 * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
6089 * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
6090 config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
6091 config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
6092
6093 2004-07-16 Daniel Berlin <dberlin@dberlin.org>
6094
6095 * tree-ssa-pre.c (insert_aux): Break out if we hit
6096 a critical edge.
6097
6098 2004-07-16 Richard Henderson <rth@redhat.com>
6099
6100 * basic-block.h (remove_fake_exit_edges): Declare.
6101 * cfganal.c (remove_fake_predecessors): Rename from
6102 remove_fake_successors; iterate over predecessors.
6103 (remove_fake_exit_edges): New.
6104 * cfgcleanup.c (try_optimize_cfg): Use it.
6105 * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
6106 * predict.c (estimate_probability): Likewise.
6107 (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
6108 * tree-cfg.c (make_edges): Likewise.
6109 * tree-ssa-pre.c (fini_pre): Likewise.
6110 * profile.c (instrument_edges): Don't remove_fake_edges.
6111 (branch_prob): Do it earlier here.
6112
6113 2004-07-16 Richard Henderson <rth@redhat.com>
6114
6115 * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
6116 switchification wrt CONSTRUCTOR. Document the reason.
6117
6118 2004-07-16 Frank Ch. Eigler <fche@redhat.com>
6119
6120 * tree-mudflap.c (mf_file_function_line_tree): Correct typo
6121 that prevented descriptive __mf_check source location strings.
6122
6123 2004-07-16 Richard Henderson <rth@redhat.com>
6124
6125 * tree-def (WITH_SIZE_EXPR): New.
6126 * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
6127 * expr.c (expand_expr_real_1): Likewise.
6128 * gimplify.c (maybe_with_size_expr): New.
6129 (gimplify_arg, gimplify_modify_expr): Use it.
6130 (gimplify_modify_expr_to_memcpy): Take size parameter.
6131 (gimplify_modify_expr_to_memset): Likewise.
6132 (gimplify_expr): Handle WITH_SIZE_EXPR.
6133 * tree-alias-common.c (find_func_aliases): Likewise.
6134 * tree-eh.c (tree_could_trap_p): Likewise.
6135 (tree_could_throw_p): Likewise.
6136 * tree-gimple.c (is_gimple_lvalue): Likewise.
6137 (get_call_expr_in): Likewise.
6138 * tree-inline.c (estimate_num_insns_1): Likewise.
6139 (expand_calls_inline): Likewise.
6140 * tree-nested.c (convert_call_expr): Likewise.
6141 * tree-pretty-print.c (dump_generic_node): Likewise.
6142 * tree-sra.c (sra_walk_expr): Likewise.
6143 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
6144 * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
6145 * tree-ssa-operands.c (get_expr_operands): Likewise.
6146 * tree-tailcall.c (find_tail_calls): Likewise.
6147
6148 * calls.c (expand_call): Reset old_stack_allocated after
6149 calling emit_stack_restore.
6150
6151 2004-07-16 Richard Henderson <rth@redhat.com>
6152
6153 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
6154 lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
6155 * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
6156 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
6157 copy_res_decl_for_inlining.
6158
6159 * tree-inline.c (declare_return_variable): New modify_dest argument.
6160 Use it as the return value, when possible or manditory. Handle
6161 TREE_ADDRESSABLE types.
6162 (expand_call_inline): Extract MODIFY_EXPR lhs for call. Simplify
6163 replacement of CALL_EXPR.
6164
6165 2004-07-16 Richard Henderson <rth@redhat.com>
6166
6167 * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
6168 * gimple-low.c (expand_var_p): Don't check it.
6169 * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
6170 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
6171 * tree-ssa-operands.c (add_stmt_operand): Likewise.
6172 * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
6173 (find_referenced_vars): Don't call them.
6174 * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
6175
6176 2004-07-16 Richard Henderson <rth@redhat.com>
6177
6178 * function.c (pass_by_reference): True for all variable sized types.
6179
6180 2004-07-16 Sebastian Pop <pop@cri.ensmp.fr>
6181
6182 * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
6183 * tree-pretty-print.c: Include tree-chrec.h.
6184 (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
6185 and POLYNOMIAL_CHREC nodes.
6186
6187 2004-07-16 Steve Ellcey <sje@cup.hp.com>
6188
6189 * builtins.c (expand_builtin_stpcpy): Do not create temporary
6190 reg with VOIDmode.
6191
6192 2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
6193
6194 * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
6195
6196 2004-07-16 Andreas Krebbel <krebbel1@de.ibm.com>
6197
6198 * config/s390/s390.md: Changed every occurence of BASE_REGISTER
6199 to BASE_REGNUM.
6200 * config/s390/s390.c: Likewise.
6201 * config/s390/s390.h: Likewise.
6202
6203 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6204
6205 * config/mips/mips.md (addsi3, adddi3): Remove special handling
6206 of $sp adds. Remove REGNO checks from mips16 patterns.
6207
6208 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6209
6210 * config/mips/mips.md: Delete outdated comment.
6211
6212 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6213
6214 * config/mips/mips.c (get_float_compare_codes): Delete.
6215 (mips_emit_compare): New function, mostly extracted from
6216 get_float_compare_codes and gen_conditional_branch.
6217 (gen_conditional_branch, gen_conditional_move): Use it.
6218
6219 2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
6220
6221 * genautomata.c (add_vect): Speedup by using integers as
6222 bit-vectors for walking through the comb_vect and finding
6223 a match.
6224
6225 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6226
6227 * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
6228 operand is an uns_arith_operand; use subtraction otherwise.
6229 * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
6230 not just arith_operands.
6231
6232 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6233
6234 * config/mips/mips-protos.h (gen_int_relational): Delete.
6235 (mips_emit_scc): Declare.
6236 * config/mips/mips.c (internal_test): Delete.
6237 (sle_operand, sleu_operand): New functions.
6238 (map_test_to_internal_test, gen_int_relational): Delete.
6239 (mips_emit_binary, mips_relational_operand_ok_p)
6240 (mips_emit_int_relational, mips_zero_if_equal)
6241 (mips_emit_scc): New functions.
6242 (gen_conditional_branch): Rework to use mips_emit_int_relational.
6243 * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
6244 sleu_operand.
6245 * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
6246 (sltu, sleu): Use mips_emit_scc.
6247 (*sge_[sd]i, *sgeu_[sd]i): New patterns.
6248 (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
6249 (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
6250
6251 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6252
6253 * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
6254
6255 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6256
6257 * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
6258 (*sne_[sd]i): Likewise sne_[sd]i_zero.
6259 (*sgt_[sd]i): ...and sgt_[sd]i.
6260 (*slt_[sd]i): ...and slt_[sd]i.
6261 (*sgtu_[sd]i): ...and sgtu_[sd]i.
6262 (*sltu_[sd]i): ...and sltu_[sd]i.
6263 (*sleu_[sd]i): ...and sleu_[sd]i_const.
6264 Name previously unnamed mips16 patterns. Formatting fixes.
6265
6266 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6267
6268 * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
6269 (branch_type): Delete.
6270 (gen_conditional_branch, gen_conditional_move)
6271 (mips_gen_conditional_trap): Update after name change. Get the
6272 comparison mode from cmp_operands[0].
6273 * config/mips/mips.h (cmp_type, branch_type): Delete.
6274 (cmp_operands): Renamed from branch_cmp.
6275 * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
6276 name change. Don't set branch_type.
6277 (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
6278 mode class of cmp_operands[0] rather than branch_type. Update after
6279 name change.
6280
6281 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6282
6283 * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
6284 of 0...255 to 0 when inside a SET.
6285
6286 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6287
6288 * config/mips/mips.md: Remove mips16 define_peepholes.
6289
6290 2004-07-16 Daniel Berlin <dberlin@dberlin.org>
6291
6292 * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
6293 (fini_pre): Remove fake edges.
6294
6295 2004-07-15 Richard Henderson <rth@redhat.com>
6296
6297 * tree-ssa-operands.c (get_expr_operands): Use a switch. Split out...
6298 (get_indirect_ref_operands, get_call_expr_operands): ... these.
6299
6300 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
6301
6302 * vec.h (VEC_address): New function.
6303
6304 2004-07-14 Jason Merrill <jason@redhat.com>
6305
6306 PR middle-end/15885
6307 * gimplify.c (gimplify_arg): New fn, split out from...
6308 (gimplify_call_expr): Here. Special-case BUILT_IN_VA_START.
6309
6310 2004-07-15 Roman Zippel <zippel@linux-m68k.org>
6311
6312 * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
6313 generate code which is generated by pushqi1 now
6314 * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
6315
6316 2004-07-15 Roman Zippel <zippel@linux-m68k.org>
6317
6318 * combine.c (simplify_set): match the mode of the constant 0 with
6319 the tested operand to match the compare behaviour and the
6320 simplify_relational_operation() expectation.
6321
6322 2004-07-15 Aldy Hernandez <aldyh@redhat.com>
6323
6324 * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
6325 ("bordered"): Same.
6326
6327 2004-07-15 Aldy Hernandez <aldyh@redhat.com>
6328
6329 * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
6330 unconditionally.
6331 * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
6332
6333 2004-07-15 Richard Sandiford <rsandifo@redhat.com>
6334
6335 * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
6336 calls in mips16 code.
6337
6338 2004-07-15 Richard Sandiford <rsandifo@redhat.com>
6339
6340 * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
6341 the destination of the li as well as for the neg.
6342
6343 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
6344
6345 g++/15861
6346 * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
6347 * cgraph.h: Update declaration.
6348 * c-decl.c (build_cdtor): Update call with default priority.
6349 * coverage.c (create_coverage): Ditto.
6350 * tree-mudflap.c (mf_init_fndecl): New tree.
6351 (mudflap_init): Set it.
6352 (mudflap_register_call): Arrange to call __mf_init before the first
6353 __mf_register call.
6354 (mudflap_finish_file): Mark the mudflap static initializer as extra
6355 high priority, to beat all C++ static constructors.
6356
6357 2004-07-15 Jeff Law <law@redhat.com>
6358
6359 * loop.c (check_insn_for_givs): Restore check for code labels that was
6360 accidentally deleted by a recent checkin.
6361
6362 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
6363
6364 * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
6365 (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
6366
6367 2004-07-14 Richard Henderson <rth@redhat.com>
6368
6369 * print-tree.c (print_node): Fix casts last change.
6370
6371 2004-07-15 Paul Brook <paul@codesourcery.com>
6372
6373 * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
6374 to TARGET_UNWIND_INFO.
6375 * except.c (output_function_exception_table): Ditto.
6376 * except.h: Ditto.
6377 * opts.c (decode_options): Ditto.
6378 * passes.c (rest_of_handle_final): Ditto.
6379 * final.c (final_start_function): Ditto.
6380 (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
6381 target hook.
6382 * targhooks.h (default_unwind_emit): Declare.
6383 * targhooks.c (default_unwind_emit): New function.
6384 * target-def.h: Define and use TARGET_UNWIND_EMIT.
6385 * target.h (struct gcc_target): Add unwind_emit.
6386 * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
6387 * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
6388 Remove IA64_UNWIND_EMIT.
6389 * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
6390
6391 2004-07-14 Richard Henderson <rth@redhat.com>
6392
6393 * print-tree.c (print_node): Handle SSA_NAME.
6394
6395 2004-07-14 James E Wilson <wilson@specifixinc.com>
6396
6397 PR target/16325
6398 * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
6399 and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
6400
6401 2004-07-15 Jakub Jelinek <jakub@redhat.com>
6402
6403 * expr.c (expand_assignment): Reenable bitfield += optimizations.
6404 Use alias set 0 for memory, do proper mode calculations and adjust
6405 address for memories.
6406
6407 2004-07-14 Per Bothner <per@bothner.com>
6408
6409 * input.h: If USE_MAPPED_LOCATION, define separate expanded_location
6410 structure with extra column field.
6411 * tree.c (expand_location): Also fill in column field.
6412 * gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype
6413 gets confused by the two conditionally-compiled definitions.
6414
6415 2004-07-14 Eric Christopher <echristo@redhat.com>
6416
6417 * calls.c (expand_call): Fix typo in comment.
6418
6419 2004-07-14 Steve Ellcey <sje@cup.hp.com>
6420
6421 * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
6422 comparision of TFmode.
6423
6424 2004-07-14 Richard Henderson <rth@redhat.com>
6425
6426 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
6427 (alpha_gimplify_va_arg): ... handling here. Use pass_by_reference.
6428 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
6429 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
6430 * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
6431 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
6432 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
6433 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
6434 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
6435
6436 2004-07-14 Mike Stump <mrs@apple.com>
6437
6438 * config/darwin.h (WINT_TYPE): Define to be int to match
6439 system header files.
6440
6441 2004-07-14 Bob Wilson <bob.wilson@acm.org>
6442
6443 * config/xtensa/xtensa.c (function_arg_advance): Check for args
6444 that must be passed in the stack.
6445 (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
6446 arguments if the size is not a constant.
6447
6448 2004-07-14 Per Bothner <per@bothner.com>
6449
6450 * c-typeck.c (emit_side_effect_warnings): Use EXPR_HAS_LOCATION
6451 instead of EXPR_LOCUS in a boolean context, which is always true
6452 if --enable-mapped-location.
6453 * stmt.c (warn_if_unused_value): Likewise. Also use EXPR_LOCATION.
6454
6455 2004-07-14 Richard Henderson <rth@redhat.com>
6456
6457 * dominance.c (struct dom_info): Add fake_exit_edge.
6458 (init_dom_info): Allocate it.
6459 (free_dom_info): Free it.
6460 (calc_dfs_tree): Set it. Handle noreturn and infinite loops
6461 in two passes.
6462 (calc_idoms): Honor fake_exit_edge.
6463
6464 2004-07-13 Jason Merrill <jason@redhat.com>
6465
6466 * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
6467 (rhs_test_for): New fn.
6468 (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
6469 * tree-gimple.h: Declare them.
6470 * gimplify.c (gimplify_modify_expr): Use the new fns.
6471
6472 2004-07-14 Richard Henderson <rth@redhat.com>
6473
6474 * config/arm/arm-protos.h (arm_va_arg): Remove.
6475 * config/arm/arm.c (arm_va_arg): Remove.
6476 (arm_init_expanders): Fix alignment of arg_pointer_rtx.
6477 * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
6478
6479 2004-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6480
6481 * pa.c (fix_range): New function to mark a range(s) of registers as
6482 fixed registers.
6483 (override_options): Call fix_range if the -mfixed-range option string
6484 is not empty.
6485 * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
6486 * doc/invoke.texi (-mfixed-range): Document new option.
6487
6488 2004-07-14 David Edelsohn <edelsohn@gnu.org>
6489
6490 * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
6491 for TARGET_64BIT.
6492 (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
6493
6494 2004-07-14 Roger Sayle <roger@eyesopen.com>
6495
6496 * expmed.c (expand_sdiv_pow2): New function to expand signed division
6497 by a positive power of two, split out from expand_divmod. Provide
6498 an alternate implementation when shifts are expensive. Lower the
6499 threshold for using a branchless implementation to BRANCH_COST >= 2.
6500 (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
6501
6502 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
6503
6504 * tree-dfa.c (make_rename_temp): *Really* work just
6505 like create_tmp_var if called while outside SSA form.
6506
6507 2004-07-14 Ulrich Weigand <uweigand@de.ibm.com>
6508
6509 * config/s390/s390.md ("udivsi3"): Ensure trap is generated
6510 for division by zero.
6511 ("umodsi3"): Likewise.
6512
6513 2004-07-14 Richard Sandiford <rsandifo@redhat.com>
6514
6515 * config/mips/mips.c (mips_output_move): When generating mips16 code,
6516 force loads of negative constants to be split.
6517 * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
6518 Generalize SImode li/neg splitter to cope with other modes.
6519
6520 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
6521
6522 * expmed.c: Remove more references to QUEUED in the comments.
6523 * expr.c: Likewise.
6524
6525 2004-07-14 Richard Sandiford <rsandifo@redhat.com>
6526
6527 Revert:
6528 2004-07-13 Richard Henderson <rth@redhat.com>
6529 * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
6530 correctly.
6531
6532 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
6533
6534 * tree-dfa.c (make_rename_temp): Work just like
6535 create_tmp_var if called while outside SSA form.
6536
6537 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
6538
6539 * expr.c (enqueue_insn, finish_expr_for_function,
6540 protect_from_queue, queued_subexp_p, mark_queue,
6541 emit_insns_enqueued_after_mark, emit_queue,
6542 expand_increment): Remove.
6543 (store_constructor): Expand increment as an assignment.
6544 (expand_expr_real_1 <case PREINCREMENT_EXPR,
6545 case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
6546 case POSTDECREMENT_EXPR>): Abort.
6547 * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
6548 QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
6549 protect_from_queue, emit_queue, queued_subexp_p): Remove.
6550 * function.h (pending_chain, x_pending_chain): Remove.
6551 * rtl.def (QUEUED): Remove.
6552
6553 * emit-rtl.c (copy_insn_1, copy_most_rtx,
6554 set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
6555 * genattrtab.c (attr_copy_rtx, clear_struct_flag,
6556 encode_units_mask): Likewise.
6557 * local-alloc.c (equiv_init_varies_p): Likewise.
6558 * rtl.c (copy_rtx): Likewise.
6559 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
6560 * simplify-rtx.c (simplify_gen_subreg): Likewise.
6561 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
6562
6563 * builtins.c (expand_builtin, expand_builtin_apply,
6564 expand_builtin_mathfn, expand_builtin_mathfn_2,
6565 expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
6566 Remove calls to emit_queue and protect_from_queue.
6567 * calls.c (expand_call, precompute_arguments,
6568 precompute_register_parameters, rtx_for_function_call,
6569 store_one_arg): Likewise.
6570 * dojump.c (do_compare_and_jump, do_jump): Likewise.
6571 * explow.c (memory_address): Likewise.
6572 * expmed.c (clear_by_pieces_1, clear_storage,
6573 clear_storage_via_libcall, emit_group_load,
6574 emit_group_store, emit_store_flag,
6575 expand_expr_real_1, store_by_pieces,
6576 store_constructor, store_expr, try_casesi,
6577 try_tablejump): Likewise.
6578 * function.c (expand_pending_sizes): Likewise.
6579 * optabs.c (emit_cmp_and_jump_insns,
6580 emit_conditional_add, emit_conditional_move,
6581 expand_fix, expand_float, prepare_cmp_insn): Likewise.
6582 * stmt.c (emit_case_bit_tests,
6583 expand_asm_expr, expand_computed_goto,
6584 expand_decl_init, expand_end_case_type,
6585 expand_end_stmt_expr, expand_expr_stmt_value,
6586 expand_return, expand_start_case,
6587 optimize_tail_recursion): Likewise.
6588 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
6589 * config/s390/s390.c (s390_expand_cmpmem): Likewise.
6590
6591 2004-07-14 Ben Elliston <bje@au.ibm.com>
6592
6593 * vec.h: Comment fix.
6594
6595 2004-07-13 Richard Henderson <rth@redhat.com>
6596
6597 * target.h (struct gcc_target): Add calls.pass_by_reference.
6598 * target-def.h (TARGET_PASS_BY_REFERENCE): New.
6599 * function.c (pass_by_reference): Use the hook.
6600 * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
6601 * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
6602 (hook_pass_by_reference_must_pass_in_stack): New.
6603 * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
6604 (alpha_pass_by_reference): New.
6605 (TARGET_PASS_BY_REFERENCE): New.
6606 * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6607 * config/arc/arc.c (arc_pass_by_reference): New.
6608 (TARGET_PASS_BY_REFERENCE): New.
6609 * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6610 (FUNCTION_ARG_CALLEE_COPIES): True.
6611 * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
6612 * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
6613 (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
6614 * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6615 * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6616 * config/cris/cris.c (cris_pass_by_reference): New.
6617 (TARGET_PASS_BY_REFERENCE): New.
6618 * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
6619 (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
6620 (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6621 * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
6622 * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6623 * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
6624 * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
6625 (frv_function_arg_pass_by_reference): Remove.
6626 * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6627 * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
6628 * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
6629 (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
6630 * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6631 * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
6632 * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
6633 (ia64_pass_by_reference): Rename from
6634 ia64_function_arg_pass_by_reference.
6635 * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6636 * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6637 * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
6638 * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
6639 (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
6640 * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6641 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
6642 * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
6643 * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
6644 (m32r_pass_by_reference): Adjust prototype. Make static.
6645 Handle mode sizes correctly.
6646 * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6647 * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
6648 (m68hc11_function_arg_pass_by_reference): Remove.
6649 * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6650 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
6651 * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
6652 * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6653 * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
6654 * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
6655 (mips_va_arg): Use pass_by_reference.
6656 (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
6657 Handle mode sizes correctly.
6658 * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6659 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
6660 * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
6661 * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
6662 (mmix_pass_by_reference): Rename from
6663 mmix_function_arg_pass_by_reference.
6664 * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6665 (FUNCTION_ARG_CALLEE_COPIES): True.
6666 * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
6667 (mn10300_pass_by_reference): New.
6668 * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6669 (FUNCTION_ARG_CALLEE_COPIES): True.
6670 * config/pa/pa.c (pa_pass_by_reference): New.
6671 (TARGET_PASS_BY_REFERENCE): New.
6672 * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6673 (FUNCTION_ARG_CALLEE_COPIES): True.
6674 * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
6675 * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
6676 (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
6677 * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6678 * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
6679 * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
6680 (s390_pass_by_reference): Rename from
6681 s390_function_arg_pass_by_reference.
6682 (s390_function_arg_advance): Don't query pass-by-ref.
6683 (s390_function_arg): Likewise.
6684 (s390_gimplify_va_arg): Use pass_by_reference.
6685 (s390_call_saved_register_used): Likewise.
6686 * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6687 * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
6688 (shcompact_byref, sh_pass_by_reference): New.
6689 * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6690 (SHCOMPACT_BYREF): Remove.
6691 * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
6692 * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
6693 (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
6694 (sparc_gimplify_va_arg): Use pass_by_reference.
6695 * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6696 * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6697 * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
6698 (v850_pass_by_reference): New.
6699 * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6700 (FUNCTION_ARG_CALLEE_COPIES): True.
6701 * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
6702 FUNCTION_ARG_PASS_BY_REFERENCE docs.
6703
6704 2004-07-14 Richard Henderson <rth@redhat.com>
6705 Richard Sandiford <rsandifo@redhat.com>
6706
6707 * config/mips/mips-protos.h (mips_va_arg): Delete.
6708 * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
6709 * config/mips/mips.c: Include tree-gimple.h.
6710 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
6711 (mips_arg_info): Remove special handling of must_pass_in_stck args.
6712 (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
6713 (function_arg_pass_by_reference): Return true if must_pass_in_stack.
6714
6715 2004-07-13 Bob Wilson <bob.wilson@acm.org>
6716
6717 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
6718 arguments for COND_EXPR in big-endian adjustment code.
6719
6720 2004-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6721
6722 * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
6723 * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
6724 * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
6725 * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
6726
6727 2004-07-13 Diego Novillo <dnovillo@redhat.com>
6728
6729 PR tree-optimization/16443
6730 * tree-ssa-alias.c: Add more description for
6731 CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
6732 * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
6733 clobbering of call-clobbered and addressable variables. If
6734 there are any before aliases have been computed, add them.
6735
6736 2004-07-13 Diego Novillo <dnovillo@redhat.com>
6737
6738 * tree-optimize.c (execute_todo): Flush DUMP_FILE before
6739 verification.
6740
6741 2004-07-13 Ulrich Weigand <uweigand@de.ibm.com>
6742
6743 * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
6744 of build_int_2. Convert both operands of PLUS_EXPR and MULT_EXPR
6745 to the same type.
6746
6747 2004-07-13 Per Bothner <per@bothner.com>
6748
6749 * collect2.c (main): Handle --no-demangle and --demangle flags.
6750
6751 2004-07-13 Sebastian Pop <pop@cri.ensmp.fr>
6752
6753 * Makefile.in (OBJS-common): Add tree-data-ref.o.
6754 (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
6755 (tree-data-ref.o): New rule.
6756 * lambda.h: New file.
6757 * tree-data-ref.c: New file.
6758 * tree-data-ref.h: New file.
6759 * tree.c (int_cst_value, tree_fold_gcd): New functions.
6760 * tree.h (int_cst_value, tree_fold_gcd): Declared here.
6761
6762 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
6763
6764 PR target/13926
6765 * config/sparc/sparc-protos.h (output_ubranch): New prototype.
6766 * config/sparc/sparc.c (output_ubranch): New function.
6767 * config/sparc/sparc.md (jump pattern): Use it.
6768
6769 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
6770
6771 PR target/16494
6772 * config/sparc/sparc.c (output_cbranch): Properly guard
6773 the code handling far branches with TARGET_V9.
6774 * config/sparc/sparc.md (length attribute): Document the
6775 side-effect of having a length greater or equal to 3.
6776
6777 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
6778 Lloyd Parkes <lloyd@must-have-coffee.gen.nz>
6779
6780 PR target/15186
6781 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
6782 /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
6783
6784 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
6785 Martin Sebor <sebor@roguewave.com>
6786
6787 PR target/12602
6788 * doc/invoke.texi (SPARC options): Document -threads
6789 and -pthreads on Solaris.
6790
6791 2004-07-13 Richard Henderson <rth@redhat.com>
6792
6793 * builtins.c (std_gimplify_va_arg_expr): Handle types passed
6794 by reference.
6795 (ind_gimplify_va_arg_expr): Remove.
6796 * tree.h (ind_gimplify_va_arg_expr): Remove.
6797 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
6798 * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
6799 argsp to be null.
6800
6801 * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
6802 (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
6803 * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
6804 config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
6805 config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
6806
6807 2004-07-13 Richard Henderson <rth@redhat.com>
6808
6809 * function.c (pass_by_reference): New.
6810 (assign_parm_find_data_types): Use it.
6811 * calls.c (initialize_argument_information): Likewise.
6812 (emit_library_call_value_1): Likewise.
6813 * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6814 * function.h (pass_by_reference): Declare.
6815
6816 2004-07-13 Richard Henderson <rth@redhat.com>
6817
6818 * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
6819 * target.h (struct gcc_target): Add calls.must_pass_in_stack.
6820 * expr.h (MUST_PASS_IN_STACK): Remove.
6821 * system.h (MUST_PASS_IN_STACK): Poison.
6822 * tree.h (must_pass_in_stack_var_size): Declare.
6823 (must_pass_in_stack_var_size_or_pad): Declare.
6824 * calls.c (must_pass_in_stack_var_size): New.
6825 (must_pass_in_stack_var_size_or_pad): Rename from
6826 default_must_pass_in_stack.
6827 * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
6828 (TARGET_MUST_PASS_IN_STACK): New.
6829 * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
6830 * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
6831 (TARGET_MUST_PASS_IN_STACK): New.
6832 * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
6833 * config/frv/frv.c (frv_must_pass_in_stack): New.
6834 (TARGET_MUST_PASS_IN_STACK): New.
6835 * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
6836 * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
6837 * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
6838 (ix86_must_pass_in_stack): Make static.
6839 * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
6840 * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
6841 * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
6842 * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
6843 * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
6844 * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
6845 * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
6846 (mcore_must_pass_on_stack): Remove.
6847 * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
6848 * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
6849 * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
6850 * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
6851 * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
6852 * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
6853 * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
6854 * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
6855 (TARGET_MUST_PASS_IN_STACK): New.
6856 * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
6857 * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
6858 * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
6859 * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
6860 * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
6861 * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
6862 * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
6863 MUST_PASS_IN_STACK.
6864
6865 * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
6866 config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
6867 config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
6868 config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
6869 config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
6870 config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
6871 config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
6872 config/xtensa/xtensa.c: Use target hook.
6873
6874 2004-07-13 Anthony Heading <aheading@jpmorgan.com>
6875
6876 * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
6877 * configure: Rebuilt.
6878
6879 2004-07-13 Richard Sandiford <rsandifo@redhat.com>
6880
6881 * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
6882 * config/mips/mips.h (mips_reg_names): Don't declare.
6883 (MASK_NAME_REGS): Delete. Shuffle other MASK_* values down.
6884 (TARGET_NAME_REGS): Delete.
6885 (TARGET_SWITCHES): Remove -mrnames.
6886 (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
6887 (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
6888 in REGISTER_NAMES.
6889 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
6890 (override_options): Remove handling of TARGET_NAME_REGS.
6891
6892 2004-07-13 Richard Sandiford <rsandifo@redhat.com>
6893
6894 * config/mips/mips.h (TARGET_*): Boolify.
6895
6896 2004-07-12 Nick Clifton <nickc@redhat.com>
6897
6898 * config.gcc: Add sh-*-symbianelf target.
6899 * config/sh/sh.c: Add new target macros:
6900 TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
6901 TARGET_CXX_IMPORT_EXPORT_CLASS.
6902 (sh_file_start): Create a definition of the .directive section.
6903 (sh_attribute): Add dllimport and dllexport attributes.
6904 * config/sh/symbian-pre.h: New file.
6905 * config/sh/symbian-post.h: New file.
6906 * config/sh/symbian.c: New file. Contains Symbian specific
6907 functions.
6908 * config/sh/sh-protos.h: Add prototypes for new functions
6909 provided by symbian.c.
6910 * config/sh/t-symbian: New file.
6911 * doc/extend.texi: Document support for dllimport and dllexport
6912 attributes by the sh-symbianelf target.
6913
6914 2004-07-12 James E Wilson <wilson@specifixinc.com>
6915
6916 * Makefile.in (AR): Use @AR@ not ar.
6917 (NM): New.
6918 (AR_FOR_TARGET): Use $(AR) not ar for native.
6919 (NM_FOR_TARGET): Use $(NM) not nm for native.
6920 * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
6921 * configure: Regenerate.
6922
6923 2004-07-12 David S. Miller <davem@nuts.davemloft.net>
6924
6925 * config/sparc/sparc.md (ashlsi3): Eliminate const 1
6926 special case.
6927 (ashldi3_sp64): Likewise.
6928
6929 2004-07-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6930
6931 PR target/16477
6932 * pa.c (function_arg): Update comment.
6933 * pa.h (BLOCK_REG_PADDING): Define.
6934
6935 2004-07-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6936
6937 PR tree-optimization/16461
6938 * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
6939 arguments of phi nodes.
6940
6941 2004-07-12 Devang Patel <dpatel@apple.com>
6942
6943 * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
6944
6945 2004-07-12 Steve Ellcey <sje@cup.hp.com>
6946
6947 * function.c (expand_function_start): Ensure r_save is in Pmode.
6948 * calls.c (prepare_call_address): Ensure static_chain_value is
6949 in Pmode.
6950 * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
6951 r_save_area are in Pmode.
6952 * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
6953 fnaddr, and static_chain are in Pmode.
6954
6955 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
6956
6957 PR target/16445
6958 * config/ia64/ia64.c (bundling): Don't count ignored insns.
6959
6960 2004-07-12 Richard Henderson <rth@redhat.com>
6961
6962 * target.h (struct gcc_target): Move gimplify_va_arg_expr
6963 next to build_builtin_va_list.
6964 * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
6965 * builtins.c (gimplify_va_arg_expr): Likewise.
6966 * gimplify.c (copy_if_shared_r): Likewise.
6967
6968 2004-07-12 Alexandre Oliva <aoliva@redhat.com>
6969
6970 * passes.c (rest_of_decl_compilation): Don't defer call of
6971 assemble_variable if its DECL_RTL is already set.
6972
6973 2004-07-12 Sebastian Pop <pop@cri.ensmp.fr>
6974
6975 * cfgloop.h (struct loop): Add nb_iterations field.
6976 (current_loops): Declare.
6977 * tree-chrec.c (chrec_not_analyzed_yet,
6978 chrec_dont_know, chrec_known, count_ev_in_wider_type,
6979 chrec_contains_symbols_defined_in_loop): Remove the temporary
6980 hooks.
6981 * tree-flow-inline.h (loop_containing_stmt): New function.
6982 * tree-scalar-evolution.c: Add implementation.
6983 * tree-scalar-evolution.h: Add declarations.
6984
6985 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
6986
6987 PR rtl-optimization/15921
6988 * Makefile.in (global.o): Add recog.h.
6989
6990 * global.c (recog.h): Add the include-clause.
6991 (bb_info): New member earlyclobber.
6992 (allocate_bb_info, free_bb_info): Initialize/finish the new
6993 member.
6994 (earlyclobber_regclass, earlyclobber_regclass_length): The new
6995 global variables.
6996 (check_earlyclobber, regclass_intersect,
6997 mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
6998 New functions.
6999 (calculate_local_reg_bb_info): Calculate value of earlyclobber.
7000 (make_accurate_live_analysis): Modify pavin.
7001
7002 2004-07-12 Diego Novillo <dnovillo@redhat.com>
7003
7004 * tree-cfg.c (find_taken_edge): Statically compute the truth
7005 value of a predicate comparing an SSA_NAME to itself.
7006
7007 2004-07-12 Roger Sayle <roger@eyesopen.com>
7008
7009 * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
7010 rs6000 doesn't have shift-and-add or shift-and-sub instructions
7011 by returning the cost of a multiplication plus an addition.
7012
7013 2004-07-12 Paolo Bonzini <bonzini@gnu.org>
7014
7015 PR tree-optimization/14107
7016 * gimplify.c (gimplify_return_expr): Accept a
7017 RETURN_EXPR with an error argument.
7018 * tree-optimize.c (init_tree_optimization_passes):
7019 Run pass_warn_function_return at -O0.
7020
7021 2004-07-12 Roger Sayle <roger@eyesopen.com>
7022
7023 * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
7024 index entry.
7025
7026 2004-07-12 Richard Sandiford <rsandifo@redhat.com>
7027
7028 * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
7029 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
7030 * config/mips/3000.md: Add copyright notice. Remove automota and
7031 function units; use generic ones instead. Only define reservations
7032 for things that are different from generic.md. Extend each clause
7033 to include r3900.
7034 * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
7035 * config/mips/mips.md: Include them. Remove define_function_units.
7036 (alu, imuldiv): New automata and units.
7037
7038 2004-07-12 Ben Elliston <bje@au.ibm.com>
7039
7040 * doc/invoke.texi (Optimize Options): Document -frename-registers
7041 not being enabled by default at -O3.
7042
7043 2004-07-11 Roger Sayle <roger@eyesopen.com>
7044
7045 * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
7046 floating point additions, to keep real immediate constant positive.
7047 <MINUS_EXPR>: For floating point subtractions, only transform X - -C
7048 into X + C, and leave positive real constants as X - C.
7049
7050 2004-07-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7051
7052 * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
7053
7054 2004-07-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7055
7056 PR tree-optimization/15654
7057 * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
7058
7059 2004-07-11 Roger Sayle <roger@eyesopen.com>
7060
7061 * builtins.c (fold_builtin_fputs): Don't bother converting the
7062 return type to integer_type_node, as we've already checked that
7063 the result will be ignored.
7064
7065 * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
7066 that signed addition, subtraction, multiplication, division,
7067 remainder, negation and absolute value may potentially trap.
7068
7069 * fold-const.c (fold_ignored_result): New function to strip
7070 non-side-effecting tree nodes from an expression whose result
7071 is ignored.
7072 (fold_convert): Call fold_ignored_result when casting a value
7073 to VOID_TYPE.
7074 (omit_one_operand): Call fold_ignored_result on the "omitted"
7075 operand when building a COMPOUND_EXPR.
7076 (pedantic_omit_one_operand): Likewise.
7077 * tree.h (fold_ignored_result): Prototype here.
7078 * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
7079 when we're going to ignore the result.
7080
7081 2004-07-11 Richard Henderson <rth@redhat.com>
7082
7083 PR tree-opt/16383
7084 * tree-ssa-ccp.c (fold_stmt_r): Split out...
7085 * tree.c (fields_compatible_p, find_compatible_field): ... new.
7086 * tree.h (fields_compatible_p, find_compatible_field): Declare.
7087 * tree-sra.c (sra_hash_tree): Hash fields by offset.
7088 (sra_elt_eq): Use fields_compatible_p.
7089 (generate_one_element_ref): Use find_compatible_field.
7090
7091 2004-07-11 Richard Henderson <rth@redhat.com>
7092
7093 PR tree-opt/16422
7094 * tree-sra.c (generate_one_element_init): New.
7095 (generate_element_init): Use it.
7096 (scalarize_init): Push/pop gimplify context around it.
7097 (find_new_referenced_vars_1, find_new_referenced_vars): New.
7098 * gimplify.c (gimplify_expr): Allow SSA_NAME.
7099
7100 2004-07-11 Roger Sayle <roger@eyesopen.com>
7101
7102 * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
7103 combine.c's combine_insn_cost.
7104 * rtl.h (insn_rtx_cost): Prototype here.
7105 * combine.c (combine_insn_cost): Delete function.
7106 (combine_validate_cost): Update callers of combine_insn_cost to
7107 call insn_rtx_cost instead.
7108 (combine_instructions): Likewise. Use NONJUMP_INSN_P to avoid
7109 requesting the rtx_cost of call and/or jump instructions.
7110
7111 * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
7112 rtx_cost directly. Don't request/use the cost of call or jump
7113 instructions. Return -1 if the cost of any instruction can't be
7114 determined (or the BB contains a function call).
7115 (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
7116 -1 (i.e. can't determine the cost of any instruction or the basic
7117 block contains a subroutine call).
7118 (find_if_case_2): Likewise.
7119
7120 2004-07-11 Roger Sayle <roger@eyesopen.com>
7121
7122 * rs6000.c (struct processor_costs): Change semantics of fields to
7123 include the COST_N_INSNS scaling, and update all initializers.
7124 (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
7125 Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
7126 Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP. When
7127 optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
7128
7129 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
7130
7131 * LANGUAGES: Remove obsolete information.
7132
7133 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
7134
7135 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
7136 SIGBUS signal frames, the PSW address points *to* the faulting
7137 instruction, not after it.
7138
7139 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
7140
7141 * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
7142 added to TLS symbol addresses.
7143
7144 2004-07-11 Richard Henderson <rth@redhat.com>
7145
7146 * expmed.c (init_expmed): Use stack-local structures for
7147 temporary rtl. Don't recognize shifts.
7148
7149 2004-07-11 Richard Henderson <rth@redhat.com>
7150
7151 * expr.c (store_expr): Don't fiddle subreg promotion for types
7152 with precision smaller than the mode.
7153
7154 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
7155
7156 * tree.h (all_types_permanent): Remove.
7157
7158 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
7159
7160 * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
7161 maybe_build_cleanup, update_decl_after_saving): Remove hooks.
7162 * langhooks.c (lhd_clear_binding_stack): Remove.
7163 * langhooks-def.h (lhd_clear_binding_stack,
7164 LANG_HOOKS_MAYBE_BUILD_CLEANUP,
7165 LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
7166 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
7167 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
7168 (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
7169 * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
7170 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
7171 LANG_HOOKS_MAYBE_BUILD_CLEANUP,
7172 LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
7173 * tree.h (poplevel): Don't declare.
7174 * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
7175 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
7176 * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
7177 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
7178 Remove.
7179
7180 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
7181
7182 PR tree-optimization/16437
7183 * c-common.c (shorten_compare): Don't mark result of conversion to
7184 narrower signed type as overflowing.
7185 * fold-const.c (decode_field_reference): Determine whether
7186 signedness comes from outer type using precision rather than size.
7187
7188 2004-07-11 Phil Edwards <phil@codesourcery.com>
7189
7190 * configure.ac: Alphabetize --enable-checking list, add
7191 missing valgrind entry.
7192 * configure: Regenerate.
7193
7194 2004-07-11 Phil Edwards <phil@codesourcery.com>
7195
7196 * doc/install.texi (Testing): Fix syntax in "make check" example.
7197
7198 2004-07-10 James E Wilson <wilson@specifixinc.com>
7199
7200 * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
7201
7202 2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7203
7204 PR rtl-optimization/16001
7205 * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
7206 niter_expr.
7207
7208 2004-07-10 Geoffrey Keating <geoffk@apple.com>
7209
7210 * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
7211
7212 2004-07-10 Steve Kargl <sgk@troutmask.apl.washington.edu>
7213 James Morrison <phython@gcc.gnu.org>
7214
7215 * doc/contrib.texi (Contributors): Add gfortran contributors and
7216 fix a couple of typos.
7217
7218 2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7219
7220 PR rtl-optimization/15387
7221 * calls.c (check_sibcall_argument_overlap_1): Handle pointers
7222 to incoming args space correctly.
7223
7224 2004-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7225
7226 * pa.c (output_indirect_call): Only use %r2 as the link register in
7227 indirect calls with the long PA 2.0 pc-relative branch.
7228
7229 2004-07-10 Daniel Jacobowitz <dan@debian.org>
7230
7231 * config/i386/i386.c (override_options): Pick a 64-bit CPU
7232 for the default tuning if TARGET_64BIT.
7233
7234 2004-07-10 Richard Henderson <rth@redhat.com>
7235
7236 * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
7237 to HOST_WIDE_INT. Fold pad-args-down arithmetic.
7238
7239 2004-07-10 Jakub Jelinek <jakub@redhat.com>
7240
7241 * expr.h (store_bit_field, extract_bit_field): Remove last argument.
7242 * expmed.c (store_bit_field, extract_bit_field): Remove last
7243 argument.
7244 * builtins.c (expand_builtin_signbit): Adjust callers.
7245 * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
7246 * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
7247 * ifcvt.c (noce_emit_move_insn): Likewise.
7248 * stmt.c (expand_return): Likewise.
7249 * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
7250 store_field, expand_expr_real_1): Likewise.
7251
7252 2004-07-10 Richard Henderson <rth@redhat.com>
7253
7254 * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
7255
7256 2004-07-09 Mike Stump <mrs@apple.com>
7257
7258 * config/darwin.c (no_dead_strip): Add.
7259 (HAVE_DEAD_STRIP): Add.
7260 (darwin_emit_unwind_label): Ensure that we don't dead code strip
7261 the .eh label.
7262
7263 2004-07-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7264
7265 * tree-ssa-loop-im.c: New file.
7266 * Makefile.in (tree-ssa-loop-im.o): Add.
7267 * cfgloop.c (superloop_at_depth): New function.
7268 * cfgloop.h (superloop_at_depth): Declare.
7269 * common.opt (ftree-lim): New flag.
7270 * expr.c (array_ref_up_bound): New function.
7271 * params.def (PARAM_LIM_EXPENSIVE): New parameter.
7272 * timevar.def (TV_LIM): New timevar.
7273 * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
7274 computing immediate uses of a phi node.
7275 * tree-flow.h (struct tree_ann_common_d): Add aux field.
7276 (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
7277 * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
7278 * tree-pass.h (pass_lim): Declare.
7279 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
7280 functions.
7281 (pass_lim): New pass structure.
7282 * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
7283 * tree.c (in_array_bounds_p): New function.
7284 * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
7285 (in_array_bounds_p, array_ref_up_bound): Declare.
7286 * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
7287 * doc/passes.texi (tree-ssa-loop-im.c): Document.
7288
7289 2004-07-09 Richard Henderson <rth@redhat.com>
7290
7291 * builtins.c (expand_builtin_stpcpy): Don't modify len.
7292
7293 * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
7294 with prejudice.
7295
7296 2004-07-10 Kelley Cook <kcook@gcc.gnu.org>
7297
7298 * flags.h: Delete redundant prototypes that are being generated
7299 in options.h from common.opt.
7300 * common.opt: Add in the expository comments formerly in flags.h.
7301
7302 2004-07-09 Jan Beulich <jbeulich@novell.com>
7303
7304 * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
7305 available for use only when TARGET_MMX/_SSE is set, and check for
7306 variable argument function if any register count is non-zero.
7307 (function_arg): Correctly suppress repeated warnings for passing SSE
7308 vectors are arguments without SSE enabled.
7309 (ix86_function_arg_boundary): Without SSE enabled, the use of what
7310 would be SSE register modes does no longer influence the alignment.
7311
7312 2004-07-09 Richard Henderson <rth@redhat.com>
7313
7314 * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
7315 Always align upward to arg boundary. Use size_in_bytes/round_up.
7316 Maintain type-correctness of constants.
7317 * stor-layout.c (round_up, round_down): Special-case powers of 2.
7318
7319 2004-07-09 David S. Miller <davem@nuts.davemloft.net>
7320
7321 * config/sparc/sparc.c (*_costs): Scale instruction costs
7322 by COSTS_N_INSNS.
7323 (sparc_rtx_costs): Adjust as appropriate.
7324
7325 2004-07-09 Jan Beulich <jbeulich@novell.com>
7326
7327 * config/i386/mm3dnow.h: New.
7328 * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
7329
7330 2004-07-09 Richard Henderson <rth@redhat.com>
7331
7332 * simplify-rtx.c (simplify_const_relational_operation): Only
7333 look at bounds of scalar integers.
7334
7335 2004-07-09 Jan Beulich <jbeulich@novell.com>
7336
7337 * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
7338
7339 2004-07-09 Andrew Pinski <apinski@apple.com>
7340
7341 * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
7342 always referenced.
7343 (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
7344 UOBJC_METACLASS_decl.
7345
7346 2004-07-09 James E Wilson <wilson@specifixinc.com>
7347
7348 PR target/16364
7349 * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
7350 do return a parallel if hfa_mode == XFmode and mode == TImode.
7351
7352 2004-07-09 Jan Beulich <jbeulich@novell.com>
7353
7354 * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
7355 permissible for unary plus.
7356
7357 2004-07-09 Jan Beulich <jbeulich@novell.com>
7358
7359 * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
7360 (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
7361 (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
7362 (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
7363 BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
7364 * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
7365 BUILTIN_POPCOUNTxxx): Arguments are unsigned.
7366 (BUILTIN_xxxIMAX): New.
7367 * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
7368 BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
7369 BUILT_IN_PARITYIMAX.
7370
7371 2004-07-09 David S. Miller <davem@nuts.davemloft.net>
7372
7373 * config/sparc/sparc.h (processor_costs): Define.
7374 (sparc_costs): Declare.
7375 * config/sparc/sparc.c (cypress_costs, supersparc_costs,
7376 hypersparc_costs, sparclet_costs, ultrasparc_costs,
7377 ultrasparc3_costs): New.
7378 (sparc_override_options): Set sparc_costs as appropriate.
7379 (sparc_rtx_costs): Use sparc_costs instead of messy
7380 conditionals.
7381
7382 2004-07-09 Steven Bosscher <stevenb@suse.de>
7383
7384 * doc/md.texi (Processor pipeline description): Mention that
7385 the old pipeline description is deprecated.
7386
7387 * config/rs6000/7450.md (automaton ppc7450): Split up, move
7388 mciu_7450 function unit to...
7389 (automaton ppc7450mciu): ...new automaton.
7390
7391 * haifa-sched.c (insert_schedule_bubbles_p): Remove.
7392 (schedule_block): Don't consider inserting bubbles.
7393 (sched_init): Don't initialize DFA bubbles.
7394 * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
7395 TARGET_SCHED_DFA_BUBBLE): Remove.
7396 * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
7397 * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
7398 TARGET_SCHED_DFA_BUBBLE): Remove documentation.
7399
7400 * stmt.c (conditional_context): Remove prototype.
7401 * tree.h (conditional_context): Remove.
7402 * tree-cfg.c (pre_insert_on_edge): Remove.
7403
7404 * c-common.h (c_expand_asm_operands): Remove prototype.
7405 * c-typeck.c (c_expand_asm_operands): Remove.
7406
7407 2004-07-09 Jan Beulich <jbeulich@novell.com>
7408
7409 * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
7410 their base modes. CTImode, TCmode, and XCmode must be passed in memory.
7411 TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
7412 and V8QI are class SSE. All sufficiently small remaining vector modes
7413 must be passed in one or two integer registers.
7414 (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
7415 returned in memory.
7416 (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
7417 __builtin_ia32_pmuludq128 have non-uniform argument and return types
7418 and must thus be handled explicitly.
7419 * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
7420 MMX and XMM regs.
7421 (movv8qi_internal, movv4hi_internal, movv2si_internal,
7422 movv2sf_internal): Permit moving between MMX and XMM registers (since
7423 MMX areguments and return values are passed in XMM registers).
7424 (sse2_umulsidi3): Correct type and mode.
7425
7426 2004-07-09 Richard Henderson <rth@redhat.com>
7427
7428 * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
7429
7430 2004-07-09 Eric Christopher <echristo@redhat.com>
7431
7432 * config/rs6000/40x.md: Split into two automatons.
7433
7434 2004-07-09 Zack Weinberg <zack@codesourcery.com>
7435 Andrew Pinski <apinski@apple.com>
7436
7437 * c-opts.c (c_common_post_options): Force unit-at-a-time mode
7438 on when we have more than one input file.
7439 (c_common_parse_file): Restore loop over all input files.
7440 Clarify diagnostic for -dy when YYDEBUG wasn't defined.
7441
7442 * c-decl.c (set_type_context): New function.
7443 (pop_scope): Use it to set context of types. When we
7444 encounter a TYPE_DECL, set the context of the attached type too.
7445 (pop_file_scope): Don't call cpp_undef_all here.
7446 (diagnose_mismatched_decls): Do not complain about a second
7447 definition of an 'extern inline' function if it's not in the
7448 same translation unit. Do not complain about inline
7449 declaration after use if the use was in a different
7450 translation unit.
7451 (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
7452 (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
7453 the external scope.
7454 (pushdecl_top_level): Likewise.
7455 (grokdeclarator): Clarify what is going on with setting
7456 DECL_EXTERNAL on function types, a little.
7457 (c_write_global_declarations): Don't do anything if
7458 -fsyntax-only or errors have been encountered.
7459
7460 2004-07-09 Zack Weinberg <zack@codesourcery.com>
7461
7462 * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
7463
7464 2004-07-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7465
7466 PR target/16459
7467 * pa.c (output_indirect_call): Use %r2 as the link register when
7468 calling $$dyncall with a pc-relative branch.
7469
7470 2004-07-08 Gerald Pfeifer <gerald@pfeifer.com>
7471
7472 * doc/install.texi (Binaries): Mention OpenPKG.
7473
7474 2004-07-09 Diego Novillo <dnovillo@redhat.com>
7475
7476 Fix PR tree-optimization/15555
7477 * tree-dfa.c (dump_variable): If the variable is a pointer
7478 SSA_NAME, also dump its points-to information.
7479 * tree-flow.h (struct ptr_info_def): Add field
7480 is_dereferenced.
7481 (dump_points_to_info_for): Declare.
7482 (debug_points_to_info_for): Declare.
7483 * tree-optimize.c (init_tree_optimization_passes): Add a
7484 second alias analysis pass after DOM2.
7485 Move pass_del_pta to a later spot.
7486 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
7487 create a name tags when we find a dereferenced pointer. Just
7488 mark the pointer dereferenced.
7489 (collect_points_to_info_for): Move code to clear points-to
7490 information to create_name_tags.
7491 (create_name_tags): New function.
7492 (compute_flow_sensitive_aliasing): Call it.
7493 (setup_pointers_and_addressables): Mark type tags for renaming
7494 here instead of ...
7495 (create_memory_tag): ... here.
7496 (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
7497 (dump_points_to_info_for): Declare extern.
7498 (debug_points_to_info_for): New function.
7499
7500 2004-07-09 Paolo Bonzini <bonzini@gnu.org>
7501
7502 * config/arc/arc.md: Switch to DFA-based scheduler description.
7503 * config/arc/arc.c: Switch to DFA-based scheduler description.
7504
7505 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
7506
7507 * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
7508 pointer.
7509
7510 2004-07-09 Richard Henderson <rth@redhat.com>
7511
7512 * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
7513 * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7514 (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
7515 * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
7516
7517 * config/v850/v850-protos.h (v850_va_arg): Remove.
7518 * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7519 (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
7520 * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
7521 (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
7522 (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
7523
7524 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
7525
7526 PR target/12133
7527 * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
7528 and DImode to use +/-4k offset.
7529
7530 2004-07-09 Richard Henderson <rth@redhat.com>
7531
7532 * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
7533 Remove.
7534 * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7535 (xstormy16_gimplify_va_arg_expr): Rewrite from
7536 xstormy16_expand_builtin_va_arg.
7537 * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
7538
7539 * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
7540 * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
7541
7542 * config/sh/sh-protos.h (sh_va_arg): Remove.
7543 * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7544 (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
7545 * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
7546
7547 * config/pa/pa-protos.h (hppa_va_arg): Remove.
7548 * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7549 (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
7550 * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
7551
7552 * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
7553 * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7554 (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
7555 * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
7556
7557 2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
7558
7559 * config/sparc/sparc.md (return): Rewrite length formula.
7560 * config/sparc/sparc.c (output_return): Pass 1 as 5th
7561 argument to final_scan_insn when in a delay slot.
7562 (output_sibcall): Likewise.
7563
7564 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
7565
7566 * arm.c (arm_cpp_interwork): New variable.
7567 (arm_override_options): Set it if TARGET_INTERWORK was on the command
7568 line.
7569 * arm.h (arm_cpp_interwork): Declare it.
7570 (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
7571 __THUMB_INTERWORK__ in the preprocessor.
7572
7573 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
7574
7575 * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
7576
7577 2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
7578
7579 PR target/16416
7580 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
7581 Override default settings to account for -m32 and -m64.
7582
7583 2004-07-08 Randolph Chung <tausq@debian.org>
7584
7585 * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
7586
7587 2004-07-09 Alexandre Oliva <aoliva@redhat.com>
7588
7589 * builtins.c (fold_builtin_strncpy): Make sure len is a constant
7590 before comparing it as such.
7591
7592 2004-07-08 Richard Henderson <rth@redhat.com>
7593
7594 * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
7595 temporary. Use bit arithmetic to align.
7596
7597 2004-07-08 Jerry Quinn <jlquinn@optonline.net>
7598
7599 * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
7600 nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
7601 NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
7602 * bb-reorder.c (mark_bb_for_unlikely_executed_section,
7603 add_labels_and_missing_jumps, find_jump_block,
7604 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
7605 Likewise.
7606 * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
7607 link_btr_uses, move_btr_def): Likewise.
7608 * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
7609 expand_builtin_expect_jump): Likewise.
7610 * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
7611 * calls.c (expand_call, emit_library_call_value_1): Likewise.
7612 * cfganal.c (forwarder_block_p): Likewise.
7613 * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
7614 make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
7615 find_bb_boundaries): Likewise.
7616 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
7617 merge_blocks_move_predecessor_nojumps,
7618 merge_blocks_move_successor_nojumps, insns_match_p,
7619 flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
7620 try_optimize_cfg): Likewise.
7621 * cfgexpand.c (expand_block, construct_exit_block): Likewise.
7622 * cfglayout.c (skip_insns_after_block, label_for_bb,
7623 record_effective_endpoints, insn_locators_initialize,
7624 fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
7625 * cfgmainloop.c (create_loop_notes): Likewise.
7626 * cfgrtl.c (delete_insn, delete_insn_chain,
7627 create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
7628 update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
7629 block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
7630 redirect_branch_edge, force_nonfallthru_and_redirect,
7631 rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
7632 rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
7633 update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
7634 purge_dead_edges, cfg_layout_redirect_edge_and_branch,
7635 cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
7636 cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
7637 need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
7638 * combine.c (combine_instructions, can_combine_p, try_combine,
7639 find_split_point, record_dead_and_set_regs, reg_dead_at_p,
7640 distribute_notes, distribute_links, insn_cuid): Likewise.
7641 * cse.c (fold_rtx, cse_insn, cse_around_loop,
7642 invalidate_skipped_block, cse_set_around_loop,
7643 cse_end_of_basic_block, cse_main, cse_basic_block,
7644 cse_condition_code_reg): Likewise.
7645 * cselib.c (cselib_process_insn): Likewise.
7646 * ddg.c (create_ddg): Likewise.
7647 * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
7648 Likewise.
7649 * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
7650 gen_label_die, dwarf2out_var_location): Likewise.
7651 * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
7652 next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
7653 last_call_insn, active_insn_p, next_label, prev_label,
7654 link_cc0_insns, next_cc0_user, try_split, add_insn_after,
7655 add_insn_before, remove_insn, add_function_usage_to,
7656 reorder_insns, find_line_note, remove_unnecessary_notes,
7657 emit_insn_after_1, classify_insn): Likewise.
7658 * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
7659 connect_post_landing_pads, sjlj_mark_call_sites,
7660 sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
7661 can_throw_internal, can_throw_external, set_nothrow_function_flags,
7662 convert_to_eh_region_ranges): Likewise.
7663 * explow.c (optimize_save_area_alloca): Likewise.
7664 * expr.c (expand_expr_real): Likewise.
7665 * final.c (insn_current_reference_address, compute_alignments,
7666 shorten_branches, final, scan_ahead_for_unlikely_executed_note,
7667 final_scan_insn, output_asm_label, leaf_function_p): Likewise.
7668 * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
7669 propagate_block_delete_insn, propagate_one_insn,
7670 init_propagate_block_info, propagate_block, libcall_dead_p,
7671 mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
7672 Likewise.
7673 * function.c (instantiate_virtual_regs, reorder_blocks_1,
7674 expand_function_start, expand_function_end, contains,
7675 thread_prologue_and_epilogue_insns,
7676 reposition_prologue_and_epilogue_notes): Likewise.
7677 * gcse.c (constprop_register, bypass_conditional_jumps,
7678 insert_insn_end_bb, gcse_after_reload): Likewise.
7679 * genemit.c (gen_expand, gen_split): Likewise.
7680 * genpeep.c (gen_peephole, main): Likewise.
7681 * global.c (build_insn_chain): Likewise.
7682 * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
7683 * haifa-sched.c (unlink_other_notes, unlink_line_notes,
7684 get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
7685 restore_line_notes, rm_redundant_line_notes, rm_other_notes,
7686 ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
7687 * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
7688 cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
7689 merge_if_block, block_jumps_and_fallthru_p, find_if_block,
7690 dead_or_predicable): Likewise.
7691 * integrate.c (try_constants): Likewise.
7692 * jump.c (rebuild_jump_labels, cleanup_barriers,
7693 purge_line_number_notes, init_label_info, mark_all_labels,
7694 squeeze_notes, get_label_before, get_label_after,
7695 reversed_comparison_code_parts, simplejump_p, pc_set,
7696 returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
7697 delete_barrier, delete_prior_computation, delete_computation,
7698 delete_related_insns, delete_for_peephole, redirect_jump):
7699 Likewise.
7700 * lcm.c (optimize_mode_switching): Likewise.
7701 * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
7702 Likewise.
7703 * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
7704 * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
7705 * loop-iv.c (simplify_using_assignment): Likewise.
7706 * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
7707 libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
7708 find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
7709 loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
7710 check_insn_for_givs, check_final_value, update_giv_derive,
7711 basic_induction_var, product_cheap_p, check_dbra_loop,
7712 loop_insn_first_p, last_use_this_basic_block,
7713 canonicalize_condition, get_condition, loop_regs_scan, load_mems,
7714 try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
7715 * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
7716 sms_schedule_by_order): Likewise.
7717 * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
7718 * postreload.c (reload_cse_simplify_operands, reload_combine,
7719 reload_cse_move2add): Likewise.
7720 * predict.c (can_predict_insn_p, estimate_probability,
7721 expected_value_to_br_prob, process_note_predictions): Likewise.
7722 * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
7723 * profile.c (branch_prob): Likewise.
7724 * ra-build.c (live_out_1, livethrough_conflicts_bb,
7725 detect_webs_set_in_cond_jump): Likewise.
7726 * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
7727 ra_print_rtl_with_bb): Likewise.
7728 * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
7729 * recog.c (next_insn_tests_no_inequality, find_single_use,
7730 split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
7731 * reg-stack.c (next_flags_user, record_label_references,
7732 emit_swap_insn, swap_rtx_condition, subst_stack_regs,
7733 compensate_edge, convert_regs_1): Likewise.
7734 * regclass.c (scan_one_insn): Likewise.
7735 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
7736 regmove_optimize, fixup_match_1, single_set_for_csa,
7737 combine_stack_adjustments_for_block): Likewise.
7738 * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
7739 * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
7740 find_equiv_reg): Likewise.
7741 * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
7742 reload_as_needed, emit_input_reload_insns, do_output_reload,
7743 delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
7744 Likewise.
7745 * reorg.c (find_end_label, emit_delay_sequence,
7746 delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
7747 get_jump_flags, rare_destination, mostly_true_jump,
7748 try_merge_delay_insns, redundant_insn, own_thread_p,
7749 fill_simple_delay_slots, fill_slots_from_thread,
7750 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
7751 dbr_schedule): Likewise.
7752 * resource.c (find_basic_block, next_insn_no_annul,
7753 find_dead_or_set_registers, mark_target_live_regs): Likewise.
7754 * rtl.h (RTX_PREV): Likewise.
7755 * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
7756 no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
7757 reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
7758 find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
7759 tablejump_p, computed_jump_p, insns_safe_to_move_p,
7760 find_first_parameter_load, can_hoist_insn_p): Likewise.
7761 * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
7762 sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
7763 * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
7764 schedule_ebbs): Likewise.
7765 * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
7766 is_conditionally_protected, can_schedule_ready_p,
7767 add_branch_dependences, debug_dependencies): Likewise.
7768 * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
7769 Likewise.
7770 * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
7771 reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
7772 set_dominates_use, ujump_to_loop_cont): Likewise.
7773 * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
7774 * varasm.c (output_constant_pool_1): Likewise.
7775
7776 2004-07-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7777
7778 * tree-scalar-evolution.c: New file.
7779 * tree-scalar-evolution.h: New file.
7780 * tree-ssa-loop-niter.c: New file.
7781 * Makefile.in (SCEV_H): New.
7782 (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
7783 * cfgloop.h (struct loop): Add bounds field.
7784 * tree-flow.h (struct tree_niter_desc): New type.
7785 (number_of_iterations_cond, number_of_iterations_exit,
7786 loop_niter_by_eval, find_loop_niter_by_eval,
7787 estimate_numbers_of_iterations, can_count_iv_in_wider_type,
7788 free_numbers_of_iterations_estimates): Declare.
7789 * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
7790 * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
7791 * doc/invoke.texi (max-iterations-to-track): Document.
7792
7793 2004-07-08 Kaz Kojima <kkojima@gcc.gnu.org>
7794
7795 * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
7796 * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
7797 (MODE_AFTER): Add cast appropriately.
7798 * config/sh/sh.md (movdi splitter): Likewise.
7799 (casesi_worker_2): Add const qualifier appropriately.
7800 (eh_return): Remove unused variable.
7801 (insv): Initialize v;
7802
7803 2004-07-08 Richard Henderson <rth@redhat.com>
7804
7805 * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
7806 * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7807 (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
7808 * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
7809 (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
7810
7811 * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
7812 * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7813 (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
7814 * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
7815
7816 * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
7817 * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7818 (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
7819 * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
7820
7821 * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
7822 * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7823 (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
7824 * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
7825
7826 * config/i860/i860-protos.h (i860_va_arg): Remove.
7827 * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7828 (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
7829 * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
7830
7831 2004-05-31 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
7832
7833 * system.h: Prototype getpagesize if missing.
7834 * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
7835 * configure: Regenerate.
7836 * config.in: Regenerate.
7837
7838 2004-07-08 Richard Henderson <rth@redhat.com>
7839
7840 * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
7841 * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7842 (fr30_gimplify_va_arg_expr): New.
7843 (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
7844 * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
7845
7846 2004-07-08 Vladimir Makarov <vmakarov@redhat.com>
7847
7848 PR target/16414
7849 * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
7850 of asm_noperands result.
7851
7852 2004-07-08 Richard Henderson <rth@redhat.com>
7853
7854 * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
7855 * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7856 (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
7857 * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
7858
7859 2004-07-08 Richard Henderson <rth@redhat.com>
7860
7861 * builtins.c (ind_gimplify_va_arg_expr): New.
7862 * tree.h (ind_gimplify_va_arg_expr): Declare.
7863 * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
7864
7865 2004-07-08 Jan Beulich <jbeulich@novell.com>
7866
7867 * expmed.c (extract_bit_field): Correct condition to use vec_extract
7868 patterns also on vector elements other than the first one.
7869 * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
7870 break statements.
7871
7872 2004-07-08 Geoffrey Keating <geoffk@apple.com>
7873
7874 * config/rs6000/darwin-ldouble.c: Correct reference
7875 to the Linnainmaa paper.
7876
7877 2004-07-08 Richard Henderson <rth@redhat.com>
7878
7879 * config/arc/arc-protos.h (arc_va_arg): Remove.
7880 * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7881 (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
7882 * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
7883
7884 * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
7885 * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7886 (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
7887 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
7888
7889 2004-07-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7890
7891 * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
7892
7893 2004-07-08 Zack Weinberg <zack@codesourcery.com>
7894
7895 * c-decl.c (static_ctors, static_dtors): Make static.
7896 (pop_file_scope): Call c_common_write_pch and
7897 cgraph_finalize_compilation_unit here.
7898 (build_cdtor): Moved here from c-objc-common.c; simplify.
7899 (c_write_global_declarations_1): Clarify comment.
7900 (c_write_global_declarations): Close the external scope before
7901 doing anything else. Call build_cdtor, cgraph_optimize, and
7902 mudflap_finish_file here.
7903 * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
7904 Clarify comment.
7905 * c-objc-common.c: No need to include cgraph.h.
7906 (build_cdtor): Moved to c-decl.c.
7907 (c_objc_common_finish_file): Delete.
7908 * c-tree.h: Update to match.
7909 * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
7910 (generate_static_references): Set TREE_USED before calling finish_decl.
7911 Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation
7912 on the static_instances_decl.
7913
7914 2004-07-08 Zack Weinberg <zack@codesourcery.com>
7915
7916 * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
7917 decls when there is only one input translation unit.
7918 * langhooks.c (lhd_set_decl_assembler_name): Partially revert
7919 change of 2004-07-05; do not treat declarations with
7920 DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
7921 * opts.c (cur_in_fname): Delete.
7922 * opts.h: Likewise.
7923 * tree.c: Revert changes of 2004-07-05; no special treatment
7924 for TRANSLATION_UNIT_DECLs.
7925 * Makefile.in (tree.o): Update dependencies.
7926
7927 2004-07-08 Roger Sayle <roger@eyesopen.com>
7928
7929 * builtins.c (fold_builtin_strcpy): Merge functionality from
7930 simplify_builtin_strcpy. Add additional len argument. No longer
7931 static. Remove function prototype.
7932 (fold_builtin_strncpy): Likewise integrate functionality from
7933 simplify_builtin_strncpy. Add additional slen argument. No
7934 longer static. Remove function prototype.
7935 (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
7936 (simplify_builtin_fputs): Rename to fold_builtin_fputs. Change
7937 types of "ignore" and "unlocked" parameters to bool.
7938 (fold_builtin_1): Add additional ignore argument. Call renamed
7939 fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
7940 builtins. Update arguments to fold_builtin_strncpy and
7941 fold_builtin_strcpy. Add function prototype.
7942 (fold_builtin): Add additional Boolean ignore argument to pass
7943 to fold_builtin_1.
7944 (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
7945 and fold_builtin_strncpy instead of simplify_builtin_fputs,
7946 simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
7947
7948 * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
7949 simplify_builtin_strncpy): Delete function prototypes.
7950 * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
7951 fold_builtin_strncpy): Add function prototypes here.
7952 (fold_builtin): Update function prototype with new "bool ignore".
7953
7954 * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
7955 (ccp_fold_builtin): Update call to fold_builtin. Call
7956 fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
7957 instead of simplify_builtin_fputs, simplify_builtin_strcpy and
7958 simplify_builtin_strncpy respectively.
7959 * fold-const.c (fold): Update call to fold_builtin.
7960
7961 2004-07-08 Alexandre Oliva <aoliva@redhat.com>
7962
7963 * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
7964 to strcpy.
7965
7966 * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
7967 (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
7968 (FUNCTION_ARG_CALLEE_COPIES): Likewise.
7969 * calls.c: Remove ifdefs of macros above.
7970 * functions.c: Likewise.
7971 * expr.c: Likewise.
7972
7973 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
7974
7975 * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
7976 (arch attribute): Delete.
7977 (current_function_calls_alloca attribute): Rename into calls_alloca.
7978 (calls_eh_return): New attribute.
7979 (leaf_function): Likewise.
7980 (length attribute): Fix formula for sibcalls.
7981 (return insn): Correctly compute the 'length' attribute.
7982 (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
7983
7984 2004-07-08 Richard Henderson <rth@redhat.com>
7985
7986 * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
7987 (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
7988 (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
7989 * tree-eh.c (lower_eh_constructs_1): Likewise.
7990 * tree-sra.c (sra_walk_modify_expr): Likewise.
7991 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
7992 (eliminate_unnecessary_stmts): Likewise.
7993 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
7994 * tree-tailcall.c (optimize_tail_call): Likewise.
7995 * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
7996
7997 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
7998 Jakub Jelinek <jakub@redhat.com>
7999
8000 * config/i386/i386.c (override_options): Enable
8001 SSE prefetches with -mtune, as long as we are
8002 compiling for i686 or higher. All i686 processors
8003 accept SSE prefetches as NOPS, some i586's don't.
8004
8005 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
8006
8007 PR target/10567
8008 * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
8009
8010 2004-07-08 Diego Novillo <dnovillo@redhat.com>
8011
8012 * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
8013 the handling of clobbering ASM_EXPRs.
8014
8015 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
8016
8017 PR target/16430
8018 * config/sparc/sparc.c (function_value): In 64-bit mode,
8019 return the aggregates larger than 16 bytes like unions.
8020
8021 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
8022
8023 PR target/16199
8024 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
8025 'temp' is zero, generate new pseudos as needed and emit the
8026 sequence of insns in single-assignment form. Resync comments
8027 with code.
8028 (sparc_emit_set_const64): Pass zero as 'temp' argument to above
8029 function before reload.
8030
8031 2004-07-08 Nathan Sidwell <nathan@codesourcery.com>
8032
8033 * vec.c (vec_assert_fail): Remove duplicate 'function'.
8034
8035 * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
8036
8037 * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
8038 Allocation is signed.
8039 (VEC_reserve): Return flag, allocation is signed.
8040
8041 2004-07-08 Richard Henderson <rth@redhat.com>
8042
8043 * tree-ssa-ccp.c (fold_stmt): Get type directly from
8044 OBJ_TYPE_REF_OBJECT.
8045
8046 2004-07-08 Joseph S. Myers <jsm@polyomino.org.uk>
8047 Neil Booth <neil@daikokuya.co.uk>
8048
8049 PR c/2511
8050 PR c/3325
8051 * c-decl.c (finish_struct): Ensure bit-fields are given the
8052 correct type.
8053 * c-common.c (c_common_signed_or_unsigned_type): For C, require
8054 the precision to match as well as the mode.
8055 * expr.c (reduce_to_bit_field_precision): New function.
8056 (expand_expr_real_1): Reduce expressions of bit-field type to
8057 proper precision.
8058 * langhooks.h (reduce_bit_field_operations): New hook.
8059 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8060 Define.
8061 * c-lang.c, objc/objc-lang.c
8062 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
8063 * objc/objc-act.c (check_ivars): Convert types to bit-field types
8064 before checking.
8065 * tree.c (build_nonstandard_integer_type): New function.
8066 * tree.h (build_nonstandard_integer_type): New prototype.
8067 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
8068 conversions between integer and boolean types as useless.
8069
8070 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
8071
8072 * c-common.c (c_common_nodes_and_builtins): Do not
8073 create __builtin_ptrdiff_t and __builtin_size_t.
8074
8075 2004-07-08 Andrew Pinski <apinski@apple.com>
8076
8077 * Makefile.in (libbackend.o): Add -combine to the gcc
8078 command line.
8079
8080 2004-07-08 Nick Clifton <nickc@redhat.com>
8081
8082 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
8083 Set to -Os.
8084
8085 2004-07-08 Richard Henderson <rth@redhat.com>
8086
8087 * except.c (expand_eh_region_start, expand_eh_region_end,
8088 expand_eh_handler, expand_eh_region_end_cleanup,
8089 expand_start_all_catch, expand_start_catch, expand_end_catch,
8090 expand_end_all_catch, expand_eh_region_end_allowed,
8091 expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
8092 expand_eh_region_end_fixup): Remove.
8093 * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
8094 cleanups, outer_cleanups, label_chain, exception_region.
8095 (struct goto_fixup): Remove stack_level, cleanup_list_list.
8096 (struct label_chain): Remove.
8097 (struct stmt_status): Remove x_stack_block_stack.
8098 (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
8099 fixup_gotos, save_stack_pointer, expand_decl_cleanup,
8100 expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
8101 end_cleanup_deferral, last_cleanup_this_contour,
8102 containing_blocks_have_cleanups_or_stack_level,
8103 any_pending_cleanups): Remove.
8104 (expand_null_return_1): Take no arguments.
8105 (expand_label, expand_naked_return, expand_return,
8106 expand_start_bindings_and_block, expand_end_bindings, expand_decl,
8107 expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
8108 expand_end_case_type): Don't use any of them.
8109 * calls.c (expand_call): Likewise.
8110 * dojump.c (do_jump): Likewise.
8111 * function.c (expand_function_end): Likewise.
8112 * expr.c (store_expr, expand_expr_real_1): Likewise.
8113 (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
8114 (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
8115 CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
8116 EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
8117 * fold-const.c (fold_checksum_tree): Use first_rtl_op.
8118 * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
8119 * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
8120 for WITH_CLEANUP_EXPR.
8121 (gimple_push_cleanup): Likewise.
8122 * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
8123 * print-tree.c (print_node): Likewise.
8124 * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
8125 * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
8126 (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
8127 * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
8128 (GOTO_SUBROUTINE_EXPR): Remove.
8129 * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
8130 (DECL_TOO_LATE): Remove.
8131 * except.h, tree.h: Update decls.
8132
8133 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
8134
8135 * explow.c (optimize_save_area_alloca): Do not accept parameters.
8136 * passes.c (rest_of_handle_final): Handle symout.
8137 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
8138 Push timevar here.
8139 (rest_of_handle_sched): Break out SMS. Remove ifs for
8140 flag_schedule_insns and flag_modulo_sched.
8141 (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
8142 collect at the end.
8143 (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
8144 (rest_of_handle_partition_blocks, rest_of_handle_sms,
8145 rest_of_handle_if_after_reload, rest_of_handle_peephole2,
8146 rest_of_handle_mode_switching, rest_of_handle_jump,
8147 rest_of_handle_guess_branch_prob, rest_of_handle_eh,
8148 rest_of_handle_jump2, rest_of_handle_postreload,
8149 rest_of_handle_flow2, rest_of_clean_state,
8150 rest_of_handle_shorten_branches,
8151 rest_of_handle_prologue_epilogue,
8152 rest_of_handle_branch_target_load_optimize): New.
8153 (rest_of_compilation): Call the above. Remove ggc_collect
8154 calls moved to rest_of_handle_*.
8155 * rtl.h (optimize_save_area_alloca): Do not accept parameters.
8156
8157 * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
8158 * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
8159 * except.h (set_nothrow_function_flags): Update comment.
8160 * function.c (current_function_nothrow): Remove.
8161 * output.h (current_function_nothrow): Remove.
8162 * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
8163 * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
8164
8165 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
8166
8167 PR bootstrap/16326
8168 * reorg.c: Revert 2004-06-30 change.
8169 (find_end_label): If HAVE_epilogue and !HAVE_return,
8170 return 0 instead of creating a label at the end of the insn chain.
8171 (optimize_skip): Account for the failure mode of find_end_label.
8172 (fill_simple_delay_slots): Likewise.
8173 (fill_slots_from_thread): Likewise.
8174 (relax_delay_slots): Likewise.
8175
8176 2004-07-08 Diego Novillo <dnovillo@redhat.com>
8177
8178 * tree-flow.h (addressable_vars): Declare.
8179 * tree-ssa-alias.c (addressable_vars): Define.
8180 (setup_pointers_and_addressables): Add addressable variables
8181 to addressable_vars.
8182 * tree-ssa-operands.c (get_stmt_operands): Move
8183 handling of ASM_EXPRs ...
8184 (get_asm_expr_operands): ... here.
8185 When the ASM_EXPR clobbers memory, also clobber addressable
8186 variables.
8187 * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
8188 (delete_tree_ssa): Reset addressable_vars.
8189
8190 2004-07-07 Jan Beulich <jbeulich@novell.com>
8191 Richard Henderson <rth@redhat.com>
8192
8193 * varasm.c (assemble_variable): Use assemble_zeros for
8194 zero-initialized variables.
8195 (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
8196 for SECCAT_BSS and SECCAT_TBSS.
8197
8198 2004-07-07 Jan Beulich <jbeulich@novell.com>
8199
8200 * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
8201
8202 * expmed.c (emit_store_flag): Also special-case double-word
8203 (in-)equality comparison against -1.
8204
8205 * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
8206 passing arguments the containers for which are registers.
8207
8208 * calls.c (emit_library_call_value_1): Use mode of function parameter
8209 rather than that of argument since constants have none.
8210
8211 2004-07-08 Alexandre Oliva <aoliva@redhat.com>
8212
8213 Introduce H8SX support.
8214 * expr.c (expand_strcpy): Renamed and moved to...
8215 * builtins.c (expand_movstr): ... here. Tweak.
8216 (expand_builtin_strcpy): Adjust. Use movstr if len can't be
8217 computed or has side effects.
8218 (expand_builtin_stpcpy): Likewise. Use strcpy if return value is
8219 unused, or if mempcpy fails. Adjust the return value in the
8220 latter case. Use movstr if everything else fails.
8221 * doc/md.texi (movstr): Document.
8222 (movmemM, clrmemM): Fix explanation of memory block operands.
8223 * config/h8300/h8300.md (stpcpy): Renamed to...
8224 (movstr): ... this. Adjust.
8225 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
8226 * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
8227 movmem* and clrstr* to clrmem*.
8228 2004-06-27 Alexandre Oliva <aoliva@redhat.com>
8229 * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
8230 GENERAL_REGS, always.
8231 (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
8232 getting the stack pointer as addr.
8233 * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
8234 from general_operand_dst.
8235 * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
8236 variant of...
8237 (movmd_internal): ... this. Add modes to operands. Disparage `D'
8238 instead of requiring it to match only before reload.
8239 (stpcpy_internal_normal): New, normal-mode variant of...
8240 (stpcpy_internal): ... this. Add modes to operands. Disparage
8241 `D' instead of requiring it to match only before reload.
8242 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
8243 mode argument.
8244 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
8245 * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
8246 h8300_get_index.
8247 * config/h8300/h8300.md (attr type): Add call.
8248 (attr can_delay): If type is call, set it no.
8249 (call, call_value): Set type to call.
8250 2004-06-21 Alexandre Oliva <aoliva@redhat.com>
8251 * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
8252 2004-06-16 Alexandre Oliva <aoliva@redhat.com>
8253 * tree.c (get_narrower): Don't narrow integral types into
8254 non-integral types.
8255 * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
8256 frame_size *before* the first use.
8257 * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
8258 on input.
8259 (peephole2): Don't widen instructions that push SP. Move
8260 decrement of SP to the end of all stm-generating peepholes.
8261 2003-07-24 Richard Sandiford <rsandifo@redhat.com>
8262 * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
8263 and OR to set it to all ones.
8264 2003-07-24 Richard Sandiford <rsandifo@redhat.com>
8265 * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
8266 (call, call_value): Set can_delay to "no".
8267 2003-07-22 Richard Sandiford <rsandifo@redhat.com>
8268 * config/h8300/h8300.md (extzv): Make subreg check more robust.
8269 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
8270 * config/h8300/h8300.md (*brabit): Remove.
8271 * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
8272 zero_extract. Use bit_memory_operand as the predicate for
8273 operand 1 and 'WU' as the constraint. Check the difference
8274 between the base length and the final one when deciding which
8275 type of branch to use.
8276 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
8277 * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
8278 Use convert_move to extend the result for TARGET_H8300SX. Check
8279 for QImode memory references. Optimize the case where the
8280 destination is a paradoxical subreg.
8281 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
8282 * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
8283 * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
8284 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
8285 * config/h8300/h8300.md: Include mova.md
8286 (length_table): Add mova and mova_zero.
8287 * config/h8300/h8300.c (print_operand): Handle '%o'. Print a length
8288 after all constant addresses for '%R', '%X', '%T' and '%S'.
8289 (h8300_mova_length): New function.
8290 (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
8291 * config/h8300/t-h8300 (mova.md): Generate from genmova.sh. Add to
8292 dependencies for s-config, etc.
8293 * config/h8300/gemova.sh: New file.
8294 * config/h8300/mova.md: Generated.
8295 2003-07-20 Alexandre Oliva <aoliva@redhat.com>
8296 * config/h8300/h8300.c (h8300_bitfield_length): New.
8297 (nibble_operand): Adjust.
8298 (h8300_binary_length): Handle conditional binary op.
8299 (h8300_insn_length_from_table): Handle bitfield and bitbranch.
8300 * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
8301 P#<X, respectively. The original P is now IP4>X. Introduced P#>0
8302 and P#<0, unused so far. W and Y are now prefixes to multi-letter
8303 constraints. WU is introduced as a variant of U that requires a
8304 mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
8305 * config/h8300/h8300.md (attr type): Added bitbranch.
8306 (attr length_table): Added bitfield and bitbranch.
8307 (attr length): Compute bitbranch length.
8308 (andqi): Separate pattern for H8300SX. Use bfld for loading the
8309 least-significant bit of a byte.
8310 (brabit, brabc, brabs): New.
8311 (insv, extzv): Emit bfst and bfld on H8300SX.
8312 (bfld, bfst, seq, sne): New.
8313 (bstzhireg, cmpstz, bstz, bistz): New.
8314 (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
8315 (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
8316 2003-07-11 Richard Sandiford <rsandifo@redhat.com>
8317 * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
8318 (h8sx_unary_memory_operator): New function.
8319 * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
8320 (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
8321 * config/h8300/h8300.md: Add peepholes to combine reloads and
8322 arithmetic insns.
8323 2003-07-10 Richard Sandiford <rsandifo@redhat.com>
8324 * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
8325 (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
8326 (and?i, ior?i, xor?i): Likewise.
8327 2003-07-10 Richard Sandiford <rsandifo@redhat.com>
8328 * config/h8300/h8300.c: Move enums and prototypes to head of file.
8329 Various whitespace fixes.
8330 (h8300_constant_length): New function, split out from...
8331 (h8300_displacement_size): ...here. Rename h8300_displacement_length.
8332 (h8300_classify_operand): Use IN_RANGE.
8333 (h8300_classify_operand): Use h8300_constant_length.
8334 (h8300_short_move_mem_p): Tighten size check.
8335 (h8sx_mergeable_memrefs_p): Tighten equality check.
8336 2003-06-30 Richard Sandiford <rsandifo@redhat.com>
8337 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
8338 for -msx.
8339 * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
8340 * config/h8300/crtn.asm: Likewise.
8341 * config/h8300/lib1funcs.asm: Likewise. Use 32-bit pointers
8342 if __H8300SX__ is defined.
8343 2003-06-27 Richard Sandiford <rsandifo@redhat.com>
8344 * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
8345 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
8346 (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
8347 addresses as mode-dependent.
8348 * config/h8300/h8300.c (print_operand_address): Update call to
8349 h8300_get_index.
8350 (h8300_get_index): Take a mode argument. Rework to fix an
8351 earlier misunderstanding.
8352 2003-06-26 Richard Sandiford <rsandifo@redhat.com>
8353 * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
8354 into a register if TARGET_H8300SX.
8355 (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
8356 TARGET_H8300SX. Also disable related define_splits.
8357 (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
8358 2003-06-23 Richard Sandiford <rsandifo@redhat.com>
8359 * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
8360 2003-06-20 Richard Sandiford <rsandifo@redhat.com>
8361 * config/h8300/h8300.h (OK_FOR_Z): New macro.
8362 (EXTRA_CONSTRAINT_STR): Check it.
8363 * config/h8300/h8300.c (h8300_classify_operand): Accept null
8364 class arguments.
8365 (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
8366 * config/h8300/h8300.md (length_table): Add mov_imm4.
8367 (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
8368 2003-06-20 Richard Sandiford <rsandifo@redhat.com>
8369 * genattrtab.c (write_eligible_delay): Allow candidate_insn to
8370 be a label.
8371 * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
8372 * config/h8300/h8300.c (h8300_reorg): New function.
8373 (TARGET_MACHINE_DEPENDENT_REORG): Define.
8374 * config/h8300/h8300.md (length): Subtract the length of the
8375 delay slot from (pc) when checking the range of forward branches.
8376 (delay_slot, can_delay): New attributes.
8377 (define_delay): Add bra/s handling.
8378 (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
8379 (jump): Add delayed-branch handling.
8380 2003-06-17 Richard Sandiford <rsandifo@redhat.com>
8381 * expr.c (expand_strcpy): New function.
8382 * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
8383 (expand_builtin_stpcpy): Likewise.
8384 * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
8385 (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
8386 * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
8387 handling to improve register allocation for -fno-omit-frame-pointer.
8388 (h8sx_split_movmd): Delete, moving er6 handling into...
8389 (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
8390 * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
8391 (movmd): Add calls to copy_rtx.
8392 (movmd_internal): In the second alternative, allow the initial and
8393 final destination registers to be different . Update the splitter
8394 accordingly. Call h8300_swap_into_er6 and h8300_swap_out_of_er6
8395 instead of h8sx_split_movmd.
8396 (stpcpy, movsd): New expanders.
8397 (movsd_internal): New define_insn.
8398 2003-06-13 Richard Sandiford <rsandifo@redhat.com>
8399 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
8400 (h8sx_emit_movmd, h8sx_split_movmd): Declare.
8401 * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
8402 and DESTINATION_REGS.
8403 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
8404 (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
8405 (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
8406 (h8300_move_ratio): Declare.
8407 (MOVE_RATIO): Use it.
8408 * config/h8300/h8300.c (h8300_move_ratio): New variable.
8409 (h8300_init_once): Initialize it.
8410 (h8300_reg_class_from_letter): New function.
8411 (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
8412 (h8sx_emit_movmd, h8sx_split_movmd): New functions.
8413 * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
8414 (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
8415 (movstrsi, movmd): New expanders.
8416 (movmd_internal): New insn.
8417 2003-06-06 Richard Sandiford <rsandifo@redhat.com>
8418 * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
8419 2003-06-04 Richard Sandiford <rsandifo@redhat.com>
8420 * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
8421 * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
8422 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
8423 * config/h8300/h8300.c (nibble_operand): Fix warning.
8424 * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
8425 (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
8426 (movsf_h8300h): Disable for TARGET_H8300SX.
8427 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
8428 * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
8429 h8300_stm_parallel and h8300_return_parallel.
8430 * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
8431 h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
8432 h8300_stm_parallel, h8300_return_parallel): New functions.
8433 (h8300_expand_prologue): Don't enforce ldm/stm register alignment
8434 if TARGET_H8300SX. Use h8300_push_pop.
8435 (h8300_expand_epilogue): Likewise. Try to merge the return insn
8436 and final pop when generating h8sx code. Always emit some form
8437 of return insn.
8438 * config/h8300/h8300.md: Don't enforce register alignment in
8439 stm peepholes if TARGET_H8300SX.
8440 (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
8441 (ldm_h8300s_[234], stm_h8300_[234]): Disable.
8442 (epilogue): Expect h8300_expand_epilogue to emit a return insn.
8443 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
8444 * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
8445 (MULTILIB_DIRNAMES): Add a directory for it.
8446 (MULTILIB_MATCHES): Delete.
8447 2003-05-28 Richard Sandiford <rsandifo@redhat.com>
8448 * final.c (walk_alter_subreg): Handle addresses with subregs
8449 inside a ZERO_EXTEND or AND.
8450 * config/h8300/h8300-protos.h (h8300_get_index): Declare.
8451 * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
8452 if TARGET_H8300SX.
8453 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
8454 * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
8455 @(dd,Rn.w) and @(dd,ERn.L).
8456 (h8300_displacement_size): Take the whole address as argument.
8457 (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
8458 2003-05-28 Richard Sandiford <rsandifo@redhat.com>
8459 * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
8460 (h8sx_mergeable_memrefs_p): Declare.
8461 * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
8462 (HAVE_PRE_INCREMENT): Likewise.
8463 (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
8464 addresses for TARGET_H8300SX,
8465 * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
8466 and POST_DEC.
8467 (movb_length_table, movl_length_table): New tables.
8468 (movw_length_table): Define to movb_length_table.
8469 (h8300_displacement_size): New, split out from...
8470 (h8300_classify_address): ...here. Handle pre/post inc/dec.
8471 (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
8472 (h8300_insn_length_from_table): Add cases for movb, movw and movl.
8473 (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
8474 (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
8475 (compute_plussi_length, compute_plussi_cc): Update accordingly.
8476 (h8sx_unary_shift_operator): Get the mode from the operator.
8477 (binary_shift_operator): Likewise.
8478 * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
8479 a memory reference, check whether the reference is offsettable.
8480 (length_table): Add movb, movw and movl.
8481 (movqi): Add new h8sx pattern. Don't force one operand to be a
8482 register when generating h8sx code.
8483 (movhi, movsi, movsf): Likewise.
8484 (movstrictqi): Use the length_table attribute.
8485 (movstricthi): Likewise. Add h8sx alternative for mov.w #xx:3,Rn.
8486 (addqi3): Split into a define_expand and define_insn. Don't accept
8487 memory operands in the expander. Use h8300_operands_match_p to
8488 check for matching operands in the define_insn.
8489 (subqi3, negqi2, one_cmplqi2): Likewise.
8490 (add[hs]i3): Don't accept memory operands in the expander. Likewise
8491 in any patterns that are unused in h8sx code. In the h8sx patterns,
8492 use h8300_operands_match_p to check whether operands match.
8493 (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
8494 one_cmpl[hs]i3): Likewise.
8495 (andqi3, iorqi3, xorqi3): Likewise. Don't call fix_bit_operand
8496 in the expander.
8497 2003-05-23 Richard Sandiford <rsandifo@redhat.com>
8498 * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
8499 (h8300_insn_length_from_table): Add a second parameter.
8500 (output_h8sx_shift): Declare.
8501 * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
8502 (EXTRA_CONSTRAINT): Replace with...
8503 (EXTRA_CONSTRAINT_STR): ...this. Use OK_FOR_W and OK_FOR_Y.
8504 (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
8505 (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
8506 and h8sx_binary_shift_operator.
8507 * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
8508 for TARGET_H8300SX.
8509 (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
8510 (bit_memory_operand, fix_bit_operand): Likewise.
8511 (h8300_length_table_for_insn): Remove.
8512 (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
8513 instructions.
8514 (h8300_short_immediate_length, h8300_binary_length): New functions.
8515 (h8300_insn_length_from_table): Add an opcodes parameter. Rework.
8516 (output_plussi): Use sub to add negative constants.
8517 (compute_plussi_length): Adjust accordingly.
8518 (h8sx_single_shift_type): New enum.
8519 (h8sx_single_shift, h8sx_unary_shift_operator,
8520 h8sx_binary_shift_operator, output_h8sx_shift): New functions.
8521 (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
8522 single h8sx instruction. Return false in this case.
8523 * config/h8300/h8300.md (length_table): Add short_immediate.
8524 (length): Pass the operand array to h8300_insn_length_from_table.
8525 (adjust_length): Assume "no" for insns with a length_table attribute.
8526 (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
8527 (*addhi3_h8300hs): Don't use for h8sx.
8528 (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
8529 and sub.w #xx:3.
8530 (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
8531 1's predicate to nonimmediate_operand. Only skip default expansion
8532 if expand_a_shift or expand_a_rotate returns true. Add new patterns
8533 for single h8sx shift instructions.
8534 2003-05-22 Alexandre Oliva <aoliva@redhat.com>
8535 * config/h8300/h8300.c (nibble_operand): Split out of...
8536 (reg_or_nibble_operand): ... this.
8537 * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
8538 * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
8539 umulhisi3): Introduce expand, and introduce separate insns for
8540 sign- or zero-extended REG and already-extended CONST_INT.
8541 2003-05-20 Richard Sandiford <rsandifo@redhat.com>
8542 * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
8543 * config/h8300/h8300.md (subqi3): Generalize for h8sx.
8544 (subhi3): Likewise. Don't accept immediates for operand 1.
8545 Remove the early clobber from second alternative of the h8300s pattern.
8546 (subsi3): Generalize for h8sx. Force operand 2 into a register
8547 on plain h8300 targets.
8548 (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
8549 (subsi3_h8300h): Generalize for h8sx.
8550 (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
8551 2003-05-19 Alexandre Oliva <aoliva@redhat.com>
8552 * config/h8300/h8300.c (reg_or_nibble_operand): New.
8553 * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
8554 (TARGET_H8300SXMUL): New.
8555 (CONST_OK_FOR_P): New.
8556 (CONST_OK_FOR_LETTER_P): Adjust.
8557 * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
8558 umulhisi3): Accept 4-bit immediate on H8SX.
8559 (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
8560 (udivsi3, divhi3, udivsi3, divsi3): New.
8561 2003-05-19 Richard Sandiford <rsandifo@redhat.com>
8562 * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
8563 * config/h8300/h8300.h (OK_FOR_Q): New macro.
8564 (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
8565 (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
8566 Add ADDRESSOF to the bit_operand entry.
8567 * config/h8300/h8300.c (h8300_dst_operand): New predicate.
8568 (h8300_src_operand): Likewise.
8569 (bit_operand): Check nonimmediate_operand rather than general_operand.
8570 Accept any nonimmediate_operand in h8sx code.
8571 (h8300_and_costs): Initialize operands[1].
8572 (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
8573 (h8300_operand_class): New enum.
8574 (h8300_length_table): New typedef.
8575 (addb_length_table, addw_length_table, addl_length_table,
8576 logicl_length_table): New tables.
8577 (logicb_length_table, logicw_length_table): New macros.
8578 (h8300_classify_operand, h8300_length_from_table,
8579 h8300_length_table_for_insn, h8300_unary_length,
8580 h8300_insn_length_from_table): New functions.
8581 (output_plussi): Only use adds and subs for register destinations.
8582 Disable redundant clause.
8583 (compute_plussi_cc): Likewise.
8584 (compute_plussi_length): Likewise. Use h8300_length_from_table
8585 to work out the length of an insn.
8586 (output_logical_op): Only use narrower immediate instructions
8587 if the destination is a register.
8588 (compute_logical_op_cc): Likewise.
8589 (compute_logical_op_length): Likewise. Use h8300_length_from_table.
8590 (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
8591 * config/h8300/h8300.md (length_table): New attribute.
8592 (length): When an instruction has a length_table attribute, use
8593 h8300_insn_length_from_table to calculate its default length.
8594 (cmpqi): Use h8300_dst_operand for the first operand and
8595 h8300_src_operand for the second.
8596 (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
8597 negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
8598 addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
8599 iorsi3, xorhi3, xorsi3): Likewise.
8600 (andqi3): Use h8300_src_operand for operand 2. Adjust the condition
8601 so that it allows any combination of operands for TARGET_H8300SX.
8602 (iorqi3, xorqi3): Likewise.
8603 (cmpqi): Use the length_table attribute.
8604 (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
8605 xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
8606 (cmpqi): Add 'Q' constraint.
8607 (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
8608 iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
8609 2003-05-14 Richard Sandiford <rsandifo@redhat.com>
8610 * config/h8300/h8300.h (MASK_H8300SX): New macro.
8611 (TARGET_H8300S): True for both -ms and -msx.
8612 (TARGET_H8300SX): New macro.
8613 (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
8614 * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
8615 * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
8616 * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
8617 [Temporary change.]
8618 2003-02-28 Alexandre Oliva <aoliva@redhat.com>
8619 * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
8620 16-bit pointers and 32-bit ints.
8621 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
8622 CONST_DOUBLE with mode no wider than SImode.
8623 * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
8624 output operand.
8625 2003-02-27 Alexandre Oliva <aoliva@redhat.com>
8626 * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
8627 or SUBREG thereof.
8628 * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
8629 2003-02-22 Alexandre Oliva <aoliva@redhat.com>
8630 * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
8631
8632 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
8633
8634 * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
8635
8636 2004-07-07 Per Bothner <per@bothner.com>
8637
8638 * flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE.
8639
8640 2004-07-07 Mike Stump <mrs@apple.com>
8641
8642 * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
8643 * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
8644 (machopic_finish): Likewise.
8645
8646 2004-07-07 Richard Henderson <rth@redhat.com>
8647
8648 * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
8649 through any value-preserving cast.
8650
8651 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
8652
8653 * function.c (assign_parm_find_data_types): Call
8654 FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
8655
8656 2004-07-07 Steven Bosscher <stevenb@suse.de>
8657
8658 * tree-cfg.c (group_case_labels): Remove case labels that have
8659 the same target as the default case.
8660
8661 2004-07-07 Steven Bosscher <stevenb@suse.de>
8662
8663 * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
8664 regardless of DECL_LANG_SPECIFIC being present or not.
8665 * tree.h (DECL_NUM_STMTS): Purge.
8666
8667 2004-07-07 Andrew Pinski <apinski@apple.com>
8668
8669 * configure: Regenerate with the right autoconf.
8670
8671 2004-07-07 David Edelsohn <edelsohn@gnu.org>
8672
8673 * ifcvt.c (total_bb_rtx_cost): New function.
8674 (find_if_case_1): Compare rtx_cost of basic block to cost of
8675 BRANCH_COST insns.
8676 (find_if_case_2): Same.
8677
8678 2004-07-07 Eric Botcazou <ebotcazou@libertysurf.fr>
8679
8680 PR target/10567
8681 * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
8682 (output_return): Likewise.
8683 (output_sibcall): Abort if !flag_delayed_branch.
8684 (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
8685 (emit_and_preserve): New function.
8686 (sparc_output_mi_thunk): Use it. Honor flag_delayed_branch. Emit an
8687 indirect jump to the thunked-to function if !flag_delayed_branch.
8688 * config/sparc/sparc.md (delayed_branch): New attribute.
8689 (load_pcrel_sym): Honor flag_delayed_branch. Use above
8690 attribute to compute the length of the insn.
8691 (goto_handler_and_restore): Likewise.
8692
8693 2004-07-07 Andrew Pinski <apinski@apple.com>
8694
8695 PR tree-optimization/15777
8696 * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
8697
8698 * expr.c (expand_expr_real_1): Fix formating.
8699 BUFFER_REF and IN_EXPR are dead.
8700 * fold-const.c (non_lvalue): BUFFER_REF is dead.
8701 * tree-inline.c (estimate_num_insns_1): Likewise.
8702 * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
8703 IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
8704 * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
8705
8706 2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
8707
8708 * collect2.c (dump_file): Don't call cplus_demangle if
8709 HAVE_LD_DEMANGLE is defined.
8710 (main): Pass "--demangle" to ld if no_demangle is not 0 and
8711 HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
8712 if HAVE_LD_DEMANGLE is defined.
8713
8714 * configure.ac (--with-demangler-in-ld): Added
8715 (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
8716 --with-demangler-in-ld is used.
8717 * config.in: Regenerated.
8718 * configure: Likewise.
8719
8720 2004-07-07 Roger Sayle <roger@eyesopen.com>
8721
8722 * config/rs6000/rs6000.c (struct processor_costs): Add new fields
8723 for simple floating point operations "fp", double precision
8724 multiplication "dmul", and single and double precision division
8725 "sdiv" and "ddiv". Update all CPU variant tables as appropriate.
8726 (ppc630_cost): New table split from ppc620_cost, to distinguish
8727 differences in floating point latencies.
8728 (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
8729 (rs6000_rtx_costs): Add support for single and double precision
8730 floating point addition, subtraction, multiplication, division,
8731 fused-multiply-add, fused-multiply-sub, negation, absolute value
8732 and negative absolute value. Tweak MEM case to use prefered idiom.
8733
8734 2004-07-07 Richard Henderson <rth@redhat.com>
8735
8736 * tree-flow-inline.h (may_propagate_copy): Move...
8737 * tree-ssa-copy.c (may_propagate_copy): ... here. Fail if we
8738 attempt to copy between types requiring conversion.
8739 * tree-flow.h (may_propagate_copy): Update decl.
8740 * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
8741
8742 2004-07-07 Jakub Jelinek <jakub@redhat.com>
8743
8744 * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
8745 from -mtune= option.
8746
8747 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
8748
8749 * builtins.c: Rename movstr*, except for movstrict*, to
8750 movmem* and clrstr* to clrmem*.
8751 * expr.c: Likewise.
8752 * expr.h: Likewise.
8753 * genopinit.c: Likewise.
8754 * integrate.c: Likewise.
8755 * local-alloc.c: Likewise.
8756 * optabs.c: Likewise.
8757 * optabs.h: Likewise.
8758 * config/alpha/alpha.h: Likewise.
8759 * config/alpha/alpha.md: Likewise.
8760 * config/arm/arm-protos.h: Likewise.
8761 * config/arm/arm.c: Likewise.
8762 * config/arm/arm.md: Likewise.
8763 * config/avr/avr.md: Likewise.
8764 * config/c4x/c4x.c: Likewise.
8765 * config/c4x/c4x.md: Likewise.
8766 * config/frv/frv.md: Likewise.
8767 * config/i386/i386-protos.h: Likewise.
8768 * config/i386/i386.c: Likewise.
8769 * config/i386/i386.h: Likewise.
8770 * config/i386/i386.md: Likewise.
8771 * config/i860/i860.c: Likewise.
8772 * config/i860/i860.md: Likewise.
8773 * config/ip2k/ip2k.md: Likewise.
8774 * config/ip2k/libgcc.S: Likewise.
8775 * config/ip2k/t-ip2k: Likewise.
8776 * config/m32r/m32r.c: Likewise.
8777 * config/m32r/m32r.md: Likewise.
8778 * config/mcore/mcore.md: Likewise.
8779 * config/mips/mips.c: Likewise.
8780 * config/mips/mips.md: Likewise.
8781 * config/ns32k/ns32k.c: Likewise.
8782 * config/ns32k/ns32k.h: Likewise.
8783 * config/ns32k/ns32k.md: Likewise.
8784 * config/pa/pa.c: Likewise.
8785 * config/pa/pa.md: Likewise.
8786 * config/pdp11/pdp11.h: Likewise.
8787 * config/pdp11/pdp11.md: Likewise.
8788 * config/rs6000/rs6000.c: Likewise.
8789 * config/rs6000/rs6000.md: Likewise.
8790 * config/s390/s390-protos.h: Likewise.
8791 * config/s390/s390.c: Likewise.
8792 * config/s390/s390.md: Likewise.
8793 * config/sh/lib1funcs.asm: Likewise.
8794 * config/sh/sh.c: Likewise.
8795 * config/sh/sh.md: Likewise.
8796 * config/sh/t-sh: Likewise.
8797 * config/sparc/sparc.h: Likewise.
8798 * config/vax/vax.md: Likewise.
8799 * config/xtensa/xtensa.c: Likewise.
8800 * config/xtensa/xtensa.md: Likewise.
8801 * doc/invoke.texi: Likewise.
8802 * doc/md.texi: Likewise.
8803 * doc/rtl.texi: Likewise.
8804
8805 2004-07-07 Richard Sandiford <rsandifo@redhat.com>
8806
8807 PR target/16407
8808 * config/mips/mips-protos.h (mips_declare_common_object): Declare.
8809 * config/mips/mips.c (mips_declare_common_object): New function,
8810 mostly split out from...
8811 (mips_output_aligned_decl_common): ...here.
8812 * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
8813 (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
8814 * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
8815 rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object.
8816
8817 2004-07-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8818
8819 PR c/16392
8820 * function.c (assign_parms): Fix typo from previous change.
8821
8822 2004-07-07 Jason Merrill <jason@redhat.com>
8823
8824 PR c++/15815
8825 * doc/extend.texi (C++ Interface): Correct information and
8826 discourage use.
8827
8828 2004-07-07 Vladimir Makarov <vmakarov@redhat.com>
8829
8830 PR target/16130
8831 PR target/16142
8832 PR target/16143
8833 * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
8834 insn.
8835
8836 2004-07-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8837
8838 PR target/1679.
8839 * config/m32r/m32r.c (m32r_function_symbol): New function:
8840 Generate a symbol name RTX with the correct m32r specific flags
8841 set.
8842 (block_move_call): Use new function to generate correct symbol.
8843 * config/m32r/m32r-protos.h: Add prototype for new funcion.
8844 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
8845 function.
8846
8847 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
8848
8849 * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
8850 TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
8851 TYPE_BINFO_BASETYPE): Remove.
8852 (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
8853 to ...
8854 (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
8855 here.
8856 (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
8857 (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
8858 (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
8859 (struct tree_binfo): Rename base_types to base_binfos.
8860 * alias.c (record_component_aliases): Adjust BINFO macros.
8861 * dbxout.c (dbxout_type): Likewise.
8862 * dwarf2out.c (gen_member_die): Likewise.
8863 * sdbout.c (sdbout_one_type): Likewise.
8864 * tree-dump.c (deque_and_dump): Likewise.
8865 * config/i386/i386.c (classify_argument,
8866 contains_128bit_aligned_vector_p): Likewise.
8867
8868 2004-07-07 Nick Clifton <nickc@redhat.com>
8869
8870 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
8871 arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
8872
8873 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
8874
8875 * vec.h: Fix the example use.
8876
8877 2004-07-06 Richard Henderson <rth@redhat.com>
8878
8879 * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
8880 * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
8881 * tree-inline.c (copy_body_r, setup_one_parameter,
8882 initialize_inlined_parameters, expand_call_inline,
8883 declare_inline_vars): Don't check it.
8884 (expand_calls_inline): Remove old version, rename new version
8885 from gimple_expand_calls_inline.
8886 * tree-optimize.c (execute_gimple): Remove.
8887 (pass_gimple): Don't run anything.
8888
8889 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
8890
8891 * doc/sourcebuild.texi: Use semicolons instead of commas in
8892 section title.
8893
8894 2004-07-06 Richard Henderson <rth@redhat.com>
8895
8896 * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
8897 (sra_walk_modify_expr, scan_init): Likewise.
8898 (generate_element_zero): Check visited before scanning children.
8899 (generate_element_init): Set visited on error.
8900 (scalarize_init): Handle generate_element_init failure similar
8901 to use_block_copy.
8902
8903 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
8904
8905 * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
8906 (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
8907
8908 2004-07-06 Richard Henderson <rth@redhat.com>
8909
8910 * config/i386/i386.c (legitimize_pic_address): Make static.
8911 (legitimize_address): Handle CONST with TLS operand.
8912 (ix86_expand_move): Don't call legitimize_pic_address directly.
8913 * config/i386/i386-protos.h (legitimize_pic_address): Remove.
8914
8915 2004-07-06 Roger Sayle <roger@eyesopen.com>
8916
8917 * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
8918 (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
8919 (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
8920 is currently executed unconditionally, i.e. not in "else_bb".
8921
8922 2004-07-06 Steven Bosscher <stevenb@suse.de>
8923
8924 * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
8925 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8926 * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
8927 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8928 * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
8929 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8930 * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
8931 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8932 * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
8933 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8934 * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
8935 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8936 * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
8937 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8938 * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
8939 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8940
8941 2004-07-06 Daniel Berlin <dberlin@dberlin.org>
8942
8943 * dojump.c (do_jump): REFERENCE_EXPR is dead.
8944 * expr.c (expand_expr_real_1): Ditto.
8945 * tree-inline.c (estimate_num_insns_1): Ditto.
8946 * tree-pretty-print.c (dump_generic_node): Ditto.
8947 (op_symbol): Ditto.
8948 * tree.def: Ditto.
8949
8950 2004-07-06 Daniel Berlin <dberlin@dberlin.org>
8951
8952 * tree-ssa-pre.c (reference_node_pool): New pool.
8953 (find_or_generate_expression): Class 'r' is okay too.
8954 (create_value_expr_from): Ditto.
8955 (add_to_sets): LHS should not include vuses.
8956 (eliminate): Ditto.
8957 (compute_avail): Reverse ordering of tests.
8958 Valuize INDIRECT_REF as well.
8959
8960 2004-07-06 Richard Sandiford <rsandifo@redhat.com>
8961
8962 PR rtl-optimization/16380
8963 * loop.c (check_dbra_loop): Sink comparison instructions if they
8964 do something other than set cc0.
8965
8966 2004-07-06 James E Wilson <wilson@specifixinc.com>
8967
8968 * doc/interface.texi (longjmp and automatic variables): Delete
8969 paragraph recommending taking the address of a variable.
8970
8971 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
8972
8973 * vec.h (VEC_embedded_alloc): Remove.
8974 (VEC_embedded_size, VEC_embedded_init): New.
8975 (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
8976 MEM_STAT_INFO.
8977 (VEC_truncate): New.
8978 (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
8979 (vec_embedded_alloc): Remove.
8980 * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
8981 (vec_embedded_alloc): Remove.
8982
8983 2004-07-06 Mark Mitchell <mark@codesourcery.com>
8984
8985 * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
8986 (gt-langhooks.h): Remove.
8987
8988 2004-07-06 George Helffrich <george@gly.bris.ac.uk>
8989
8990 * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
8991
8992 2004-07-06 Eric Botcazou <ebotcazou@libertysurf.fr>
8993
8994 * config/sparc/sparc.c (get_pc_symbol): Rename into
8995 add_pc_to_pic_symbol.
8996 (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
8997 (load_pic_register): Account for previous changes.
8998 Use reg_names. Don't create the label twice.
8999 * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
9000 UNSPEC_LOAD_PCREL_SYM.
9001 (get_pc): Rename into load_pcrel_sym. Add predicate to
9002 operands. Remove condition.
9003
9004 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
9005
9006 * dbxout.c (dbxout_type): Don't test whether the binfo slot of
9007 RECORD, UNION & QUAL_UNION is actually a binfo.
9008
9009 * tree.h (TREE_VIA_VIRTUAL): Rename to ...
9010 (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
9011 (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
9012 * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
9013 * dwarf2out.c (add_data_member_location_attribute): Likewise.
9014 (gen_inheritance_die): Likewise.
9015 * tree-dump.c (deque_and_dump): Likewise.
9016 * doc/c-tree.texi (Binfos): Add under reconstruction note.
9017
9018 2004-07-06 Steven Bosscher <stevenb@suse.de>
9019
9020 * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
9021 Define.
9022 * config/mcore/mcore.md: Model memory latency with a simple DFA
9023 pipeline description instead of a define_function_unit.
9024
9025 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9026
9027 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
9028 * langhooks.h (var_mod_type_p): Likewise.
9029 * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
9030 * expr.c (count_type_elements): Properly handle return from
9031 array_type_nelts and properly test for overflow.
9032 * gimplify.c (gimplify_init_constructor): Properly handle return
9033 from array_type_nelts.
9034 (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
9035 * integrate.c (copy_decl_for_inlining): Correct comments.
9036 * tree-inline.c (remap_decl): Update comments, remove dead code,
9037 and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
9038 (remap_type): Only remap if variably modified by vars in function
9039 being inlined.
9040 (copy_body_r): Use compatible_type langhooks to see when can fold.
9041 (setup_one_parameter): Don't remap type.
9042 (inline_forbidden_p_1): Add arg to variably_modified_type_p.
9043 * tree.c (recompute_tree_invarant_for_addr_expr): Properly
9044 compute TREE_INVARIANT for decl case.
9045 (find_var_from_fn): New function.
9046 (variably_modified_type_p): Add arg and call new function.
9047 * tree.h (variably_modified_type_p): Add extra arg.
9048
9049 2004-07-05 Eric Botcazou <ebotcazou@libertysurf.fr>
9050
9051 * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
9052 (goto_handler_and_restore_v9): Delete disabled insn.
9053 (goto_handler_and_restore_v9_sp64): Likewise.
9054
9055 2004-07-05 Roger Sayle <roger@eyesopen.com>
9056
9057 * calls.c (load_register_parameters): Call expand_shift instead
9058 of expand_binop with ashl_optab (or other shift optab) directly.
9059 * expr.c (emit_group_load, emit_group_store): Likewise.
9060 * function.c (assign_parm_setup_block): Likewise.
9061 * stmt.c (shift_return_value): Likewise.
9062
9063 2004-07-05 Jakub Jelinek <jakub@redhat.com>
9064
9065 * expr.c (expand_assignment): Disable the bitfield += optimizations.
9066
9067 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
9068
9069 * doc/sourcebuild.texi: Revert previous patch.
9070
9071 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
9072
9073 * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
9074 TARGET_MEM_FUNCTIONS.
9075 * system.h: Poison TARGET_MEM_FUNCTIONS.
9076 * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
9077 bcmp_libfunc, bzero_libfunc): Remove.
9078 * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
9079 bzero_libfunc.
9080 * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
9081 * doc/standards.texi: Don't mention calling BSD string functions.
9082 * doc/invoke.texi: Likewise. Mention that memmove may be called.
9083 * config/vax/t-memfuncs: New.
9084 * config/memcmp.c, config/memcpy.c, config/memmove.c,
9085 config/memset.c: New.
9086 * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
9087 * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
9088 vax/t-memfuncs.
9089 * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
9090 config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
9091 config/elfos.h, config/gnu.h, config/h8300/h8300.h,
9092 config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
9093 config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
9094 config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
9095 config/netbsd.h, config/openbsd.h, config/pa/pa.h,
9096 config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
9097 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
9098 config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
9099
9100 2004-07-05 Richard Henderson <rth@redhat.com>
9101
9102 * function.c (assign_parm_setup_reg): Properly rename variables in
9103 FUNCTION_ARG_CALLEE_COPIES section.
9104
9105 2004-07-05 Zack Weinberg <zack@codesourcery.com>
9106
9107 * tree-mudflap.c: Include cgraph.h.
9108 (mf_init_extern_trees): Rename to mudflap_init. Export.
9109 Rewrite to create synthetic declarations instead of looking
9110 up declarations from mf-runtime.h.
9111 (mf_make_builtin, mf_make_cache_struct_type): New functions.
9112 (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
9113 Correct commentary.
9114 (execute_mudflap_function_decls, mudflap_register_call):
9115 Don't call mf_init_extern_trees.
9116 (mudflap_finish_file): Use cgraph_build_static_cdtor.
9117
9118 * tree-mudflap.h: Update prototypes.
9119 * c-mudflap.c: Delete file.
9120 * c-common.c: Include tree-mudflap.h.
9121 (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
9122 * Makefile.in: Remove all references to c-mudflap.o.
9123 Update dependencies.
9124
9125 2004-07-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9126
9127 * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
9128 displacements with the spatial-locality cache-control completer.
9129
9130 2004-07-05 Zack Weinberg <zack@codesourcery.com>
9131
9132 * langhooks.c: Don't include gt-langhooks.h.
9133 (var_labelno): Delete.
9134 (lhd_set_decl_assembler_name): Do not append a distinguishing
9135 number to file-scope internal-linkage declarations for the first
9136 input file, even if they have DECL_CONTEXT set. Use DECL_UID of
9137 the declaration itself (if at block scope), or its containing
9138 TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
9139 number.
9140
9141 * opts.c (cur_in_fname): New global.
9142 * opts.h: Declare it.
9143 * tree.c: Include opts.h.
9144 (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
9145 DECL_UID equal to cur_in_fname.
9146 (copy_node_stat): Do not change DECL_UID when copying a
9147 TRANSLATION_UNIT_DECL.
9148 (build_common_tree_nodes): Adjust next_decl_uid to reserve the
9149 range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
9150
9151 * c-decl.c (c_static_assembler_name): Delete.
9152 * c-tree.h (c_static_assembler_name): Delete prototype.
9153 * c-lang.c, objc/objc-lang.c: Don't override
9154 LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
9155
9156 * Makefile.in (tree.o): Update dependencies.
9157 (GTFILES): Remove langhooks.c.
9158
9159 2004-07-05 Roger Sayle <roger@eyesopen.com>
9160
9161 * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
9162 by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
9163 Normalize "X % C" as "X % -C" for signed modulus and negative C.
9164 Optimize "X % -Y" as "X % Y" for signed modulus.
9165 <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
9166 into "((unsigned) X % Y) == 0".
9167
9168 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
9169
9170 * sourcebuild.texi (Config Fragments): Use @comma{} in
9171 cross-reference to section title.
9172
9173 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9174
9175 * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
9176 * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
9177 (gimplify_target_expr, gimplify_expr): Likewise.
9178 (copy_if_shared_r): No longer need special case for BIND_EXPR.
9179 (unshare_body, unvisit_body): Only look at nested if BODY_P is
9180 whole function.
9181 (gimplify_compound_lval): See if we can strip any useless conversion.
9182 (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
9183 from RHS, not LHS.
9184 (gimplify_modify_expr_to_memset): Likewise.
9185 (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
9186 * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
9187 (declare_inline_vars): Likewise.
9188 (walk_type_fields): New function.
9189 (walk_tree): Use it.
9190 * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
9191
9192 * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
9193 (sra_walk_modify_expr): Allow init function to fail.
9194 (scan_init): Now returns bool.
9195 (generate_element_init): If can't understand INIT, return false.
9196 (scalarize_init): Return false if generate_element_init does.
9197
9198 * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
9199 print bounds.
9200
9201 * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
9202 bounds if bounds aren't constant.
9203
9204 * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
9205
9206 * function.c, langhooks-def.h, langhooks.h: Move max_size hook
9207 to type hooks; remove bogus PARAMS.
9208
9209 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
9210
9211 * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
9212 * dwarf2out.c (add_data_member_location_attribute): Check for
9213 TREE_BINFO.
9214 * tree.c (tree_node_kinds): Add "binfos".
9215 (binfo_lang_slots): New.
9216 (make_node_stat): Add TREE_BINFO.
9217 (make_tree_binfo_stat): New.
9218 (tree_node_structure): Add TREE_BINFO.
9219 * tree.def (TREE_BINFO): New.
9220 * tree.h (REC_OR_UNION_CHECK): Rename to ...
9221 (RECORD_OR_UNION_CHECK): ... here.
9222 (NOT_RECORD_OR_UNION_CHECK): New.
9223 (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
9224 (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
9225 RECORD_OR_UNION_CHECK.
9226 (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
9227 (TYPE_LANG_SLOT_1): New.
9228 (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
9229 BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
9230 BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
9231 (BINFO_ELTS): Remove.
9232 (BINFO_LANG_SLOT): New.
9233 (struct tree_binfo): New.
9234 (binfo_lang_slots): Declare.
9235 (enum tree_node_structure_enum): Add TS_BINFO.
9236 (union tree_node): Add binfo.
9237 (make_tree_binfo_stat): Declare.
9238 (make_tree_binfo): New.
9239 (enum tree_node_kind): Add binfo_kind.
9240
9241 * objc/objc-act.c (start_class, objc_declare_protocols,
9242 start_protocols): Use TYPE_LANG_SLOT_1.
9243 * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
9244 to ...
9245 (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
9246 (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
9247 CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
9248 PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
9249
9250 2004-07-05 Steven Bosscher <stevenb@suse.de>
9251
9252 * rtl.h (struct rtx_def): Remove the integrated flag.
9253 Use the return_val flag for MEM_SCALAR_P.
9254 Reshuffle and update flags in CLEAR_RTX_FLAGS.
9255
9256 2004-07-05 Richard Sandiford <rsandifo@redhat.com>
9257
9258 PR target/16357
9259 * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
9260 to mips_expand_unaligned_load, mips_expand_unaligned_store, and
9261 move_by_pieces.
9262
9263 2004-07-05 Josef Zlomek <zlomekj@suse.cz>
9264
9265 * var-tracking.c: Fix some comments.
9266 (frame_stack_adjust): New.
9267 (vt_stack_adjustments): Init stack_adjust of entry block to
9268 minus stack adjustment of function prologue.
9269 (adjust_stack_reference): Do not adjust if adjustment == 0.
9270 (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
9271 (emit_notes_in_bb): Likewise.
9272 (vt_add_function_parameters): Do not adjust locations of
9273 function arguments.
9274 (vt_initialize): Compute the stack adjustment of function
9275 prologue and offset the initial "location" of frame_base_decl
9276 from the stack pointer after prologue.
9277
9278 2004-07-04 Richard Henderson <rth@redhat.com>
9279
9280 * function.c (struct assign_parm_data_all): New.
9281 (struct assign_parm_data_one): New.
9282 (assign_parms_initialize_all, assign_parms_augmented_arg_list,
9283 assign_parm_find_data_types, assign_parms_setup_varargs,
9284 assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
9285 assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
9286 assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
9287 assign_parm_setup_block, assign_parm_setup_reg,
9288 assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
9289 (assign_parms): ... here.
9290
9291 2004-07-04 Daniel Berlin <dberlin@dberlin.org>
9292
9293 * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
9294 now are bitmap_set_t's.
9295 (bitmap_insert_into_set): No point in inserting the value if
9296 it's invariant.
9297 (bitmap_set_contains): New function.
9298 (bitmap_set_replace_value): Add comment on why we do it
9299 this way.
9300 (set_contains): Removed.
9301 (bitmap_set_subtract_from_value_set): New name of
9302 set_subtract now that it's arguments are two different
9303 types of sets.
9304 Update callers.
9305 (bitmap_find_leader): Change algorithm used.
9306 (find_or_generate_expression): Update use of functions for new
9307 bitmap sets.
9308 (create_expression_by_pieces): Ditto.
9309 (insert_aux): Ditto.
9310 (insert): Ditto.
9311 (add_to_sets): Ditto.
9312 (init_pre): Ditto.
9313 (execute_pre): Ditto.
9314 (compute_avail): Ditto.
9315 Also ignore virtual phis.
9316
9317 2004-07-04 Richard Sandiford <rsandifo@redhat.com>
9318
9319 * combine.c (simplify_comparison): Fix comment typo.
9320
9321 2004-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
9322
9323 * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
9324 into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
9325 (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
9326 (output_restore): Change parameter from 'insn' to 'pat'.
9327 (output_return): Adjust call to output_restore.
9328 (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
9329 Adjust call to output_restore.
9330
9331 2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
9332
9333 * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
9334 and assert system is bsd.
9335
9336 2004-07-04 Richard Sandiford <rsandifo@redhat.com>
9337
9338 * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
9339 (TARGET_SWITCHES): Remove -mdebugc.
9340 * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
9341 (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
9342 (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
9343 (sle_[sd]i_reg): Delete.
9344
9345 2004-07-04 Steven Bosscher <stevenb@suse.de>
9346
9347 * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
9348 Define.
9349 * config/iq2000/iq2000.md: Translate old pipeline description to an
9350 equivalent new one.
9351
9352 2004-07-04 Roger Sayle <roger@eyesopen.com>
9353
9354 * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
9355 Ensure the replacement rhs is valid gimple before performing
9356 the substitution. Return false if these sanity checks fail.
9357 (fold_stmt): Only set changed to true, if set_rhs returns true.
9358 (execute_fold_all_builtins): Only call modify_stmt if set_rhs
9359 succeeds.
9360
9361 2004-07-04 Richard Henderson <rth@redhat.com>
9362
9363 PR c/16348
9364 * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
9365
9366 2004-07-04 Mark Mitchell <mark@codesourcery.com>
9367
9368 * configure.ac (ranlib_flags): New variable.
9369 * Makefile.in (RANLIB_FLAGS): New variable.
9370 (libbackend.a): Use it.
9371 * configure: Regenerated.
9372
9373 2004-07-04 Roger Sayle <roger@eyesopen.com>
9374
9375 * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
9376 a "sign mask" instead of using ashr_optab directly.
9377
9378 2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
9379
9380 * doc/cpp.texi: Don't document what we do for ill-formed expressions.
9381 * doc/cppopts.texi: Clarify processing of command-line defines.
9382
9383 2004-07-04 Gerald Pfeifer <gerald@pfeifer.com>
9384
9385 * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
9386
9387 2004-07-04 Richard Henderson <rth@redhat.com>
9388
9389 * rtl.def (ADDRESSOF): Remove.
9390 * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
9391 (find_base_term, memrefs_conflict_p): Likewise.
9392 * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
9393 (fold_rtx, cse_insn, set_live_p): Likewise.
9394 * dwarf2out.c (mem_loc_descriptor): Likewise.
9395 (add_location_or_const_value_attribute): Likewise.
9396 * emit-rtl.c (copy_insn_1): Likewise.
9397 * explow.c (memory_address): Likewise.
9398 * expmed.c (store_split_bit_field): Likewise.
9399 * expr.c (expand_expr_real_1): Likewise.
9400 * function.c (instantiate_decl
9401 (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
9402 * genrecog.c (preds, validate_pattern): Likewise.
9403 * integrate.c (copy_rtx_and_substitute): Likewise.
9404 * recog.c (general_operand, register_operand): Likewise.
9405 (memory_address_p): Likwise.
9406 * reload1.c (eliminate_regs, elimination_effects): Likewise.
9407 * rtl.c (copy_rtx): Likewise.
9408 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
9409 (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
9410 * rtlhooks.c (gen_lowpart_general): Likewise.
9411 * stmt.c (expand_asm_operands): Likewise.
9412 * web.c (entry_register, replace_ref, web_main): Likewise.
9413 * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
9414 alpha_expand_block_move, alpha_expand_block_clear): Likewise.
9415 * config/arm/arm.c (thumb_rtx_costs): Likewise.
9416 * config/c4x/c4x.c (c4x_valid_operands): Likewise.
9417 * config/frv/frv.c (move_destination_operand, move_source_operand,
9418 condexec_dest_operand, condexec_source_operand,
9419 condexec_memory_operand): Likewise.
9420 * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
9421 * config/ia64/ia64.c (general_xfmode_operand): Likewise.
9422 (destination_xfmode_operand): Likewise.
9423 * config/mips/mips.h (PREDICATE_CODES): Likewise.
9424 * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
9425 * config/s390/s390.c (general_s_operand): Likewise.
9426 * config/s390/s390.md (mov*): Likewise.
9427 * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
9428
9429 * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
9430 * expr.c (expand_expr_real_1): Likewise.
9431 * stmt.c (expand_decl): Likewise.
9432 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
9433
9434 * function.c (struct fixup_replacement, struct insns_for_mem_entry,
9435 postponed_insns, put_var_into_stack, put_reg_into_stack,
9436 schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
9437 fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
9438 fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
9439 walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
9440 gen_mem_addressof, flush_addressof, put_addressof_into_stack,
9441 purge_bitfield_addressof_replacements, purge_addressof_replacements,
9442 purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
9443 struct insns_for_mem_walk_info, insns_for_mem_walk,
9444 compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
9445 setjmp_protect_args): Remove.
9446 (push_function_context_to): Don't handle var_refs_queue.
9447 (pop_function_context_from, free_after_compilation): Likewise.
9448 (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
9449 (assign_parms, allocate_struct_function): Likewise.
9450 (use_register_for_decl): New.
9451 (expand_function_end): Don't setjmp_protect.
9452 * function.h (struct emit_status): Update commentary.
9453 (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
9454 (max_parm_reg, parm_reg_stack_loc): Remove.
9455 * passes.c (DFI_addressof): Remove.
9456 (dump_file_info): Remove addressof.
9457 (rest_of_handle_addressof): Remove.
9458 (rest_of_compilation): Don't call it.
9459 * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
9460 * stmt.c (expand_decl): Use use_register_for_decl.
9461 * tree.h: Update decls.
9462 * web.c (mark_addressof): Remove.
9463 * doc/invoke.texi (-dF): Remove.
9464
9465 2004-07-03 Richard Henderson <rth@redhat.com>
9466
9467 * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
9468 instead of gen_mem_addressof.
9469 * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
9470 TImode output register.
9471
9472 2004-07-03 Richard Henderson <rth@redhat.com>
9473
9474 PR tree-optimization/16341
9475 * tree-sra.c (sra_walk_function): Increment to next stmt before
9476 processing the current stmt.
9477 (sra_insert_after): Always use BSI_SAME_STMT.
9478
9479 2004-07-03 Richard Henderson <rth@redhat.com>
9480
9481 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
9482 fp plus with minus.
9483
9484 2004-07-03 Joseph S. Myers <jsm@polyomino.org.uk>
9485
9486 * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
9487 with tree_int_cst_equal.
9488
9489 2004-07-03 Andreas Schwab <schwab@suse.de>
9490
9491 * config/ia64/ia64.md: Define new attribute "empty".
9492 (prologue_use, nop_x, insn_group_barrier): Set it.
9493
9494 * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
9495 skip over "empty" insns.
9496
9497 2004-07-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9498
9499 * tree-inline.c (initialize_inlined_parameters): Pass proper function
9500 context to gimplify_body.
9501 (walk_tree): Don't walk into types twice.
9502 (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
9503
9504 * tree-sra.c (generate_element_init): Remove any useless conversions.
9505
9506 * gimplify.c (gimplify_conversion): Remove stripping useless
9507 conversions from here.
9508 (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
9509 (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
9510 Unshare before substituting PLACEHOLDER_EXPR.
9511 (gimplify_modify_expr_to_memset): Likewise.
9512 Pass address of TO to memset, not TO itself.
9513 (gimplify_init_constructor): Make copy of OBJECT so we have it each
9514 time we make an expression (to match a PLACEHOLDER_EXPR).
9515
9516 * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
9517 VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
9518 * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
9519 * tree-ssa-dom.c (local_fold): Likewise.
9520
9521 * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
9522 * langhooks.h (strct lang_hooks): New field type_max_size.
9523 * function.c (assign_temp): Call it.
9524
9525 2004-07-03 Steven Bosscher <stevenb@suse.de>
9526
9527 * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
9528 * config/sh/sh.md: Convert the SH1 pipeline description to
9529 a DFA model.
9530
9531 2004-07-02 Zack Weinberg <zack@codesourcery.com>
9532
9533 * c-decl.c (struct c_binding): Remove contour field; add
9534 depth, invisible, nested fields.
9535 (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
9536 (B_IN_EXTERNAL_SCOPE): New convenience macros.
9537 (bind): Add invisible and nested arguments. Initialize
9538 new fields of struct c_binding; adjust loop scanning for
9539 insertion point.
9540 (free_binding_and_advance): Clear structure with memset.
9541 (pop_scope): Adjust to match. Set DECL_CONTEXT on everything
9542 in file scope, even if it's in external scope too.
9543 (pushdecl): Adjust to match. Create invisible file-scope
9544 declarations for block-scope forward declarations of static functions.
9545 (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
9546 (undeclared_variable, lookup_label, declare_label, define_label)
9547 (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
9548 (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
9549 (store_parm_decls_oldstyle): Adjust to match.
9550 (diagnose_mismatched_decls): Correct handling of linkage clashes.
9551 (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
9552
9553 * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
9554 (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
9555
9556 2004-07-02 Richard Henderson <rth@redhat.com>
9557
9558 * c-decl.c (grokdeclarator): Don't frob current_function_decl
9559 around variable_size.
9560 (set_decl_nonlocal): Remove.
9561 (store_parm_decls): Add stmts for pending sizes.
9562 * calls.c (calls_function, calls_function_1): Remove.
9563 (precompute_arguments): Don't call it.
9564 * cfgexpand.c (set_save_expr_context): Remove.
9565 (tree_expand_cfg): Don't call it.
9566 * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
9567 (dwarf2out_finish): Likewise.
9568 * expr.c (emit_block_move): Adjust addresses to BLKmode.
9569 (store_constructor): Don't pre-evaluate SAVE_EXPR.
9570 (safe_from_p): Don't queue SAVE_EXPRs.
9571 (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
9572 or build plain VAR_DECLs.
9573 * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
9574 (fold): Likewise.
9575 (fold_checksum_tree): Don't special-case SAVE_EXPR.
9576 * function.c (free_after_compilation): Don't clear x_save_expr_regs.
9577 (put_var_into_stack): Don't handle SAVE_EXPR.
9578 (gen_mem_addressof): Likewise.
9579 * function.h (struct function): Remove x_save_expr_regs.
9580 (save_expr_regs): Remove.
9581 * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
9582 * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
9583 * stor-layout.c (variable_size): Don't set it.
9584 (force_type_save_exprs, force_type_save_exprs_1): Remove.
9585 * tree-inline.c (remap_save_expr): Remove fn argument. Update
9586 all callers. Don't set SAVE_EXPR_CONTEXT.
9587 * tree-inline.h (remap_save_expr): Update decl.
9588 * tree.c (save_expr): Update build size.
9589 (first_rtl_op): Don't handle SAVE_EXPR.
9590 (unsave_expr_1, contains_placeholder_p): Likewise.
9591 (decl_function_context): Likewise.
9592 * tree.def (SAVE_EXPR): Remove args 1 and 2.
9593 * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
9594 (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
9595
9596 2004-07-03 Joseph S. Myers <jsm@polyomino.org.uk>
9597
9598 * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
9599 doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
9600 doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
9601 doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
9602 some first-person references and patronizing comments. Based on
9603 printed manual.
9604 * doc/invoke.texi: Don't reference fortran@gnu.org.
9605 * doc/trouble.texi (Warning when a non-void function value is
9606 ignored): Rewrite. From Russ Allbery and Chris Devers.
9607
9608 2004-07-02 Daniel Berlin <dberlin@dberlin.org)
9609
9610 * tree-ssa-pre.c (bitmap_set_t): New.
9611 (bb_value_sets): avail_out is now a bitmap_set_t.
9612 (bitmap_find_leader): New function.
9613 (bitmap_value_insert_into_set): Ditto.
9614 (bitmap_set_copy): Ditto.
9615 (bitmap_value_replace_in_set): Ditto.
9616 (bitmap_set_contains_value): Ditto.
9617 (bitmap_set_new): Ditto.
9618 (bitmap_set_pool): New pool.
9619 (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
9620 (insert_aux): Ditto.
9621 (add_to_sets): Ditto.
9622 (compute_avail): Ditto
9623 (eliminate): Ditto.
9624 (init_pre): Ditto.
9625 (fini_pre): Ditto.
9626 (execute_pre): Ditto.
9627
9628 2004-07-02 Roger Sayle <roger@eyesopen.com>
9629
9630 * config/rs6000/rs6000.c (struct processor_costs): New structure
9631 used to hold instruction latencies/sizes for processor types.
9632 (rs6000_cost): New global variable pointing to current CPU's costs.
9633 (rs6000_override_options): Initialize rs6000_cost to point to the
9634 appropriate cost table based upon rs6000_cpu and optimize_size.
9635 (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
9636 timings inline.
9637
9638 2004-07-02 Richard Henderson <rth@redhat.com>
9639
9640 * expmed.c (make_tree): Don't use SET_DECL_RTL.
9641
9642 2004-07-02 Steven Bosscher <stevenb@suse.de>
9643
9644 * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
9645
9646 2004-07-01 Richard Henderson <rth@redhat.com>
9647
9648 * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
9649 (alpha_gp_save_rtx): Use assign_stack_local instead of
9650 gen_mem_addressof.
9651
9652 2004-07-01 Richard Henderson <rth@redhat.com>
9653
9654 * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
9655 (alpha_rtx_cost_data): Update to match.
9656 (alpha_rtx_cost_size): New.
9657 (alpha_rtx_costs): Honor optimize_size.
9658
9659 2004-07-01 Richard Henderson <rth@redhat.com>
9660
9661 * gimple-low.c (lower_function_body): Don't reset_block_changes here.
9662 * cfgexpand.c (tree_expand_cfg): Do it here.
9663 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
9664 * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
9665 * config/mips/mips.c (mips_output_mi_thunk): And here.
9666 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
9667 * config/sh/sh.c (sh_output_mi_thunk): And here.
9668 * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
9669
9670 2004-07-01 Richard Henderson <rth@redhat.com>
9671
9672 * tree.def (RTL_EXPR): Remove.
9673 * c-typeck.c (lvalue_p): Don't handle it.
9674 * expr.c (safe_from_p): Likewise.
9675 (expand_expr_real_1): Likewise.
9676 * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
9677 (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
9678 * gengtype.c (adjust_field_tree_exp): Likewise.
9679 * stmt.c (warn_if_unused_value): Likewise.
9680 * tree-gimple.c (recalculate_side_effects): Likewise.
9681 * tree-pretty-print.c (dump_generic_node): Likewise.
9682 * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
9683 (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
9684 * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
9685
9686 * stmt.c (struct stmt_status): Remove x_last_expr_type,
9687 x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
9688 (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
9689 (expand_expr_stmt): Merge with expand_expr_stmt_value. Remove
9690 all the bits that tracked last_expr.
9691 (expand_end_bindings): Don't track last_expr.
9692 (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
9693 (clear_last_expr): Remove.
9694 (expand_asm): Don't call it.
9695 (expand_asm_operands, expand_end_cond): Likewise.
9696 (expand_naked_return, expand_null_return_1): Likewise.
9697 * c-typeck.c (c_begin_compound_stmt): Likewise.
9698 * cfgexpand.c (expand_block): Use expand_expr_stmt.
9699 * expr.c (expand_expr_real_1): Likewise.
9700 * tree.h: Update prototypes.
9701
9702 * function.h (struct sequence_stack): Remove sequence_rtl_expr.
9703 (struct emit_status): Remove sequence_rtl_expr.
9704 (struct function): Remove x_rtl_expr_chain.
9705 (seq_rtl_expr, rtl_expr_chain): Remove.
9706 * function.c (struct temp_slot): Remove rtl_expr.
9707 (assign_stack_temp_for_type): Don't set it.
9708 (free_temp_slots, pop_temp_slots): Don't check it.
9709 (free_after_compilation): Don't clear x_rtl_expr_chain.
9710 (fixup_var_refs): Don't search it.
9711 (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
9712 * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
9713 or seq_rtl_expr.
9714 (push_topmost_sequence): Likewise.
9715 (end_sequence, init_emit): Likewise.
9716 (start_sequence_for_rtl_expr): Remove.
9717 * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
9718 * rtl.h (preserve_rtl_expr_result): Remove.
9719
9720 2004-07-02 Kazu Hirata <kazu@cs.umass.edu>
9721
9722 * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
9723 tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
9724 typos.
9725
9726 2004-07-02 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9727
9728 * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
9729 (STANDARD_STARTFILE_PREFIX_2): Define.
9730 (standard_startfile_prefix_1): Initialize to
9731 STANDARD_STARTFILE_PREFIX_1.
9732 (standard_startfile_prefix_2): Initialize to
9733 STANDARD_STARTFILE_PREFIX_2.
9734 * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
9735 (STANDARD_STARTFILE_PREFIX_1): Define.
9736 (STANDARD_STARTFILE_PREFIX_2): Define.
9737 * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
9738 (STANDARD_STARTFILE_PREFIX_2): Document.
9739
9740 2004-07-01 Richard Henderson <rth@redhat.com>
9741
9742 * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
9743 in order to disable scalarization. Instead set a flag and wait
9744 for a candidate decl.
9745
9746 2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk>
9747
9748 * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
9749 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
9750 Use terminology "testsuite" and "enumerated".
9751
9752 2004-07-01 Richard Henderson <rth@redhat.com>
9753
9754 * dwarf2out.c (reg_save): Use INVALID_REGNUM.
9755 (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
9756 (initial_return_save): Likewise.
9757 (flush_queued_reg_saves): Remap register numbers.
9758 (dwarf2out_return_reg): Likewise.
9759
9760 2004-07-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9761
9762 * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
9763
9764 * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
9765 access functions for lower bound and element size and only output
9766 if lower bound nonzero or element size not same as that of type.
9767 (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
9768
9769 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
9770
9771 * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
9772
9773 2004-07-01 Per Bothner <per@bothner.com>
9774
9775 * final.c (final): Fix typo reported by Aaron W. LaFramboise.
9776
9777 2004-07-01 Jakub Jelinek <jakub@redhat.com>
9778
9779 * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
9780 bitfields as well. STRIP_NOPS from src operand and PLUS_EXPR's
9781 first operand. Don't optimize if the bitfield is volatile.
9782
9783 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
9784
9785 * c-pretty-print.c (pp_c_postfix_expression): Handle
9786 floating-point comparison operators.
9787 (pp_c_expression): Pass floating-point comparison
9788 operators to pp_c_postfix_expression.
9789
9790 2004-07-01 Roger Sayle <roger@eyesopen.com>
9791
9792 * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
9793 rtx_cost instead of "had_mult" to determine whether the transformed
9794 expression is cheaper than the original.
9795
9796 2004-07-01 Jerry Quinn <jlquinn@optonline.net>
9797
9798 * alias.c (get_alias_set, canon_rtx, get_addr,
9799 nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
9800 Use MEM_P.
9801 * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
9802 expand_builtin): Likewise.
9803 * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
9804 Likewise.
9805 * combine.c (can_combine_p, combinable_i3pat, try_combine,
9806 find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
9807 rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
9808 record_dead_and_set_regs_1, get_last_value_validate,
9809 mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
9810 * cse.c (check_dependence, canon_hash, equiv_constant,
9811 gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
9812 cse_around_loop, cse_check_loop_start, cse_set_around_loop,
9813 count_reg_usage): Likewise.
9814 * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
9815 cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
9816 cselib_record_sets): Likewise.
9817 * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
9818 dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
9819 * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
9820 * df.c (df_uses_record): Likewise.
9821 * dojump (do_jump): Likewise.
9822 * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
9823 loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
9824 decl_start_label): Likewise.
9825 * emit-rtl.c (gen_complex_constant_part, gen_highpart,
9826 operand_subword, change_address_1, make_safe_from): Likewise.
9827 * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
9828 stabilize, force_not_mem): Likewise.
9829 * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
9830 expand_mult_const, expand_divmod, emit_store_flag): Likewise.
9831 * expr.c (convert_move, convert_modes, emit_block_move,
9832 emit_group_load, emit_group_store, clear_storage, emit_move_insn,
9833 emit_move_insn_1, expand_assignment, store_expr,
9834 store_constructor_field, store_constructor, store_field,
9835 force_operand, safe_from_p, expand_expr_real_1, expand_increment):
9836 Likewise.
9837 * final.c (cleanup_subreg_operands, alter_subreg,
9838 get_mem_expr_from_op): Likewise.
9839 * flow.c (notice_stack_pointer_modification_1,
9840 init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
9841 Likewise.
9842 * function.c (mark_temp_addr_taken, preserve_temp_slots,
9843 preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
9844 optimize_bit_field, flush_addressof, purge_addressof_1,
9845 instantiate_decl, instantiate_virtual_regs_1, assign_parms,
9846 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
9847 keep_stack_depressed): Likewise.
9848 * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
9849 noce_process_if_block, find_memory): Likewise.
9850 * integrate.c (subst_constants, allocate_initial_values): Likewise.
9851 * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
9852 update_equiv_regs): Likewise.
9853 * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
9854 maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
9855 * optabs.c (expand_abs, emit_unop_insn): Likewise.
9856 * passes.c (rest_of_handle_final): Likewise.
9857 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
9858 move2add_note_store): Likewise.
9859 * ra-build.c (detect_remat_webs): Likewise.
9860 * ra-debug.c (dump_static_insn_cost): Likewise.
9861 * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
9862 * recog.c (validate_change, apply_change_group, cancel_changes,
9863 validate_replace_rtx_1, general_operand, register_operand,
9864 nonmemory_operand, push_operand, pop_operand, memory_operand,
9865 indirect_operand, asm_operand_ok, offsettable_memref_p,
9866 offsettable_nonstrict_memref_p, constrain_operands,
9867 store_data_bypass_p): Likewise.
9868 * reg-stack.c (subst_stack_regs_pat): Likewise.
9869 * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
9870 copy_cost, reg_scan_mark_refs): Likewise.
9871 * regmove.c (optimize_reg_copy_3, stack_memref_p,
9872 combine_stack_adjustments_for_block): Likewise.
9873 * regrename.c (copyprop_hardreg_forward_1): Likewise.
9874 * reload.c (can_reload_into, push_reload, decompose, immune_p,
9875 find_reloads, find_reloads_address, find_reloads_address_1,
9876 reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
9877 find_equiv_reg): Likewise.
9878 * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
9879 reload_as_needed, choose_reload_regs, emit_input_reload_insns,
9880 do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
9881 delete_address_reloads): Likewise.
9882 * resource.c (mark_referenced_resources): Likewise.
9883 * rtlanal.c (get_jump_table_offset, count_occurrences,
9884 reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
9885 reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
9886 num_sign_bit_copies1): Likewise.
9887 * rtlhooks.c (gen_lowpart_general): Likewise.
9888 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9889 * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
9890 sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
9891 sdbout_global_decl): Likewise.
9892 * simplify-rtx.c (simplify_subreg): Likewise.
9893 * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
9894 expand_anon_union_decl, expand_end_case_type): Likewise.
9895 * unroll.c (calculate_giv_inc): Likewise.
9896 * var-tracking.c (stack_adjust_offset_pre_post,
9897 bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
9898 add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
9899 vt_add_function_parameters): Likewise.
9900 * varasm.c (make_var_volatile, notice_global_symbol,
9901 assemble_external, decode_addr_const, mark_weak,
9902 default_encode_section_info): Likewise.
9903
9904 2004-07-01 Steven Bosscher <stevenb@suse.de>
9905
9906 * stmt.c (check_seenlabel): Remove.
9907 (pushcase, pushcase_range, expand_end_case_type): Don't call it.
9908
9909 2004-07-01 Richard Henderson <rth@redhat.com>
9910
9911 * function.h (struct function): Remove x_function_call_count.
9912 (function_call_count): Remove.
9913 * calls.c (expand_call): Don't set it.
9914 * integrate.c (copy_rtx_and_substitute): Likewise.
9915
9916 * function.h (struct function): Remove x_cleanup_label.
9917 (cleanup_label): Remove.
9918 * stmt.c (expand_value_return): Don't use it.
9919 * function.c (free_after_compilation): Don't set it.
9920 (expand_function_start): Likewise. Remove parms_have_cleanups arg.
9921 * cfgexpand.c (tree_expand_cfg): Update call.
9922 * tree.h (expand_function_start): Update decl.
9923
9924 2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk>
9925
9926 PR c/1027
9927 * c-lang.c (c_initialize_diagnostics): Move from here ...
9928 * c-objc-common.c: ... to here. Include "c-pretty-print.h".
9929 (c_tree_printer): Use pretty-printer to format %T.
9930 * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
9931 before '*' if not C++.
9932 (pp_c_direct_abstract_declarator): Don't try to print array upper
9933 bound for flexible array members.
9934 * c-tree.h: Include "diagnostic.h".
9935 (c_initialize_diagnostics): Declare.
9936 * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
9937 * c-format.c (format_type_warning): New function. Improve
9938 diagnostics for incorrect format argument types.
9939 (check_format_types): Use it. Add two parameters. Use the
9940 TYPE_MAIN_VARIANT of wanted_type.
9941 (check_format_info_main): Pass new parameters to
9942 check_format_types.
9943 (struct format_wanted_type): Update comment.
9944
9945 2004-07-01 Nick Clifton <nickc@redhat.com>
9946
9947 * target.h (struct gcc_target): Add new field to struct cxx:
9948 import_export_class.
9949 * target-def.h (TARGET_CXX): Initialise the new field.
9950 (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
9951 the new field.
9952 * doc/tm.texi: Document the new target hook.
9953
9954 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
9955
9956 * builtins.c (fold_builtin_classify): Fix typo.
9957
9958 2004-07-01 Richard Henderson <rth@redhat.com>
9959
9960 * function.c (identify_blocks, identify_blocks_1): Remove.
9961 * function.h (identify_blocks): Remove.
9962 * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
9963
9964 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
9965
9966 * builtins.c (fold_builtin_classify): New.
9967 (fold_builtin_unordered_cmp): Fix commentary.
9968 (fold_builtin): Use it.
9969 * builtins.def: Define builtins for isnan,
9970 isnanf, isnanl, finite, finitef, finitel,
9971 isinf, isinff, isinfl.
9972
9973 2004-07-01 Richard Henderson <rth@redhat.com>
9974
9975 * function.h (struct function): Remove dont_emit_block_notes.
9976 * gimple-low.c (lower_function_body): Don't set it.
9977 * cfgexpand.c (expand_block): Don't check it.
9978 * cfglayout.c (insn_locators_initialize): Likewise.
9979 * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
9980 * passes.c (rest_of_compilation): Likewise.
9981 * stmt.c (expand_start_bindings_and_block): Likewise.
9982 (expand_end_bindings): Likewise.
9983
9984 2004-07-01 Richard Henderson <rth@redhat.com>
9985
9986 * cgraph.h (cgraph_build_static_cdtor): Declare.
9987 * cgraphunit.c (cgraph_build_static_cdtor): New.
9988 * c-objc-common.c (build_cdtor): Use it.
9989 * coverage.c (create_coverage): Likewise.
9990 * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
9991 * optabs.c (init_optabs): Don't set gcov_init_libfunc.
9992
9993 See ChangeLog.11 for earlier changes.