1 2004-08-25 Steven Bosscher <stevenb@suse.de>
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.
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.
12 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
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):
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):
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):
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):
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):
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):
100 * config/xtensa/xtensa.c (xtensa_va_start,
101 xtensa_gimplify_va_arg_expr): Likewise.
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.
118 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
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
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.
137 2004-08-25 Paolo Bonzini <bonzini@gnu.org>
139 * doc/install.texi: Document that libcpp does not require
140 Automake any longer. Document that Automake 1.9.1 should
143 2004-08-25 Zack Weinberg <zack@codesourcery.com>
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.
154 2004-08-25 Zack Weinberg <zack@codesourcery.com>
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.
160 2004-08-25 Alan Modra <amodra@bigpond.net.au>
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
169 2004-08-24 Richard Henderson <rth@redhat.com>
172 * config/i386/i386.c (legitimate_constant_p): Rework to not accept
173 random codes within CONST.
175 2004-08-24 James E Wilson <wilson@specifixinc.com>
177 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
178 -freorder-blocks-and-partition.
180 2004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
187 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
189 * config/mips/predicates.md (small_data_pattern): Match prefetches.
191 2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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.
198 2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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,
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
228 (loop_niter_by_eval): Return number of iterations as unsigned
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):
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):
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.
250 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
261 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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
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.
275 2004-08-24 Richard Earnshaw <rearnsha@arm.com>
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
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.
304 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
311 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
313 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
316 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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].
322 (tablejump): Use expand_binop to calculate address. Adjust names
323 of internal patterns.
324 (tablejump[sd]i): Renamed from tablejump_internal[12].
326 (tablejump_mips16[12]): Delete.
328 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
336 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
338 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
339 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
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.
348 2004-08-24 Zack Weinberg <zack@codesourcery.com>
350 * rtl.def: Reorganize, placing all codes used only in machine
351 descriptions at the end.
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.
362 2004-08-24 Zack Weinberg <zack@codesourcery.com>
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.
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.
380 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
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.
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.
401 2004-08-24 Richard Henderson <rth@redhat.com>
402 Andrew Pinski <apinski@apple.com>
404 * gimplify.c (gimplify_array_ref_to_plus): Delete.
405 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
408 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
409 ARRAY_REF also to get to the STRING_CST.
411 2004-08-24 Paul Brook <paul@codesourcery.com>
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.
419 2004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
422 * config/m32r.md (movsi_sda): Add SI mode specification to
425 2004-08-24 Nick Clifton <nickc@redhat.com>
427 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
428 of seth_add3_operand.
430 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
432 * Makefile.in (PROTO_OBJS): Add errors.o.
433 * protoize.c (fancy_abort): Remove.
434 * mips-tfile.c (fancy_abort): Add parameters.
436 2004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
438 * doc/trouble.texi (C++ misunderstandings): Fix example code.
440 2004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
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.
449 2004-08-23 James E Wilson <wilson@specifixinc.com>
451 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
454 2004-08-23 Mark Mitchell <mark@codesourcery.com>
457 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
459 2004-08-23 Diego Novillo <dnovillo@redhat.com>
461 * cfg.c (check_bb_profile): Fix typos.
462 * function.c (assign_parm_is_stack_parm): Likewise.
463 * tree-nested.c: Likewise.
465 2004-08-23 Daniel Jacobowitz <dan@debian.org>
467 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
469 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
471 2004-08-23 Eric Christopher <echristo@redhat.com>
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.
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.
499 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
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
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,
532 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
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
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):
550 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
551 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
552 build_distinct_type_copy.
554 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
556 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
559 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
561 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
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.
567 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
569 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
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.
577 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
579 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
580 $31 store insns. Redefine using :GPR.
582 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
589 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
598 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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
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.
612 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
614 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
617 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
626 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
628 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
630 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
645 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
653 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
692 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
732 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
734 * read-rtl.c (read_rtx): Tidy use of format_ptr.
736 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
744 2004-08-22 Andrew Pinski <apinski@apple.com>
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.
752 2004-08-22 Richard Henderson <rth@redhat.com>
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.
759 2004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
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).
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.
773 2004-08-22 Richard Hendersion <rth@redhat.com>
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.
780 2004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
782 * fold-const.c (rtl_expr_nonnegative_p): Delete.
783 * tree.h (rtl_expr_nonnegative_p): Remove.
785 2004-08-22 Steven Bosscher <stevenb@suse.de>
787 * config/i386/ppro.md (ppro_complex_insn): Add missing check
790 * combine.c (struct reg_stat): Fix comment typo.
792 2004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
794 * c-tree.h (c_sizeof_nowarn): Remove.
796 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
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):
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):
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
812 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
814 * c-decl.c (build_array_declarator, set_array_declarator_type,
815 start_decl, grokdeclarator, grokparms): Change boolean parameters
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.
821 2004-08-21 Mike Stump <mrs@apple.com>
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.
830 2004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
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.
841 2004-08-20 Mike Stump <mrs@apple.com>
843 * config/darwin.c (machopic_indirect_data_reference): Mark
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.
854 2004-08-21 Alan Modra <amodra@bigpond.net.au>
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
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.
878 2004-08-20 Mark Mitchell <mark@codesourcery.com>
880 * reload.c (find_reloads_address): Fix thinko in previous change.
882 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
885 2004-08-20 Jakub Jelinek <jakub@redhat.com>
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.
891 2004-08-20 Mark Mitchell <mark@codesourcery.com>
893 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
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
899 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
901 * config/arm/t-symbian: New file.
903 2004-08-20 Andrew Pinski <apinski@apple.com>
905 * regrename.c (kill_value_regno): ANSIfy.
907 2004-08-20 Dale Johannesen <dalej@apple.com>
909 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
911 2004-08-20 Daniel Jacobowitz <dan@debian.org>
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.
918 2004-08-20 Daniel Berlin <dberlin@dberlin.org>
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.
925 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
927 * fold-const.c (round_up, round_down): Use build_int_cst.
928 Optimize common case.
930 2004-08-20 Zack Weinberg <zack@codesourcery.com>
931 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
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
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):
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.
955 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
957 * fold-const.c (int_const_binop): Don't generate non-overflowing
958 size-types specially.
959 (fold_convert_const): Likewise.
961 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
962 clear cache on copied sizetype.
964 2004-08-20 Ben Elliston <bje@au.ibm.com>
966 * configure.ac: Don't escape apostrophe in --enable-coverage help.
967 * configure: Regenerate.
969 2004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
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
979 2004-08-20 Richard Sandiford <rsandifo@redhat.com>
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
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
1072 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
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.
1084 2004-08-20 Richard Earnshaw <rearnsha@arm.com>
1086 * postreload.c (reload_cse_move2add): Allow any condjump, but check
1087 that the implicit set isn't clobbered in the jump insn.
1089 2004-08-19 Mark Mitchell <mark@codesourcery.com>
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.
1096 2004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
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.
1107 * config/s390/s390.h (TARGET_OPTIONS): Added new options
1108 "warn-framesize", "warn-dynamicstack", "stack-size" and
1111 * doc/invoke.texi: Added documentation for the new options.
1113 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
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
1124 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
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.
1132 2004-08-19 Eric Christopher <echristo@redhat.com>
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.
1144 * tree.c (unsave_expr_1): Move to tree-inline.c.
1146 2004-08-19 Caroline Tice <ctice@apple.com>
1148 * config/i386/cygming.h (switch_to_section): Fix typo (change
1149 in_unlikely_text_section to in_unlikely_executed_text).
1151 2004-08-19 Daniel Berlin <dberlin@dberlin.org>
1153 * vec.h (VEC_lower_bound): New macro.
1155 2004-08-19 Richard Sandiford <rsandifo@redhat.com>
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.
1163 2004-08-19 Richard Henderson <rth@redhat.com>
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.
1174 2004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
1176 * regclass.c (globalize_reg): Update call_really_used_regs.
1178 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
1180 * doc/invoke.texi (integer-share-limit): Document.
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
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
1194 * fold-const.c (force_fit_type): Copy value when setting
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.
1204 2004-08-19 Paolo Bonzini <bonzini@gnu.org>
1206 * gimplify.c (gimplify_minimax_expr): Remove.
1207 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
1209 2004-08-19 Dorit Naishlos <dorit@il.ibm.com>
1211 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
1212 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
1214 2004-08-19 Mark Mitchell <mark@codesourcery.com>
1216 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
1218 2004-08-18 Andrew Pinski <apinski@apple.com>
1220 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
1222 2004-08-18 Mark Mitchell <mark@codesourcery.com>
1224 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
1225 (__aeabi_ul2f): Likewise.
1227 2004-08-18 Richard Henderson <rth@redhat.com>
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.
1236 2004-08-18 Richard Henderson <rth@redhat.com>
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.
1245 2004-08-18 Mike Stump <mrs@apple.com>
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.
1268 2004-08-19 Steven Bosscher <stevenb@suse.de>
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
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.
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.
1292 2004-08-18 James E Wilson <wilson@specifixinc.com>
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.
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.
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):
1313 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
1315 2004-08-18 Robert Bowdidge <bowdidge@apple.com>
1317 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
1318 get regression tester working again.
1320 2004-08-18 Zack Weinberg <zack@codesourcery.com>
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.
1327 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
1328 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
1330 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
1332 * arm.c (arm_size_rtx_costs): New function.
1333 (arm_override_options): Use it if optimizing for space.
1335 2004-08-18 Richard Henderson <rth@redhat.com>
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.
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.
1363 2004-08-18 Steven Bosscher <stevenb@suse.de>
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
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):
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.
1399 2004-08-18 Diego Novillo <dnovillo@redhat.com>
1401 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
1402 (pass_loop_done): Likewise.
1404 2004-08-18 Andrew Pinski <apinski@apple.com>
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.
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
1420 2004-08-18 Matt Austern <austern@apple.com>
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.
1426 2004-08-18 Richard Henderson <rth@redhat.com>
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.
1434 2004-08-18 Diego Novillo <dnovillo@redhat.com>
1436 * tree-dfa.c (add_referenced_var): Only global variables are
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
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
1460 (get_nmt_for): Mark call-clobbered tags whose pointer points
1462 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
1464 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
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
1471 2004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
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.
1482 2004-08-18 Andrew Pinski <apinski@apple.com>
1484 * config/darwin.c (machopic_legitimize_pic_address): Only set
1485 MEM_READONLY_P in the non TARGET_TOC case.
1487 2004-08-18 Zack Weinberg <zack@codesourcery.com>
1489 * rtl.def (NIL): Delete.
1490 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
1491 Tighten the syntax a little.
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.
1502 2004-08-18 Zack Weinberg <zack@codesourcery.com>
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.
1509 2004-08-18 Fariborz Jahanian <fjahanian@apple.com>
1511 * config/rs6000/altivec.md: Add new patterns for calls to
1512 save_world/rest_world functions.
1514 * config/rs6000/rs6000-protos.h: (save_world_operation,
1515 restore_world_operation) new declarations.
1517 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
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
1527 (rs6000_emit_epilogue): Check for world_save_p and generate
1528 pattern to call rest_world to restore saved registers.
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.
1535 2004-08-18 Caroline Tice <ctice@apple.com>
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
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
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
1569 * cfgrtl.c (target.h): Add statement to include this.
1570 (rtl_split_block): Make sure newly created bb gets correct
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
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
1582 (rtl_verify_flow_info_1): Fix if-condition on test/error
1583 condition that fallthru edges are not allowed to cross section
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
1590 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
1592 (if_convert): Add targetm.have_named_sections to test.
1593 * output.h (unlikely_section_label): Extern declaration for new global
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.
1633 2004-08-18 Roger Sayle <roger@eyesopen.com>
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.
1640 2004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
1642 * config/sh/sh.c (split_branches): Check the result of
1644 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
1645 Call rtl_register_cfg_hooks.
1647 2004-08-18 Richard Henderson <rth@redhat.com>
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
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 ...
1693 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
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.
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.
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.
1732 2004-08-18 Richard Henderson <rth@redhat.com>
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.
1753 2004-08-18 Paolo Bonzini <bonzini@gnu.org>
1755 * c4x.c (legitimize_operands): Remove calls to
1756 preserve_subexpressions_p.
1758 2004-08-18 David Edelsohn <edelsohn@gnu.org>
1760 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
1761 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
1763 2004-08-18 Ziemowit Laski <zlaski@apple.com>
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
1771 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
1772 used by more than one front-end.
1774 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
1776 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
1777 avoid use of preserve_subexpressions_p.
1779 2004-08-17 Richard Henderson <rth@redhat.com>
1782 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
1784 2004-08-17 DJ Delorie <dj@redhat.com>
1786 * doc/extend.texi: Document new xstormy16 attribute.
1788 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
1789 (xstormy16_splittable_below100_or_register): New.
1791 (xstormy16_reorg): New.
1792 (TARGET_MACHINE_DEPENDENT_REORG): Define.
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.
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.
1806 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
1807 liberal about acceptable 'B' masks.
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.
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.
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.
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.
1842 2004-08-17 James E Wilson <wilson@specifixinc.com>
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.
1849 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
1850 normal and -ffast-math code.
1852 2004-08-17 Mark Mitchell <mark@codesourcery.com>
1855 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
1857 2004-08-17 Robert Bowdidge <bowdidge@apple.com>
1859 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
1861 2004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
1863 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
1864 for non Darwin targets.
1865 (*call_value_nonlocal_darwin64): Likewise.
1867 2004-08-17 Fariborz Jahanian <fjahanian@apple.com>
1869 * config/rs6000/rs6000.c (rs6000_function_value): Check for
1870 altivec mode for altivec return register.
1872 2004-08-17 David Edelsohn <edelsohn@gnu.org>
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
1881 2004-08-17 Dorit Naishlos <dorit@il.ibm.com>
1883 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
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
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
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
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
1914 2004-08-17 Nathan Sidwell <nathan@codesourcery.com>
1916 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
1918 (generate_protocol_list, handle_impent): Likewise.
1920 2004-08-17 Roger Sayle <roger@eyesopen.com>
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.
1926 2004-08-17 Daniel Bornstein <danfuzz@milk.com>
1929 * arm.md (addsi3_cbranch_scratch): Correct case labels.
1931 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
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>.
1938 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
1940 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
1941 No need to check if in a cross configuration.
1942 * configure: Regenerate.
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):
1949 * expr.c (get_subtarget): Likewise.
1950 * rtl.h (preserve_subexpressions_p): Remove.
1951 * stmt.c (preserve_subexpressions_p): Remove.
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.
1957 2004-08-16 James E Wilson <wilson@specifixinc.com>
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.
1964 2004-08-16 Zack Weinberg <zack@codesourcery.com>
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
1975 * configure: Regenerate.
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
1983 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
1985 2004-08-16 Adam Nemet <anemet@lnxw.com>
1987 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
1989 2004-08-16 Andrew Pinski <apinski@apple.com>
1991 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
1992 extraneous semicolon.
1994 2004-08-16 Devang Patel <dpatel@apple.com>
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.
2014 2004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
2016 * c-decl.c (grokdeclarator): Allow for function definition where
2017 innermost declarator has attributes.
2019 2004-08-16 Fariborz Jahanian <fjahanian@apple.com>
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.
2029 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
2031 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
2032 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
2033 * configure: Regenerate.
2035 2004-08-16 Stan Shebs <shebs@apple.com>
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
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
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
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.
2057 2004-08-16 Janis Johnson <janis187@us.ibm.com>
2059 * doc/extend.texi (AltiVec builtins): Document additional differences
2060 from the Motorola AltiVec PIM.
2062 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
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.
2068 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
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.
2074 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
2076 * calls.c (load_register_parameters): Remove spurious FIXME token.
2078 2004-08-15 Ziemowit Laski <zlaski@apple.com>
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.
2113 2004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2114 Andrew Pinski <pinskia@physics.uc.edu>
2117 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
2120 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
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):
2151 * except.c (init_eh, assign_filter_values, assign_filter_values):
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):
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):
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):
2204 * config/xtensa/xtensa.c (xtensa_va_start,
2205 xtensa_gimplify_va_arg_expr): Likewise.
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.
2222 2004-08-15 Ben Elliston <bje@au.ibm.com>
2224 * vec.h: Comment improvements.
2226 2004-08-14 Roger Sayle <roger@eyesopen.com>
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.
2242 2004-08-15 Steven Bosscher <stevenb@suse.de>
2244 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
2246 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
2252 2004-08-14 Richard Sandiford <rsandifo@redhat.com>
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.
2282 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
2288 2004-08-14 Nathan Sidwell <nathan@codesourcery.com>
2290 * c-common.c (shorten_compare): Use force_fit_type directly.
2292 2004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
2293 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
2294 Dave Korn <dk@artimi.com>
2296 * doc/install.texi (Building): Avoid duplicate reference to GNU
2298 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
2300 2004-08-14 Richard Henderson <rth@redhat.com>
2302 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
2303 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
2305 2004-08-13 Richard Henderson <rth@redhat.com>
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.
2312 2004-08-13 James E Wilson <wilson@specifixinc.com>
2314 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
2315 Correct mode from SFmode to DFmode.
2317 2004-08-13 Ziemowit Laski <zlaski@apple.com>
2319 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
2320 __cstring_object and __image_info sections with the no_dead_strip
2323 2004-08-13 Roger Sayle <roger@eyesopen.com>
2324 David Billinghurst <David.Billinghurst@riotinto.com>
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.
2331 2004-08-13 Richard Henderson <rth@redhat.com>
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.
2337 2004-08-13 Richard Henderson <rth@redhat.com>
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.
2367 2004-08-13 Richard Sandiford <rsandifo@redhat.com>
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.
2382 2004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
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.
2411 2004-08-13 Daniel Berlin <dberlin@dberlin.org>
2413 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
2415 2004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
2417 * sh.md (cbranch define_delay) Use cond_delay_slot for
2418 non-anulled condition too.
2420 2004-08-12 David Edelsohn <edelsohn@gnu.org>
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.
2430 2004-08-12 Zack Weinberg <zack@codesourcery.com>
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.
2436 2004-08-12 Richard Henderson <rth@redhat.com>
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.
2478 2004-08-13 Mark Mitchell <mark@codesourcery.com>
2481 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
2483 (i386_pe_mark_dllimport): Likewise.
2484 (i386_pe_encode_section_info): Likewise, when overriding
2485 dllimport attribute.
2487 2004-08-12 Geoffrey Keating <geoffk@apple.com>
2489 * configure.ac: When testing for flex, nm, ar, and bison, check
2490 that they will actually be built.
2491 * configure: Regenerate.
2493 2004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
2495 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
2496 (MOVE_MAX_PIECES): Define.
2498 2004-08-12 Devang patel <dpatel@apple.com>
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.
2505 2004-08-12 Janis Johnson <janis187@us.ibm.com>
2507 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
2510 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
2513 * doc/extend.texi (AltiVec builtins): Fix description for recent
2514 changes. Update operation list to match current support.
2516 2004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
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
2522 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
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
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
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.
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
2545 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
2547 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
2548 as condition. Adjusted for new stack layout.
2550 * doc/invoke.texi: Added documentation for new option
2551 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
2554 2004-08-12 Paul Brook <paul@codesourcery.com>
2556 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
2557 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
2559 2004-08-12 David Daney <ddaney@avtrex.com>
2561 * java/gcj.texi: Add subsection on signal usage.
2563 2004-08-12 David Edelsohn <edelsohn@gnu.org>
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.
2572 2004-08-12 Diego Novillo <dnovillo@redhat.com>
2574 PR tree-optimization/16867
2575 * tree.c (is_global_var): New function.
2576 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
2578 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
2580 (is_global_var): Declare.
2581 * tree-dfa.c (dump_variable): Display global and addressable
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
2589 * tree-gimple.c (is_gimple_reg): Don't check for
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
2603 * tree-ssa-operands.c (get_call_expr_operands): Do not add
2604 clobbering may-defs if the call does not have side effects.
2606 2004-08-12 Jakub Jelinek <jakub@redhat.com>
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):
2624 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2625 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2627 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
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.
2633 2004-08-12 Paul Brook <paul@codesourcery.com>
2635 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
2637 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
2640 2004-08-12 Ben Elliston <bje@au.ibm.com>
2643 * config/rs6000/altivec.h: Change vector to __vector throughout.
2644 (Except for the `vector' macro itself).
2646 2004-08-12 Zack Weinberg <zack@codesourcery.com>
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
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.
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.
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.
2697 * recog.h: Delete prototypes of predicate functions.
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.
2706 * config/ia64/ia64.c: All predicate function definitions moved
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.
2712 * config/ia64/ia64.md: All predicates now defined here.
2713 (symbolic_operand): Is now a special predicate.
2715 * config/ia64/ia64.h: Declare ia64_section_threshold.
2716 (PREDICATE_CODES): Delete.
2718 2004-08-12 Richard Henderson <rth@redhat.com>
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.
2725 2004-08-12 Richard Henderson <rth@redhat.com>
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.
2731 2004-08-12 Richard Henderson <rth@redhat.com>
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
2740 2004-08-12 Ziemowit Laski <zlaski@apple.com>
2742 (This patch is part of merge of objc-improvements-branch
2745 * doc/frontends.texi: Mention Objective-C++ in addition to
2747 * doc/install.texi: Add 'obj-c++' to list of configurable
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.
2760 2004-08-12 Alan Modra <amodra@bigpond.net.au>
2762 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
2763 and 2004-07-14 changes.
2765 2004-08-12 Paul Brook <paul@codesourcery.com>
2767 * doc/invoke.texi: Fix typo.
2769 2004-08-11 Devang Patel <dpatel@apple.com>
2771 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
2772 and -no_dead_strip_inits_and_terms.
2774 * doc/invoke.texi (Darwin Options): Document -dead_strip and
2775 -no_dead_strip_inits_and_terms.
2777 2004-08-11 Paul Brook <paul@codesourcery.com>
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.
2790 2004-08-11 Paul Brook <paul@codesourcery.com>
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.
2803 2004-08-11 James E Wilson <wilson@specifixinc.com>
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.
2809 2004-08-11 David Edelsohn <edelsohn@gnu.org>
2811 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
2813 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
2814 (mfcr rlwinm rlwinm patterns): Set length to 12.
2816 2004-08-11 Andrew MacLeod <amacleod@redhat.com>
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
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.
2859 2004-08-11 Nick Clifton <nickc@redhat.com>
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.
2868 2004-08-10 Zack Weinberg <zack@codesourcery.com>
2870 * stmt.c (expand_return): If asked to return the RESULT_DECL,
2871 just call expand_value_return on result_rtl.
2873 2004-08-10 Richard Henderson <rth@redhat.com>
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
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.
2896 2004-08-10 Richard Henderson <rth@redhat.com>
2898 * stor-layout.c (round_up): Check for 0/1 before dividing.
2899 (round_down): Likewise.
2901 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
2903 2004-08-09 Mark Mitchell <mark@codesourcery.com>
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
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
2979 * config/arm/t-bpabi: New file.
2980 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
2981 (TARGET_LIB_INT_CMP_BIASED): Likewise.
2983 2004-08-10 David Edelsohn <edelsohn@gnu.org>
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.
2991 2004-08-10 Caroline Tice <ctice@apple.com>
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
3003 2004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
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.
3014 2004-08-10 H.J. Lu <hongjiu.lu@intel.com>
3017 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
3019 2004-08-10 Janis Johnson <janis187@us.ibm.com>
3021 * doc/sourcebuild.texi (compat testing): Document available test
3022 framework commands. Use the preferred spelling of DejaGnu.
3024 2004-08-10 Daniel Berlin <dberlin@dberlin.org>
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.
3041 2004-08-10 Andrew MacLeod <amacleod@redhat.com>
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
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
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.
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
3066 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
3068 2004-08-10 Jason Merrill <jason@redhat.com>
3071 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
3074 2004-08-10 Geoffrey Keating <geoffk@apple.com>
3076 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
3079 2004-08-10 Roger Sayle <roger@eyesopen.com>
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.
3084 2004-08-10 Paul Brook <paul@codesourcery.com>
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
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.
3103 2004-08-10 Jakub Jelinek <jakub@redhat.com>
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.
3123 * config/i386/i386.h (CLEAR_RATIO): Define.
3125 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
3127 * expr.c (expand_expr_real_1): Add back code that was not dead.
3129 2004-08-09 Andrew Pinski <apinski@apple.com>
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.
3134 2004-08-09 Daniel Jacobowitz <dan@debian.org>
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
3142 (ggc_collect_1): Always collect.
3143 (ggc_collect): Honor always_collect flag. Sum all zones to decide
3145 (SCALE, LABEL): New macros.
3146 (ggc_print_statistics): Add statistics support.
3148 2004-08-09 Roger Sayle <roger@eyesopen.com>
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.
3155 2004-08-09 Paul Brook <paul@codesourcery.com>
3156 Richard Henderson <rth@redhat.com>
3158 * unwind-dw2.c (uw_install_context_1): Update target saved stack
3161 2004-08-09 Geoffrey Keating <geoffk@apple.com>
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
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.
3170 2004-08-09 Jeff Law <law@redhat.com>
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
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.
3199 2004-08-09 Zack Weinberg <zack@codesourcery.com>
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.
3205 2004-08-09 Steven Bosscher <stevenb@suse.de>
3207 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
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.
3226 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
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
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
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.
3262 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
3264 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
3266 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
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>:
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.
3277 2004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
3278 Ayal Zaks <zaks@il.ibm.com>
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.
3293 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
3295 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
3298 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
3300 * config/i386/i386.c (ix86_expand_clrmem): Properly call
3301 gen_strset for 64bit target.
3303 2004-08-07 Olivier Hainque <hainque@act-europe.fr>
3305 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
3307 2004-08-07 Jason Merrill <jason@redhat.com>
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
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.
3324 * c-common.c (c_warn_unused_result): Check TREE_USED before
3325 warning about a CALL_EXPR with an unused value.
3327 2004-08-06 Mark Mitchell <mark@codesourcery.com>
3329 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
3330 to the compiler. Use -fshort-wchar by default.
3332 2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
3334 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
3335 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
3337 * doc/invoke.texi (param): Document min-crossjump-insns.
3339 2004-08-06 Richard Sandiford <rsandifo@redhat.com>
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.
3351 2004-08-06 Paolo Bonzini <bonzini@gnu.org>
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.
3358 2004-08-06 Jakub Jelinek <jakub@redhat.com>
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.
3366 2004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
3373 2004-08-06 Mark Mitchell <mark@codesourcery.com>
3375 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
3376 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
3378 2004-08-06 Roman Zippel <zippel@linux-m68k.org>
3380 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
3381 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_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.
3388 2004-08-05 Mark Mitchell <mark@codesourcery.com>
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
3404 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
3405 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
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
3414 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
3416 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
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.
3423 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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):
3429 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
3431 (tree_ssa_loop_done): Verify loop closed ssa form.
3432 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
3434 2004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
3452 2004-08-05 Andrew Pinski <apinski@apple.com>
3454 * objc/objc-act.c (build_objc_string_object): Mark the address
3455 expression as constant.
3457 2004-08-05 David Edelsohn <edelsohn@gnu.org>
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.
3463 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
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.
3469 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
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.
3481 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3483 PR tree-optimization/16864
3484 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
3485 for ssa names without default_def.
3487 2004-08-05 Richard Sandiford <rsandifo@redhat.com>
3489 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
3490 frame pointer, restore eax with an ebp-relative address.
3492 2004-08-04 Geoffrey Keating <geoffk@apple.com>
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
3512 2004-08-05 Adam Nemet <anemet@lnxw.com>
3514 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
3515 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
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.
3529 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
3531 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
3533 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
3535 (c_cpp_builtins): Call it.
3536 * doc/cpp.texi: Update.
3538 2004-08-04 David Edelsohn <edelsohn@gnu.org>
3540 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
3543 2004-08-04 Jan Hubicka <jh@suse.cz>
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.
3558 2004-08-04 Zack Weinberg <zack@codesourcery.com>
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.
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.
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.
3584 2004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3585 Jeff Law <law@redhat.com>
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):
3595 (release_ssa_name): Do not release ssa names that may have multiple
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.
3604 2004-08-04 Mark Mitchell <mark@codesourcery.com>
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
3612 (TARGET_DECLSPEC): Define.
3613 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
3615 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
3617 (TARGET_DECLSPEC): Define.
3618 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
3620 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
3622 * doc/tm.texi (TARGET_DECLSPEC): Document.
3624 * doc/extend.texi: Fix typo in comment.
3626 2004-08-04 Paul Brook <paul@codesourcery.com>
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.
3635 2004-08-03 Nathan Sidwell <nathan@codesourcery.com>
3637 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
3638 low/high pair. Do range checking directly.
3639 (interpret_integer): Adjust.
3641 2004-08-04 Nick Clifton <nickc@redhat.com>
3643 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
3645 * doc/invoke.texi: Document this new switch and also the -mrenesas
3648 2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
3650 * cfglayout.c (insn_locators_initialize): Update the current
3651 location before initializing a location.
3653 2004-08-03 Zack Weinberg <zack@codesourcery.com>
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.
3661 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
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.
3672 2004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
3674 * doc/install.texi: Update autoconf version requirements.
3676 2004-08-03 Zack Weinberg <zack@codesourcery.com>
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.
3685 2004-08-03 Zack Weinberg <zack@codesourcery.com>
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.
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.
3703 2004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
3705 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
3708 2004-08-03 Mike Stump <mrs@apple.com>
3710 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
3712 * doc/invoke.texi (Darwin Options): Update to reflect above.
3714 2004-08-03 Roger Sayle <roger@eyesopen.com>
3717 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
3718 truncations, not just global truncations.
3720 2004-08-03 Andrew Pinski <apinski@apple.com>
3723 * loop-iv.c (simplify_using_assignment): Initialize lhs.
3725 2004-08-03 Paul Brook <paul@codesourcery.com>
3727 * gcc/doc/install.texi: Document MPFR requirement.
3729 2004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
3731 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3732 and mmap() explicitly instead of relying on preset autoconf cache
3734 * configure: Regenerate.
3736 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
3739 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
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
3745 * config/i386/t-gmm_malloc: New file.
3746 * config/i386/t-pmm_malloc: Likewise.
3748 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
3750 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
3751 Tanguy Fautrà <tfautre@pandora.be>
3753 * config/i386/pmm_malloc.h: New file.
3755 2004-08-03 Danny Smith <dannysmith@users.sourceforge.net>
3757 * config/i386/gmm_malloc.h: New file.
3759 2004-08-03 Dale Johannesen <dalej@apple.com>
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.
3767 2004-08-03 Mark Mitchell <mark@codesourcery.com>
3769 * config.gcc (arm*-*-symbianelf*): New target.
3770 * config/arm/symbian.h: New file.
3772 * gthr-gnat.c: Add visibility #pragmas.
3773 * gthr-gnat.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.
3798 2004-08-03 David Edelsohn <edelsohn@gnu.org>
3799 Dale Johannesen <dalej@apple.com>
3800 Roger Sayle <roger@eyesopen.com>
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
3807 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3809 * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
3811 2004-08-03 Pat Haugen <pthaugen@us.ibm.com>
3813 * ra-build.c (conflicts_between_webs): For webs that cross a call add
3814 conflicts to regs_invalidated_by_call.
3816 2004-08-03 Paul Brook <paul@codesourcery.com>
3818 * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
3820 2004-08-03 Jan Hubicka <jh@suse.cz>
3822 * coverage.c (tree_coverage_counter_ref): Fix computation of the new
3825 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
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.
3832 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
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.
3840 2004-08-03 Paolo Bonzini <bonzini@gnu.org>
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.
3848 2004-08-03 Yossi Markovich <yossim@il.ibm.com>
3849 Mostafa Hagog <mustafa@il.ibm.com>
3851 * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
3853 2004-08-02 Geoffrey Keating <geoffk@apple.com>
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
3861 2004-08-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
3863 * gdbinit.in: Reflect previous changes to rtunion_def.
3865 2004-08-02 Roger Sayle <roger@eyesopen.com>
3867 * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
3868 -> "X % Y" is only valid for TRUNC_MOD_EXPR.
3870 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3872 * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
3874 * langhooks.h (lang_hooks::builtin_function): Rename parameter
3875 from "class" to "bt_class".
3877 2004-08-02 Paul Brook <paul@codesourcery.com>
3879 PR rtl-optimization/15068
3880 * flow.c (init_propagate_block_info): Check condition is reversible.
3882 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
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
3888 (adjust_field_type, walk_type, write_func_for_structure,
3889 write_root, write_roots): Remove pointless cast.
3891 2004-08-02 J"orn Rennecke <joern.rennecke@superh.com>
3893 * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
3895 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3897 * rtl.h (union rtunion_def): Have all members start with the
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
3904 * gengtype.c (adjust_field_rtx_def): Likewise.
3905 * rtlanal.c (loc_mentioned_in_p): Likewise.
3907 2004-08-02 Richard Sandiford <rsandifo@redhat.com>
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.
3919 2004-08-01 Zack Weinberg <zack@codesourcery.com>
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.
3928 2004-08-01 Geoffrey Keating <geoffk@apple.com>
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.
3936 (movti_string): Don't move GPRs to a nonoffsettable address.
3937 (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
3939 2004-08-02 Ben Elliston <bje@au.ibm.com>
3942 * config/rs6000/altivec.h: Replace typeof with __typeof__.
3944 2004-08-01 Richard Henderson <rth@redhat.com>
3946 * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
3947 variable sized types.
3949 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
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
3957 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
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.
3963 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
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
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.
3980 2004-07-31 Andrew Pinski <apinski@apple.com>
3983 * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
3985 2004-07-31 Joseph S. Myers <jsm@polyomino.org.uk>
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.
3992 2004-07-30 Geoffrey Keating <geoffk@apple.com>
3993 Fariborz Jahanian <fjahanian@apple.com>
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.
4000 * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
4002 (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
4003 * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
4005 * config/rs6000/darwin-ldouble.c (isless): New macro.
4007 (nonfinite): New macro.
4009 (_xlqadd): Completely rewrite.
4010 (_xlqmul): Correct overflow handling.
4011 (_xlqdiv): Correct overflow handling.
4012 * config/rs6000/darwin-ldouble-format: New file.
4014 2004-07-30 Roger Sayle <roger@eyesopen.com>
4015 Richard Henderson <rth@redhat.com>
4017 * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
4018 9 into the equivalent lea instruction.
4020 2004-07-30 Richard Henderson <rth@redhat.com>
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
4027 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
4029 2004-07-30 Diego Novillo <dnovillo@redhat.com>
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
4036 (collect_points_to_info_r): Only call add_pointed_to_var if
4037 the value is an ADDR_EXPR.
4039 2004-07-30 Diego Novillo <dnovillo@redhat.com>
4041 * tree-ssa-alias.c (create_alias_map_for): Do not get the
4042 alias set of the inner type of ARRAY_TYPEs.
4044 2004-07-29 Diego Novillo <dnovillo@redhat.com>
4046 * tree-ssa-ccp.c (visit_assignment): Move code to prevent
4047 setting a non-register to UNDEFINED right before the call to
4050 2004-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
4052 * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
4054 2004-07-29 Diego Novillo <dnovillo@redhat.com>
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.
4060 2004-07-29 Zack Weinberg <zack@codesourcery.com>
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.
4069 2004-07-29 Mark Mitchell <mark@codesourcery.com>
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
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
4082 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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.
4088 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4090 * cfgloop.c (update_latch_info): Update dominator of the new block.
4091 (canonicalize_loop_headers, flow_loops_find): Do not free dominance
4093 * dominance.c (verify_dominators): Check that the dominance tree is
4095 (recount_dominator): Ignore unreachable blocks.
4096 (iterate_fix_dominators): Cleanup old dominance information before
4099 2004-07-29 Diego Novillo <dnovillo@redhat.com>
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.
4106 2004-07-29 Joseph S. Myers <jsm@polyomino.org.uk>
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.
4112 2004-07-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4114 * pa.c (output_movb): Correct typo.
4116 2004-07-29 Pat Haugen <pthaugen@us.ibm.com>
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.
4125 2004-07-29 Nathan Sidwell <nathan@codesourcery.com>
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
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.
4137 * c-decl.c (complete_array_type): Don't gratuitously copy
4138 maxindex. Check it always has a type.
4140 2004-07-29 Steven Bosscher <stevenb@suse.de>
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.
4146 * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
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.
4153 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
4155 Introduce sh2a support.
4156 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
4157 * config.gcc: Build multilibs for sh2a and sh2a-single by
4159 * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
4160 default. Split their tests out of the corresponding SH4
4162 * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
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>
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__
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__
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.
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.
4220 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
4222 * config/frv/frv.md (movqi_internal, movhi_internal,
4223 movsi_internal): Add backup alternatives for memory inputs.
4225 2004-07-28 Matt Austern <austern@apple.com>
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.
4234 2004-07-28 Eric Christopher <echristo@redhat.com>
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.
4259 2004-07-28 Zack Weinberg <zack@codesourcery.com>
4261 * tree.h (enum tls_model): Move ...
4262 * coretypes.h: ... here.
4264 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
4266 * config/frv/frv.h (EPILOGUE_USES): New. Use LR.
4268 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
4270 * cse.c (validate_canon_reg): New function, split out from...
4271 (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'.
4273 2004-07-28 Diego Novillo <dnovillo@redhat.com>
4275 * tree-ssa-alias.c (maybe_create_global_var): Don't just
4276 return if .GLOBAL_VAR has been created.
4278 2004-07-28 Diego Novillo <dnovillo@redhat.com>
4280 * tree-ssa.c (verify_flow_insensitive_alias_info): Process
4281 every variable that may have aliases, not just tags.
4283 2004-07-28 Aldy Hernandez <aldyh@redhat.com>
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.
4290 * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
4293 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
4294 output_e500_flip_eq_bit.
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.
4303 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
4305 * gcov.c (function_summary): Add missing \n.
4307 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
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
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
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
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
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
4397 2004-07-28 Diego Novillo <dnovillo@redhat.com>
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.
4417 (init_alias_info): Do not mark all type tags for renaming
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
4424 2004-07-28 Diego Novillo <dnovillo@redhat.com>
4426 PR tree-optimization/16705
4427 * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
4430 2004-07-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4432 * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
4435 * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
4436 don't make another one.
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
4446 2004-07-27 Richard Henderson <rth@redhat.com>
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.
4457 2004-07-28 Alan Modra <amodra@bigpond.net.au>
4459 * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
4461 2004-07-27 Richard Henderson <rth@redhat.com>
4463 * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
4466 2004-07-27 Zack Weinberg <zack@codesourcery.com>
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.
4487 2004-07-27 Steven Bosscher <stevenb@suse.de>
4489 * cfgexpand.c (tree_expand_cfg): Fix comment.
4491 * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
4492 * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
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):
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.
4509 * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
4510 * passes.c (rest_of_handle_eh): Do it here.
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.
4516 2004-07-27 Brian Booth <bbooth@redhat.com>
4518 * tree-optimize.c (register_one_dump_file): Update condition that uses
4520 (dup_pass_1): Replace with...
4521 (next_pass_1): This.
4522 (NEXT_PASS): Call next_pass_1.
4524 (init_tree_optimization_passes): Remove uses of DUP_PASS.
4525 (execute_one_pass): Update condition that uses
4527 * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
4530 2004-07-27 Nick Clifton <nickc@redhat.com>
4532 * config/m32r/m32r.c: Include integrate.h in order to get the
4533 prototype for get_hard_reg_initial_val().
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.
4540 2004-07-27 Diego Novillo <dnovillo@redhat.com>
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
4550 2004-07-27 Richard Sandiford <rsandifo@redhat.com>
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.
4570 2004-07-26 Eric Christopher <echristo@redhat.com>
4572 * tree-dfa.c (add_referenced_var): Register initializers of global
4575 2004-07-26 Paolo Bonzini <bonzini@gnu.org>
4577 * config/i386/i386.c (function_arg): Always treat 8-
4578 and 16-byte wide vectors the same, even if MMX/SSE
4580 (contains_128bit_aligned_vector_p): Add comment.
4582 2004-07-26 J"orn Rennecke <joern.rennecke@superh.com>
4584 * ra.h (enum node_type): Rename to:
4585 (enum ra_node_type).
4586 * ra-colorize.c: Likewise.
4588 2004-07-26 Richard Sandiford <rsandifo@redhat.com>
4590 * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
4591 after simplifying the jump.
4593 2004-06-26 Richard Henderson <rth@redhat.com>
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.
4608 2004-07-26 Tom Tromey <tromey@redhat.com>
4610 * tree.h: Fix typo in comment.
4612 2004-07-26 Daniel Jacobowitz <dan@debian.org>
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.
4620 2004-07-26 Richard Sandiford <rsandifo@redhat.com>
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.
4637 2004-07-25 David Edelsohn <edelsohn@gnu.org>
4640 * config/rs6000/rs6000.md (movdi_internal64): Further disparage
4643 2004-07-24 Nathan Sidwell <nathan@codesourcery.com>
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.
4653 2004-07-26 Falk Hueffner <falk@debian.org>
4655 * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
4658 2004-07-25 Roger Sayle <roger@eyesopen.com>
4660 * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
4661 value off of the stack if TARGET_USE_FFREEP.
4663 2004-07-26 Bernardo Innocenti <bernie@develer.com>
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 ().
4670 2004-07-26 Bernardo Innocenti <bernie@develer.com>
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.
4680 2004-07-26 Bernardo Innocenti <bernie@develer.com>
4682 * Makefile.in (C_PRAGMA_H): New variable to track dependencies
4684 * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
4686 * c-lex.c: Likewise.
4688 2004-07-25 Roger Sayle <roger@eyesopen.com>
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.
4696 * tree.h (constant_boolean_node): Add prototype here.
4697 * builtins.c (expand_builtin_strncmp): Add missing calls to
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.
4704 2004-07-26 Niall Douglas <s_fsfeurope2@nedprod.com>
4705 Brian Ryner <bryner@brianryner.com>
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.
4729 2004-07-25 Bernardo Innocenti <bernie@develer.com>
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.
4745 2004-07-25 Bernardo Innocenti <bernie@develer.com>
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
4765 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4767 * c-decl.c (groktypename, groktypename_in_param_context): Rename
4768 variable typename to type_name.
4769 * c-lex.c (interpret_float): Likewise.
4771 2004-07-25 Roger Sayle <roger@eyesopen.com>
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.
4793 2004-07-25 Bernardo Innocenti <bernie@develer.com>
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()
4801 * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
4804 2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
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.
4812 2004-07-25 Daniel Jacobowitz <dan@debian.org>
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.
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
4842 * doc/extend.texi (Solaris Pragmas): New section.
4844 2004-07-25 Bernardo Innocenti <bernie@develer.com>
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.
4853 * recog.c: Likewise.
4854 * recog.h: Likewise.
4855 * regrename.c: 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
4860 * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
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++.
4873 2004-07-25 Daniel Jacobowitz <dan@debian.org>
4875 * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
4878 2004-07-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4880 * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
4881 Handle ARRAY_RANGE_REF like ARRAY_REF.
4883 2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
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
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.
4896 2004-07-25 Richard Henderson <rth@redhat.com>
4898 * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
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.
4904 2004-07-24 Zack Weinberg <zack@codesourcery.com>
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.
4912 2004-07-24 Alexander Kabaev <kan@freebsd.org>
4914 * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
4915 (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
4917 2004-07-24 Alexander Kabaev <kan@freebsd.org>
4918 Zack Weinberg <zack@codesourcery.com
4921 * c-decl.c (diagnose_mismatched_decls): Don't issue a
4922 redundant-declaration warning the first time a builtin is
4923 declared explicitly.
4925 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4927 * tree.h (staticp): Change return type to bool.
4929 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4931 * c-common.c (c_staticp): Last episode of the staticp saga.
4933 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4935 * c-common.h (c_staticp): Change return type from int to bool.
4936 * tree.c (staticp): Likewise.
4937 * langhooks.h (staticp): Likewise.
4939 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4941 * langhooks-def.h (lhd_staticp): Change return type from int to
4942 bool in prototype to match definition.
4944 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4946 * system.h (bool, true, false): Don't redefine as preprocessor macros
4949 2004-07-24 Roger Sayle <roger@eyesopen.com>
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.
4954 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4956 * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
4957 GGC_CNEWVAR): New macros.
4959 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4961 * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
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.
4981 2004-07-24 Roman Zippel <zippel@linux-m68k.org>
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 {...}
4989 (*cfv4_extendqisi2): Fix destination predicate.
4990 * config/m68k/m68k-protos.h: Remove various declarations also
4991 generated via PREDICATE_CODES.
4993 2004-07-23 Mike Stump <mrs@apple.com>
4995 * c-typeck.c (convert_for_assignment): Tightened up pointer
4996 converstions that differ in signedness.
4998 2004-07-23 Zack Weinberg <zack@codesourcery.com>
5000 * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
5002 2004-07-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5004 * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
5005 * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
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.
5015 2004-07-23 Diego Novillo <dnovillo@redhat.com>
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.
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
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.
5043 2004-07-23 Richard Henderson <rth@redhat.com>
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.
5051 2004-07-23 Richard Henderson <rth@redhat.com>
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.
5070 2004-07-24 Jakub Jelinek <jakub@redhat.com>
5072 * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
5074 2004-07-23 Zack Weinberg <zack@codesourcery.com>
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.
5081 2004-07-23 Joseph S. Myers <jsm@polyomino.org.uk>
5083 * c-decl.c (start_function): Form composite type of function types
5084 rather than copying type from previous prototype declaration.
5086 2004-07-23 Janis Johnson <janis187@us.ibm.com>
5088 * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
5089 the const qualifier for the second argument in the C++ functions.
5091 * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
5092 specific pointer types.
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.
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.
5123 2004-07-22 Paolo Bonzini <bonzini@gnu.org>
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.
5133 2004-07-23 Matthias Klose <doko@debian.org>
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.
5140 2004-07-22 Mark Mitchell <mark@codesourcery.com>
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):
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
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.
5216 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
5219 * fold-const.c (extract_muldiv_1): Do not treat signed left shift
5222 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
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.
5229 2004-07-22 Jason Merrill <jason@redhat.com>
5231 * integrate.c (copy_decl_for_inlining): Remove invisible reference
5233 * tree-inline.c (setup_one_parameter): Likewise.
5235 2004-07-22 Brian Booth <bbooth@redhat.com>
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
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.
5257 2004-07-22 Richard Henderson <rth@redhat.com>
5259 * expr.c (emit_push_insn): Don't use set_mem_attributes.
5261 2004-07-22 Richard Henderson <rth@redhat.com>
5263 * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
5264 variables due to conditional compilation.
5266 2004-07-22 Diego Novillo <dnovillo@redhat.com>
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
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
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
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
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
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
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.
5330 2004-07-22 Diego Novillo <dnovillo@redhat.com>
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,
5335 (walk_use_def_chains): Add new argument IS_DFS.
5337 * tree-flow.h (walk_use_def_chains): Update prototype.
5339 2004-07-22 Hans-Peter Nilsson <hp@axis.com>
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.
5346 ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all
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.
5352 2004-07-22 Paolo Bonzini <bonzini@gnu.org>
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.
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
5391 * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
5392 (make_vector): Remove declaration.
5394 2004-07-21 Richard Henderson <rth@redhat.com>
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.
5408 2004-07-22 Ben Elliston <bje@au.ibm.com>
5410 * gdbinit.in: Set a breakpoint on internal_error.
5412 2004-07-21 Richard Henderson <rth@redhat.com>
5414 * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
5415 to create a new basic block.
5417 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
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.
5431 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
5433 * c-typeck.c (set_init_index): Require designator to be of integer
5436 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
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.
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
5450 (output_init_element): Likewise.
5451 (struct constructor_stack): Use struct c_expr for
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.
5457 2004-07-21 David S. Miller <davem@nuts.davemloft.net>
5459 * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
5462 2004-07-21 Eric Christopher <echristo@redhat.com>
5464 * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
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.
5487 2004-07-21 Steven Bosscher <stevenb@suse.de>
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.
5503 2004-07-21 Josef Zlomek <zlomekj@suse.cz>
5505 * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
5508 2004-07-21 Paolo Bonzini <bonzini@gnu.org>
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
5523 2004-07-20 Richard Henderson <rth@redhat.com>
5525 * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
5526 (expand_gimple_basic_block): out from here. Renamed from expand_block.
5528 2004-07-20 David S. Miller <davem@nuts.davemloft.net>
5530 * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
5531 enormous cost if not TARGET_HARD_MUL.
5533 2004-07-20 Andrew Pinski <apinski@apple.com>
5536 * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
5539 2004-07-21 Paul brook <paul@codesourcery.com>
5541 * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
5543 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
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.
5549 2004-07-20 Zack Weinberg <zack@codesourcery.com>
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.
5570 2004-07-20 Richard Henderson <rth@redhat.com>
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.
5578 2004-07-20 Richard Henderson <rth@redhat.com>
5580 * tree-pretty-print.c (dump_generic_node): Dump
5581 CALL_EXPR_HAS_RETURN_SLOT_ADDR.
5583 2004-07-20 Frank Ch. Eigler <fche@redhat.com>
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.
5591 2004-07-20 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
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
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.
5614 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
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
5620 (struct VEC): Use unsigned for num and alloc.
5621 * vec.c (struct vec_prefix): Likewise.
5622 (vec_o_reserve): Adjust.
5624 * dbxout.c (dbxout_type): Fix printf format.
5626 * tree.h (binfo_member): Remove.
5627 * tree.c (binfo_member): Remove.
5629 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
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.
5654 2004-07-20 Steven Bosscher <stevenb@suse.de>
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.
5673 2004-07-19 Paolo Bonzini <bonzini@gnu.org>
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
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):
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.
5749 2004-07-19 Roger Sayle <roger@eyesopen.com>
5751 * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
5753 2004-07-19 Jeff Law <law@redhat.com>
5755 * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
5756 (get_eq_expr_value): Use it. Simplify slightly.
5758 2004-07-19 Maciej W. Rozycki <macro@linux-mips.org>
5760 * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
5761 (umulsidi3_32bit_r4000): Likewise.
5763 2004-07-19 Nathan Sidwell <nathan@codesourcery.com>
5765 * vec.h: Propagate location information properly.
5766 (VEC_T_iterate): Add result pointer parameter.
5768 (VEC_T_reserve): Use it.
5770 2004-07-19 Daniel Jacobowitz <dan@debian.org>
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
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
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.
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.
5803 2004-07-19 Andreas Krebbel <krebbel1@de.ibm.com>
5805 * config/s390/s390-protos.h (s390_return_address_offset): Prototype
5807 * config/s390/s390.c (regclass_map initializer): Register 35 added to
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.
5827 2004-07-19 Roger Sayle <roger@eyesopen.com>
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.
5838 2004-07-19 Gabriel Dos Reis <gdr@integrable-solution.net>
5840 * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
5843 2004-07-19 Joseph S. Myers <jsm@polyomino.org.uk>
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
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
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.
5874 2004-07-18 Paolo Bonzini <bonzini@gnu.org>
5876 * config/sh/sh.c (sh_use_dfa_interface): Remove.
5877 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
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.
5886 2004-07-18 Zack Weinberg <zack@codesourcery.com>
5888 * config/pa/pa.md: Delete the two remaining define_peephole
5891 2004-07-18 Steven Bosscher <stevenb@suse.de>
5892 Joseph S. Myers <jsm@polyomino.org.uk>
5894 * c-common.c (c_common_truthvalue_conversion): Don't warn if
5895 TREE_NO_WARNING is set.
5897 2004-07-18 Roger Sayle <roger@eyesopen.com>
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_*
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.
5912 2004-07-18 Daniel Jacobowitz <dan@debian.org>
5914 * Makefile.in (tree-alias-common.o): Update dependencies.
5916 2004-07-17 Sebastian Pop <pop@cri.ensmp.fr>
5918 * cfgloop.c (flow_loop_nested_p): Fix comment.
5920 2004-07-17 Jason Merrill <jason@redhat.com>
5923 * stor-layout.c (relayout_decl): New fn.
5924 * tree.h: Declare it.
5925 (DECL_BY_REFERENCE): New macro.
5927 2004-07-17 Eric Botcazou <ebotcazou@act-europe.fr>
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.
5954 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
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
5969 2004-07-17 Andrew Pinski <pinskia@physics.uc.edu>
5972 * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5973 Remove white space after the backslash.
5975 2004-07-17 Eric Botcazou <ebotcazou@libertysurf.fr>
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
5983 2004-07-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
5990 (thread_jumps): Update dominance information and remove unreachable
5992 * tree-ssa-phiopt.c (replace_phi_with_stmt): Update dominance
5993 information and remove the unreachable block.
5995 2004-07-17 Graham Stott <graham.stott@btinternet.com>
5997 * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
5999 2004-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
6001 * doc/sourcebuild.texi: Remove libf2c entry.
6003 2004-07-17 Paolo Bonzini <bonzini@gnu.org>
6005 * config/i386/i386.md (movv16qi_internal): Fix typo.
6007 2004-07-17 Steven Bosscher <stevenb@suse.de>
6009 * final.c (final_scan_insn): Fix broken commit from previous
6012 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
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.
6019 2004-07-17 Steven Bosscher <stevenb@suse.de>
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.
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.
6032 * emit-rtl.c (force_line_numbers, restore_line_number_status):
6034 * rtl.h (force_line_numbers, restore_line_number_status):
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.
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
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
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
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
6066 * tree.h (pushcase, pushcase_range): Remove prototypes.
6067 (expand_start_case, add_case_node): Update prototypes.
6069 2004-07-16 Krister Walfridsson <cato@df.lth.se>
6071 * tree-inline.c (estimate_num_insns_1): Correct increase of count.
6073 2004-07-16 Richard Henderson <rth@redhat.com>
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.
6093 2004-07-16 Daniel Berlin <dberlin@dberlin.org>
6095 * tree-ssa-pre.c (insert_aux): Break out if we hit
6098 2004-07-16 Richard Henderson <rth@redhat.com>
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.
6113 2004-07-16 Richard Henderson <rth@redhat.com>
6115 * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
6116 switchification wrt CONSTRUCTOR. Document the reason.
6118 2004-07-16 Frank Ch. Eigler <fche@redhat.com>
6120 * tree-mudflap.c (mf_file_function_line_tree): Correct typo
6121 that prevented descriptive __mf_check source location strings.
6123 2004-07-16 Richard Henderson <rth@redhat.com>
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.
6148 * calls.c (expand_call): Reset old_stack_allocated after
6149 calling emit_stack_restore.
6151 2004-07-16 Richard Henderson <rth@redhat.com>
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.
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.
6165 2004-07-16 Richard Henderson <rth@redhat.com>
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.
6176 2004-07-16 Richard Henderson <rth@redhat.com>
6178 * function.c (pass_by_reference): True for all variable sized types.
6180 2004-07-16 Sebastian Pop <pop@cri.ensmp.fr>
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.
6187 2004-07-16 Steve Ellcey <sje@cup.hp.com>
6189 * builtins.c (expand_builtin_stpcpy): Do not create temporary
6192 2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
6194 * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
6196 2004-07-16 Andreas Krebbel <krebbel1@de.ibm.com>
6198 * config/s390/s390.md: Changed every occurence of BASE_REGISTER
6200 * config/s390/s390.c: Likewise.
6201 * config/s390/s390.h: Likewise.
6203 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6205 * config/mips/mips.md (addsi3, adddi3): Remove special handling
6206 of $sp adds. Remove REGNO checks from mips16 patterns.
6208 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6210 * config/mips/mips.md: Delete outdated comment.
6212 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
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.
6219 2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
6221 * genautomata.c (add_vect): Speedup by using integers as
6222 bit-vectors for walking through the comb_vect and finding
6225 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
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.
6232 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
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
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.
6251 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6253 * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
6255 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
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.
6266 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
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
6281 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6283 * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
6284 of 0...255 to 0 when inside a SET.
6286 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
6288 * config/mips/mips.md: Remove mips16 define_peepholes.
6290 2004-07-16 Daniel Berlin <dberlin@dberlin.org>
6292 * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
6293 (fini_pre): Remove fake edges.
6295 2004-07-15 Richard Henderson <rth@redhat.com>
6297 * tree-ssa-operands.c (get_expr_operands): Use a switch. Split out...
6298 (get_indirect_ref_operands, get_call_expr_operands): ... these.
6300 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
6302 * vec.h (VEC_address): New function.
6304 2004-07-14 Jason Merrill <jason@redhat.com>
6307 * gimplify.c (gimplify_arg): New fn, split out from...
6308 (gimplify_call_expr): Here. Special-case BUILT_IN_VA_START.
6310 2004-07-15 Roman Zippel <zippel@linux-m68k.org>
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.
6316 2004-07-15 Roman Zippel <zippel@linux-m68k.org>
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.
6322 2004-07-15 Aldy Hernandez <aldyh@redhat.com>
6324 * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
6327 2004-07-15 Aldy Hernandez <aldyh@redhat.com>
6329 * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
6331 * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
6333 2004-07-15 Richard Sandiford <rsandifo@redhat.com>
6335 * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
6336 calls in mips16 code.
6338 2004-07-15 Richard Sandiford <rsandifo@redhat.com>
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.
6343 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
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
6354 (mudflap_finish_file): Mark the mudflap static initializer as extra
6355 high priority, to beat all C++ static constructors.
6357 2004-07-15 Jeff Law <law@redhat.com>
6359 * loop.c (check_insn_for_givs): Restore check for code labels that was
6360 accidentally deleted by a recent checkin.
6362 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
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.
6367 2004-07-14 Richard Henderson <rth@redhat.com>
6369 * print-tree.c (print_node): Fix casts last change.
6371 2004-07-15 Paul Brook <paul@codesourcery.com>
6373 * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
6374 to TARGET_UNWIND_INFO.
6375 * except.c (output_function_exception_table): 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
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.
6391 2004-07-14 Richard Henderson <rth@redhat.com>
6393 * print-tree.c (print_node): Handle SSA_NAME.
6395 2004-07-14 James E Wilson <wilson@specifixinc.com>
6398 * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
6399 and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
6401 2004-07-15 Jakub Jelinek <jakub@redhat.com>
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.
6407 2004-07-14 Per Bothner <per@bothner.com>
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.
6415 2004-07-14 Eric Christopher <echristo@redhat.com>
6417 * calls.c (expand_call): Fix typo in comment.
6419 2004-07-14 Steve Ellcey <sje@cup.hp.com>
6421 * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
6422 comparision of TFmode.
6424 2004-07-14 Richard Henderson <rth@redhat.com>
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.
6436 2004-07-14 Mike Stump <mrs@apple.com>
6438 * config/darwin.h (WINT_TYPE): Define to be int to match
6439 system header files.
6441 2004-07-14 Bob Wilson <bob.wilson@acm.org>
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.
6448 2004-07-14 Per Bothner <per@bothner.com>
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.
6455 2004-07-14 Richard Henderson <rth@redhat.com>
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
6462 (calc_idoms): Honor fake_exit_edge.
6464 2004-07-13 Jason Merrill <jason@redhat.com>
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.
6472 2004-07-14 Richard Henderson <rth@redhat.com>
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.
6479 2004-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6481 * pa.c (fix_range): New function to mark a range(s) of registers as
6483 (override_options): Call fix_range if the -mfixed-range option string
6485 * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
6486 * doc/invoke.texi (-mfixed-range): Document new option.
6488 2004-07-14 David Edelsohn <edelsohn@gnu.org>
6490 * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
6492 (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
6494 2004-07-14 Roger Sayle <roger@eyesopen.com>
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.
6502 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
6504 * tree-dfa.c (make_rename_temp): *Really* work just
6505 like create_tmp_var if called while outside SSA form.
6507 2004-07-14 Ulrich Weigand <uweigand@de.ibm.com>
6509 * config/s390/s390.md ("udivsi3"): Ensure trap is generated
6510 for division by zero.
6511 ("umodsi3"): Likewise.
6513 2004-07-14 Richard Sandiford <rsandifo@redhat.com>
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.
6520 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
6522 * expmed.c: Remove more references to QUEUED in the comments.
6525 2004-07-14 Richard Sandiford <rsandifo@redhat.com>
6528 2004-07-13 Richard Henderson <rth@redhat.com>
6529 * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
6532 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
6534 * tree-dfa.c (make_rename_temp): Work just like
6535 create_tmp_var if called while outside SSA form.
6537 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
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.
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.
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.
6591 2004-07-14 Ben Elliston <bje@au.ibm.com>
6593 * vec.h: Comment fix.
6595 2004-07-13 Richard Henderson <rth@redhat.com>
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.
6704 2004-07-14 Richard Henderson <rth@redhat.com>
6705 Richard Sandiford <rsandifo@redhat.com>
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.
6715 2004-07-13 Bob Wilson <bob.wilson@acm.org>
6717 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
6718 arguments for COND_EXPR in big-endian adjustment code.
6720 2004-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
6727 2004-07-13 Diego Novillo <dnovillo@redhat.com>
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.
6736 2004-07-13 Diego Novillo <dnovillo@redhat.com>
6738 * tree-optimize.c (execute_todo): Flush DUMP_FILE before
6741 2004-07-13 Ulrich Weigand <uweigand@de.ibm.com>
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
6747 2004-07-13 Per Bothner <per@bothner.com>
6749 * collect2.c (main): Handle --no-demangle and --demangle flags.
6751 2004-07-13 Sebastian Pop <pop@cri.ensmp.fr>
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.
6762 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
6769 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
6777 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
6778 Lloyd Parkes <lloyd@must-have-coffee.gen.nz>
6781 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
6782 /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
6784 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
6785 Martin Sebor <sebor@roguewave.com>
6788 * doc/invoke.texi (SPARC options): Document -threads
6789 and -pthreads on Solaris.
6791 2004-07-13 Richard Henderson <rth@redhat.com>
6793 * builtins.c (std_gimplify_va_arg_expr): Handle types passed
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
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.
6807 2004-07-13 Richard Henderson <rth@redhat.com>
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.
6816 2004-07-13 Richard Henderson <rth@redhat.com>
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
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.
6874 2004-07-13 Anthony Heading <aheading@jpmorgan.com>
6876 * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
6877 * configure: Rebuilt.
6879 2004-07-13 Richard Sandiford <rsandifo@redhat.com>
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
6889 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
6890 (override_options): Remove handling of TARGET_NAME_REGS.
6892 2004-07-13 Richard Sandiford <rsandifo@redhat.com>
6894 * config/mips/mips.h (TARGET_*): Boolify.
6896 2004-07-12 Nick Clifton <nickc@redhat.com>
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
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.
6914 2004-07-12 James E Wilson <wilson@specifixinc.com>
6916 * Makefile.in (AR): Use @AR@ not ar.
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.
6923 2004-07-12 David S. Miller <davem@nuts.davemloft.net>
6925 * config/sparc/sparc.md (ashlsi3): Eliminate const 1
6927 (ashldi3_sp64): Likewise.
6929 2004-07-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6932 * pa.c (function_arg): Update comment.
6933 * pa.h (BLOCK_REG_PADDING): Define.
6935 2004-07-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6937 PR tree-optimization/16461
6938 * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
6939 arguments of phi nodes.
6941 2004-07-12 Devang Patel <dpatel@apple.com>
6943 * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
6945 2004-07-12 Steve Ellcey <sje@cup.hp.com>
6947 * function.c (expand_function_start): Ensure r_save is in Pmode.
6948 * calls.c (prepare_call_address): Ensure static_chain_value is
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.
6955 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
6958 * config/ia64/ia64.c (bundling): Don't count ignored insns.
6960 2004-07-12 Richard Henderson <rth@redhat.com>
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.
6968 2004-07-12 Alexandre Oliva <aoliva@redhat.com>
6970 * passes.c (rest_of_decl_compilation): Don't defer call of
6971 assemble_variable if its DECL_RTL is already set.
6973 2004-07-12 Sebastian Pop <pop@cri.ensmp.fr>
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
6981 * tree-flow-inline.h (loop_containing_stmt): New function.
6982 * tree-scalar-evolution.c: Add implementation.
6983 * tree-scalar-evolution.h: Add declarations.
6985 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
6987 PR rtl-optimization/15921
6988 * Makefile.in (global.o): Add recog.h.
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
6994 (earlyclobber_regclass, earlyclobber_regclass_length): The new
6996 (check_earlyclobber, regclass_intersect,
6997 mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
6999 (calculate_local_reg_bb_info): Calculate value of earlyclobber.
7000 (make_accurate_live_analysis): Modify pavin.
7002 2004-07-12 Diego Novillo <dnovillo@redhat.com>
7004 * tree-cfg.c (find_taken_edge): Statically compute the truth
7005 value of a predicate comparing an SSA_NAME to itself.
7007 2004-07-12 Roger Sayle <roger@eyesopen.com>
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.
7013 2004-07-12 Paolo Bonzini <bonzini@gnu.org>
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.
7021 2004-07-12 Roger Sayle <roger@eyesopen.com>
7023 * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
7026 2004-07-12 Richard Sandiford <rsandifo@redhat.com>
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
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.
7038 2004-07-12 Ben Elliston <bje@au.ibm.com>
7040 * doc/invoke.texi (Optimize Options): Document -frename-registers
7041 not being enabled by default at -O3.
7043 2004-07-11 Roger Sayle <roger@eyesopen.com>
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.
7050 2004-07-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7052 * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
7054 2004-07-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7056 PR tree-optimization/15654
7057 * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
7059 2004-07-11 Roger Sayle <roger@eyesopen.com>
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.
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.
7069 * fold-const.c (fold_ignored_result): New function to strip
7070 non-side-effecting tree nodes from an expression whose result
7072 (fold_convert): Call fold_ignored_result when casting a value
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.
7081 2004-07-11 Richard Henderson <rth@redhat.com>
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.
7091 2004-07-11 Richard Henderson <rth@redhat.com>
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.
7100 2004-07-11 Roger Sayle <roger@eyesopen.com>
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.
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.
7120 2004-07-11 Roger Sayle <roger@eyesopen.com>
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.
7129 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
7131 * LANGUAGES: Remove obsolete information.
7133 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
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.
7139 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
7141 * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
7142 added to TLS symbol addresses.
7144 2004-07-11 Richard Henderson <rth@redhat.com>
7146 * expmed.c (init_expmed): Use stack-local structures for
7147 temporary rtl. Don't recognize shifts.
7149 2004-07-11 Richard Henderson <rth@redhat.com>
7151 * expr.c (store_expr): Don't fiddle subreg promotion for types
7152 with precision smaller than the mode.
7154 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
7156 * tree.h (all_types_permanent): Remove.
7158 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
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):
7180 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
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.
7188 2004-07-11 Phil Edwards <phil@codesourcery.com>
7190 * configure.ac: Alphabetize --enable-checking list, add
7191 missing valgrind entry.
7192 * configure: Regenerate.
7194 2004-07-11 Phil Edwards <phil@codesourcery.com>
7196 * doc/install.texi (Testing): Fix syntax in "make check" example.
7198 2004-07-10 James E Wilson <wilson@specifixinc.com>
7200 * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
7202 2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7204 PR rtl-optimization/16001
7205 * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
7208 2004-07-10 Geoffrey Keating <geoffk@apple.com>
7210 * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
7212 2004-07-10 Steve Kargl <sgk@troutmask.apl.washington.edu>
7213 James Morrison <phython@gcc.gnu.org>
7215 * doc/contrib.texi (Contributors): Add gfortran contributors and
7216 fix a couple of typos.
7218 2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7220 PR rtl-optimization/15387
7221 * calls.c (check_sibcall_argument_overlap_1): Handle pointers
7222 to incoming args space correctly.
7224 2004-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
7229 2004-07-10 Daniel Jacobowitz <dan@debian.org>
7231 * config/i386/i386.c (override_options): Pick a 64-bit CPU
7232 for the default tuning if TARGET_64BIT.
7234 2004-07-10 Richard Henderson <rth@redhat.com>
7236 * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
7237 to HOST_WIDE_INT. Fold pad-args-down arithmetic.
7239 2004-07-10 Jakub Jelinek <jakub@redhat.com>
7241 * expr.h (store_bit_field, extract_bit_field): Remove last argument.
7242 * expmed.c (store_bit_field, extract_bit_field): Remove last
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.
7252 2004-07-10 Richard Henderson <rth@redhat.com>
7254 * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
7256 2004-07-09 Mike Stump <mrs@apple.com>
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
7263 2004-07-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
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.
7289 2004-07-09 Richard Henderson <rth@redhat.com>
7291 * builtins.c (expand_builtin_stpcpy): Don't modify len.
7293 * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
7296 2004-07-10 Kelley Cook <kcook@gcc.gnu.org>
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.
7302 2004-07-09 Jan Beulich <jbeulich@novell.com>
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.
7312 2004-07-09 Richard Henderson <rth@redhat.com>
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.
7319 2004-07-09 David S. Miller <davem@nuts.davemloft.net>
7321 * config/sparc/sparc.c (*_costs): Scale instruction costs
7323 (sparc_rtx_costs): Adjust as appropriate.
7325 2004-07-09 Jan Beulich <jbeulich@novell.com>
7327 * config/i386/mm3dnow.h: New.
7328 * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
7330 2004-07-09 Richard Henderson <rth@redhat.com>
7332 * simplify-rtx.c (simplify_const_relational_operation): Only
7333 look at bounds of scalar integers.
7335 2004-07-09 Jan Beulich <jbeulich@novell.com>
7337 * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
7339 2004-07-09 Andrew Pinski <apinski@apple.com>
7341 * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
7343 (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
7344 UOBJC_METACLASS_decl.
7346 2004-07-09 James E Wilson <wilson@specifixinc.com>
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.
7352 2004-07-09 Jan Beulich <jbeulich@novell.com>
7354 * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
7355 permissible for unary plus.
7357 2004-07-09 Jan Beulich <jbeulich@novell.com>
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.
7371 2004-07-09 David S. Miller <davem@nuts.davemloft.net>
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
7382 2004-07-09 Steven Bosscher <stevenb@suse.de>
7384 * doc/md.texi (Processor pipeline description): Mention that
7385 the old pipeline description is deprecated.
7387 * config/rs6000/7450.md (automaton ppc7450): Split up, move
7388 mciu_7450 function unit to...
7389 (automaton ppc7450mciu): ...new automaton.
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.
7400 * stmt.c (conditional_context): Remove prototype.
7401 * tree.h (conditional_context): Remove.
7402 * tree-cfg.c (pre_insert_on_edge): Remove.
7404 * c-common.h (c_expand_asm_operands): Remove prototype.
7405 * c-typeck.c (c_expand_asm_operands): Remove.
7407 2004-07-09 Jan Beulich <jbeulich@novell.com>
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
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
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.
7426 2004-07-09 Richard Henderson <rth@redhat.com>
7428 * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
7430 2004-07-09 Eric Christopher <echristo@redhat.com>
7432 * config/rs6000/40x.md: Split into two automatons.
7434 2004-07-09 Zack Weinberg <zack@codesourcery.com>
7435 Andrew Pinski <apinski@apple.com>
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.
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
7451 (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
7452 (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
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.
7460 2004-07-09 Zack Weinberg <zack@codesourcery.com>
7462 * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
7464 2004-07-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7467 * pa.c (output_indirect_call): Use %r2 as the link register when
7468 calling $$dyncall with a pc-relative branch.
7470 2004-07-08 Gerald Pfeifer <gerald@pfeifer.com>
7472 * doc/install.texi (Binaries): Mention OpenPKG.
7474 2004-07-09 Diego Novillo <dnovillo@redhat.com>
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
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
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.
7500 2004-07-09 Paolo Bonzini <bonzini@gnu.org>
7502 * config/arc/arc.md: Switch to DFA-based scheduler description.
7503 * config/arc/arc.c: Switch to DFA-based scheduler description.
7505 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
7507 * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
7510 2004-07-09 Richard Henderson <rth@redhat.com>
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.
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.
7524 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
7527 * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
7528 and DImode to use +/-4k offset.
7530 2004-07-09 Richard Henderson <rth@redhat.com>
7532 * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
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.
7539 * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
7540 * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
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.
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.
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.
7557 2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
7564 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
7566 * arm.c (arm_cpp_interwork): New variable.
7567 (arm_override_options): Set it if TARGET_INTERWORK was on the command
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.
7573 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
7575 * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
7577 2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
7580 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
7581 Override default settings to account for -m32 and -m64.
7583 2004-07-08 Randolph Chung <tausq@debian.org>
7585 * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
7587 2004-07-09 Alexandre Oliva <aoliva@redhat.com>
7589 * builtins.c (fold_builtin_strncpy): Make sure len is a constant
7590 before comparing it as such.
7592 2004-07-08 Richard Henderson <rth@redhat.com>
7594 * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
7595 temporary. Use bit arithmetic to align.
7597 2004-07-08 Jerry Quinn <jlquinn@optonline.net>
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):
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):
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):
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):
7700 * lcm.c (optimize_mode_switching): Likewise.
7701 * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
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):
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):
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.
7776 2004-07-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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.
7793 2004-07-08 Kaz Kojima <kkojima@gcc.gnu.org>
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;
7803 2004-07-08 Richard Henderson <rth@redhat.com>
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.
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.
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.
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.
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.
7831 2004-05-31 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
7833 * system.h: Prototype getpagesize if missing.
7834 * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
7835 * configure: Regenerate.
7836 * config.in: Regenerate.
7838 2004-07-08 Richard Henderson <rth@redhat.com>
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.
7846 2004-07-08 Vladimir Makarov <vmakarov@redhat.com>
7849 * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
7850 of asm_noperands result.
7852 2004-07-08 Richard Henderson <rth@redhat.com>
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.
7859 2004-07-08 Richard Henderson <rth@redhat.com>
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.
7865 2004-07-08 Jan Beulich <jbeulich@novell.com>
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
7872 2004-07-08 Geoffrey Keating <geoffk@apple.com>
7874 * config/rs6000/darwin-ldouble.c: Correct reference
7875 to the Linnainmaa paper.
7877 2004-07-08 Richard Henderson <rth@redhat.com>
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.
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.
7889 2004-07-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7891 * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
7893 2004-07-08 Zack Weinberg <zack@codesourcery.com>
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.
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.
7914 2004-07-08 Zack Weinberg <zack@codesourcery.com>
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.
7923 * tree.c: Revert changes of 2004-07-05; no special treatment
7924 for TRANSLATION_UNIT_DECLs.
7925 * Makefile.in (tree.o): Update dependencies.
7927 2004-07-08 Roger Sayle <roger@eyesopen.com>
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
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.
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".
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.
7961 2004-07-08 Alexandre Oliva <aoliva@redhat.com>
7963 * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
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.
7973 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
7984 2004-07-08 Richard Henderson <rth@redhat.com>
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.
7997 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
7998 Jakub Jelinek <jakub@redhat.com>
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.
8005 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
8008 * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
8010 2004-07-08 Diego Novillo <dnovillo@redhat.com>
8012 * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
8013 the handling of clobbering ASM_EXPRs.
8015 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
8018 * config/sparc/sparc.c (function_value): In 64-bit mode,
8019 return the aggregates larger than 16 bytes like unions.
8021 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
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
8028 (sparc_emit_set_const64): Pass zero as 'temp' argument to above
8029 function before reload.
8031 2004-07-08 Nathan Sidwell <nathan@codesourcery.com>
8033 * vec.c (vec_assert_fail): Remove duplicate 'function'.
8035 * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
8037 * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
8038 Allocation is signed.
8039 (VEC_reserve): Return flag, allocation is signed.
8041 2004-07-08 Richard Henderson <rth@redhat.com>
8043 * tree-ssa-ccp.c (fold_stmt): Get type directly from
8044 OBJ_TYPE_REF_OBJECT.
8046 2004-07-08 Joseph S. Myers <jsm@polyomino.org.uk>
8047 Neil Booth <neil@daikokuya.co.uk>
8051 * c-decl.c (finish_struct): Ensure bit-fields are given the
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
8058 * langhooks.h (reduce_bit_field_operations): New hook.
8059 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
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
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.
8070 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
8072 * c-common.c (c_common_nodes_and_builtins): Do not
8073 create __builtin_ptrdiff_t and __builtin_size_t.
8075 2004-07-08 Andrew Pinski <apinski@apple.com>
8077 * Makefile.in (libbackend.o): Add -combine to the gcc
8080 2004-07-08 Nick Clifton <nickc@redhat.com>
8082 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
8085 2004-07-08 Richard Henderson <rth@redhat.com>
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.
8133 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
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):
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
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.
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.
8165 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
8176 2004-07-08 Diego Novillo <dnovillo@redhat.com>
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
8187 * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
8188 (delete_tree_ssa): Reset addressable_vars.
8190 2004-07-07 Jan Beulich <jbeulich@novell.com>
8191 Richard Henderson <rth@redhat.com>
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.
8198 2004-07-07 Jan Beulich <jbeulich@novell.com>
8200 * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
8202 * expmed.c (emit_store_flag): Also special-case double-word
8203 (in-)equality comparison against -1.
8205 * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
8206 passing arguments the containers for which are registers.
8208 * calls.c (emit_library_call_value_1): Use mode of function parameter
8209 rather than that of argument since constants have none.
8211 2004-07-08 Alexandre Oliva <aoliva@redhat.com>
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
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
8244 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
8245 * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
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
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
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
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__
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
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
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
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
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
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
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
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
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
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
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.
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
8625 2003-02-27 Alexandre Oliva <aoliva@redhat.com>
8626 * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
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.
8632 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
8634 * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
8636 2004-07-07 Per Bothner <per@bothner.com>
8638 * flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE.
8640 2004-07-07 Mike Stump <mrs@apple.com>
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.
8646 2004-07-07 Richard Henderson <rth@redhat.com>
8648 * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
8649 through any value-preserving cast.
8651 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
8653 * function.c (assign_parm_find_data_types): Call
8654 FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
8656 2004-07-07 Steven Bosscher <stevenb@suse.de>
8658 * tree-cfg.c (group_case_labels): Remove case labels that have
8659 the same target as the default case.
8661 2004-07-07 Steven Bosscher <stevenb@suse.de>
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.
8667 2004-07-07 Andrew Pinski <apinski@apple.com>
8669 * configure: Regenerate with the right autoconf.
8671 2004-07-07 David Edelsohn <edelsohn@gnu.org>
8673 * ifcvt.c (total_bb_rtx_cost): New function.
8674 (find_if_case_1): Compare rtx_cost of basic block to cost of
8676 (find_if_case_2): Same.
8678 2004-07-07 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
8693 2004-07-07 Andrew Pinski <apinski@apple.com>
8695 PR tree-optimization/15777
8696 * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
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.
8706 2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
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.
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.
8720 2004-07-07 Roger Sayle <roger@eyesopen.com>
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.
8734 2004-07-07 Richard Henderson <rth@redhat.com>
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.
8742 2004-07-07 Jakub Jelinek <jakub@redhat.com>
8744 * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
8745 from -mtune= option.
8747 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
8749 * builtins.c: Rename movstr*, except for movstrict*, to
8750 movmem* and clrstr* to clrmem*.
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.
8805 2004-07-07 Richard Sandiford <rsandifo@redhat.com>
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.
8817 2004-07-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8820 * function.c (assign_parms): Fix typo from previous change.
8822 2004-07-07 Jason Merrill <jason@redhat.com>
8825 * doc/extend.texi (C++ Interface): Correct information and
8828 2004-07-07 Vladimir Makarov <vmakarov@redhat.com>
8833 * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
8836 2004-07-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8839 * config/m32r/m32r.c (m32r_function_symbol): New function:
8840 Generate a symbol name RTX with the correct m32r specific flags
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
8847 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
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
8854 (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
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.
8868 2004-07-07 Nick Clifton <nickc@redhat.com>
8870 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
8871 arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
8873 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
8875 * vec.h: Fix the example use.
8877 2004-07-06 Richard Henderson <rth@redhat.com>
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.
8889 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
8891 * doc/sourcebuild.texi: Use semicolons instead of commas in
8894 2004-07-06 Richard Henderson <rth@redhat.com>
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
8903 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
8905 * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
8906 (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
8908 2004-07-06 Richard Henderson <rth@redhat.com>
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.
8915 2004-07-06 Roger Sayle <roger@eyesopen.com>
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".
8922 2004-07-06 Steven Bosscher <stevenb@suse.de>
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.
8941 2004-07-06 Daniel Berlin <dberlin@dberlin.org>
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.
8950 2004-07-06 Daniel Berlin <dberlin@dberlin.org>
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.
8957 (compute_avail): Reverse ordering of tests.
8958 Valuize INDIRECT_REF as well.
8960 2004-07-06 Richard Sandiford <rsandifo@redhat.com>
8962 PR rtl-optimization/16380
8963 * loop.c (check_dbra_loop): Sink comparison instructions if they
8964 do something other than set cc0.
8966 2004-07-06 James E Wilson <wilson@specifixinc.com>
8968 * doc/interface.texi (longjmp and automatic variables): Delete
8969 paragraph recommending taking the address of a variable.
8971 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
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
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.
8983 2004-07-06 Mark Mitchell <mark@codesourcery.com>
8985 * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
8986 (gt-langhooks.h): Remove.
8988 2004-07-06 George Helffrich <george@gly.bris.ac.uk>
8990 * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
8992 2004-07-06 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
9004 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
9006 * dbxout.c (dbxout_type): Don't test whether the binfo slot of
9007 RECORD, UNION & QUAL_UNION is actually a binfo.
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.
9018 2004-07-06 Steven Bosscher <stevenb@suse.de>
9020 * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
9022 * config/mcore/mcore.md: Model memory latency with a simple DFA
9023 pipeline description instead of a define_function_unit.
9025 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
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
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.
9049 2004-07-05 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
9055 2004-07-05 Roger Sayle <roger@eyesopen.com>
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.
9063 2004-07-05 Jakub Jelinek <jakub@redhat.com>
9065 * expr.c (expand_assignment): Disable the bitfield += optimizations.
9067 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
9069 * doc/sourcebuild.texi: Revert previous patch.
9071 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
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
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
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.
9100 2004-07-05 Richard Henderson <rth@redhat.com>
9102 * function.c (assign_parm_setup_reg): Properly rename variables in
9103 FUNCTION_ARG_CALLEE_COPIES section.
9105 2004-07-05 Zack Weinberg <zack@codesourcery.com>
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):
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.
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.
9125 2004-07-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9127 * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
9128 displacements with the spatial-locality cache-control completer.
9130 2004-07-05 Zack Weinberg <zack@codesourcery.com>
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
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.
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.
9156 * Makefile.in (tree.o): Update dependencies.
9157 (GTFILES): Remove langhooks.c.
9159 2004-07-05 Roger Sayle <roger@eyesopen.com>
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".
9168 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
9170 * sourcebuild.texi (Config Fragments): Use @comma{} in
9171 cross-reference to section title.
9173 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
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
9181 (gimplify_compound_lval): See if we can strip any useless conversion.
9182 (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
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.
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.
9198 * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
9201 * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
9202 bounds if bounds aren't constant.
9204 * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
9206 * function.c, langhooks-def.h, langhooks.h: Move max_size hook
9207 to type hooks; remove bogus PARAMS.
9209 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
9211 * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
9212 * dwarf2out.c (add_data_member_location_attribute): Check for
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.
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
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.
9250 2004-07-05 Steven Bosscher <stevenb@suse.de>
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.
9256 2004-07-05 Richard Sandiford <rsandifo@redhat.com>
9259 * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
9260 to mips_expand_unaligned_load, mips_expand_unaligned_store, and
9263 2004-07-05 Josef Zlomek <zlomekj@suse.cz>
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
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.
9278 2004-07-04 Richard Henderson <rth@redhat.com>
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.
9291 2004-07-04 Daniel Berlin <dberlin@dberlin.org>
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
9297 (bitmap_set_contains): New function.
9298 (bitmap_set_replace_value): Add comment on why we do it
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
9305 (bitmap_find_leader): Change algorithm used.
9306 (find_or_generate_expression): Update use of functions for new
9308 (create_expression_by_pieces): Ditto.
9309 (insert_aux): Ditto.
9311 (add_to_sets): Ditto.
9313 (execute_pre): Ditto.
9314 (compute_avail): Ditto.
9315 Also ignore virtual phis.
9317 2004-07-04 Richard Sandiford <rsandifo@redhat.com>
9319 * combine.c (simplify_comparison): Fix comment typo.
9321 2004-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
9331 2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
9333 * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
9334 and assert system is bsd.
9336 2004-07-04 Richard Sandiford <rsandifo@redhat.com>
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.
9345 2004-07-04 Steven Bosscher <stevenb@suse.de>
9347 * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
9349 * config/iq2000/iq2000.md: Translate old pipeline description to an
9352 2004-07-04 Roger Sayle <roger@eyesopen.com>
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
9361 2004-07-04 Richard Henderson <rth@redhat.com>
9364 * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
9366 2004-07-04 Mark Mitchell <mark@codesourcery.com>
9368 * configure.ac (ranlib_flags): New variable.
9369 * Makefile.in (RANLIB_FLAGS): New variable.
9370 (libbackend.a): Use it.
9371 * configure: Regenerated.
9373 2004-07-04 Roger Sayle <roger@eyesopen.com>
9375 * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
9376 a "sign mask" instead of using ashr_optab directly.
9378 2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
9380 * doc/cpp.texi: Don't document what we do for ill-formed expressions.
9381 * doc/cppopts.texi: Clarify processing of command-line defines.
9383 2004-07-04 Gerald Pfeifer <gerald@pfeifer.com>
9385 * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
9387 2004-07-04 Richard Henderson <rth@redhat.com>
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.
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.
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.
9465 2004-07-03 Richard Henderson <rth@redhat.com>
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.
9472 2004-07-03 Richard Henderson <rth@redhat.com>
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.
9479 2004-07-03 Richard Henderson <rth@redhat.com>
9481 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
9484 2004-07-03 Joseph S. Myers <jsm@polyomino.org.uk>
9486 * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
9487 with tree_int_cst_equal.
9489 2004-07-03 Andreas Schwab <schwab@suse.de>
9491 * config/ia64/ia64.md: Define new attribute "empty".
9492 (prologue_use, nop_x, insn_group_barrier): Set it.
9494 * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
9495 skip over "empty" insns.
9497 2004-07-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
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.
9504 * tree-sra.c (generate_element_init): Remove any useless conversions.
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).
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.
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.
9525 2004-07-03 Steven Bosscher <stevenb@suse.de>
9527 * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
9528 * config/sh/sh.md: Convert the SH1 pipeline description to
9531 2004-07-02 Zack Weinberg <zack@codesourcery.com>
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
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.
9553 * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
9554 (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
9556 2004-07-02 Richard Henderson <rth@redhat.com>
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.
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.
9596 2004-07-03 Joseph S. Myers <jsm@polyomino.org.uk>
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
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.
9608 2004-07-02 Daniel Berlin <dberlin@dberlin.org)
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
9626 (execute_pre): Ditto.
9628 2004-07-02 Roger Sayle <roger@eyesopen.com>
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
9638 2004-07-02 Richard Henderson <rth@redhat.com>
9640 * expmed.c (make_tree): Don't use SET_DECL_RTL.
9642 2004-07-02 Steven Bosscher <stevenb@suse.de>
9644 * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
9646 2004-07-01 Richard Henderson <rth@redhat.com>
9648 * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
9649 (alpha_gp_save_rtx): Use assign_stack_local instead of
9652 2004-07-01 Richard Henderson <rth@redhat.com>
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.
9659 2004-07-01 Richard Henderson <rth@redhat.com>
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.
9670 2004-07-01 Richard Henderson <rth@redhat.com>
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.
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.
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
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.
9720 2004-07-02 Kazu Hirata <kazu@cs.umass.edu>
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
9726 2004-07-02 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
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.
9740 2004-07-01 Richard Henderson <rth@redhat.com>
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.
9746 2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk>
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".
9752 2004-07-01 Richard Henderson <rth@redhat.com>
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.
9760 2004-07-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9762 * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
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.
9769 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
9771 * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
9773 2004-07-01 Per Bothner <per@bothner.com>
9775 * final.c (final): Fix typo reported by Aaron W. LaFramboise.
9777 2004-07-01 Jakub Jelinek <jakub@redhat.com>
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.
9783 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
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.
9790 2004-07-01 Roger Sayle <roger@eyesopen.com>
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.
9796 2004-07-01 Jerry Quinn <jlquinn@optonline.net>
9798 * alias.c (get_alias_set, canon_rtx, get_addr,
9799 nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
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):
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):
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):
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.
9904 2004-07-01 Steven Bosscher <stevenb@suse.de>
9906 * stmt.c (check_seenlabel): Remove.
9907 (pushcase, pushcase_range, expand_end_case_type): Don't call it.
9909 2004-07-01 Richard Henderson <rth@redhat.com>
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.
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.
9924 2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk>
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
9943 (struct format_wanted_type): Update comment.
9945 2004-07-01 Nick Clifton <nickc@redhat.com>
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
9952 * doc/tm.texi: Document the new target hook.
9954 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
9956 * builtins.c (fold_builtin_classify): Fix typo.
9958 2004-07-01 Richard Henderson <rth@redhat.com>
9960 * function.c (identify_blocks, identify_blocks_1): Remove.
9961 * function.h (identify_blocks): Remove.
9962 * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
9964 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
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.
9973 2004-07-01 Richard Henderson <rth@redhat.com>
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.
9984 2004-07-01 Richard Henderson <rth@redhat.com>
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.
9993 See ChangeLog.11 for earlier changes.