]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
Revert 2004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
[gcc.git] / gcc / ChangeLog
CommitLineData
108ebf88
JM
12004-09-10 Joseph S. Myers <jsm@polyomino.org.uk>
2
3 * toplev.c (warn_deprecated_use): Correct logic for saying "type"
4 in diagnostic. Don't dereference NULL TYPE_NAME.
5
6cb38cd4
KH
62004-09-10 Kazu Hirata <kazu@cs.umass.edu>
7
8 * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
9 tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
10 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
11 value-prof.c: Fix comment typos. Follow spelling conventions.
12
b829f3fa
JH
132004-09-10 Jan Hubicka <jh@suse.cz>
14
15 * tree-ssa-dce.c (remove_dead_stmt): Update profile.
16 * tree-split_edge.c (tree_split_edge): Likewise.
17 (thread_jumps): Likewise.
18
229031d0
KH
192004-09-10 Kazu Hirata <kazu@cs.umass.edu>
20
21 * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
22 typos.
23
9b3e897d
PB
242004-09-10 Paolo Bonzini <bonzini@gnu.org>
25
26 * cgraph.h (cgraph_dump_file): Do not declare.
27 * cgraphunit.c (cgraph_dump_file): Declare as static.
28 (init_cgraph): New.
29 * toplev.c (cgraph_dump_file): Do not declare.
30 (compile_file): Call init_cgraph.
31 * tree-dump.c (dump_files): Add IPA dump file, remove
32 XML dump of call graph.
33 (get_dump_file_name): Support IPA dump file naming scheme.
34 * tree.h (enum tree_dump_index): Add IPA dump file, remove
35 XML dump of call graph.
36 * doc/invoke.texi (Debugging Options): Document the new options.
37
c3ee0579
RS
382004-09-10 Richard Sandiford <rsandifo@redhat.com>
39
40 * doc/extend.texi: Document the FR-V built-in functions.
41
236f9832
JW
422004-09-09 James E Wilson <wilson@specifixinc.com>
43
44 * doc/sourcebuild.texi: Delete libbanshee reference.
45
5a29def1
KC
462004-09-10 Kelley Cook <kcook@gcc.gnu.org>
47
48 * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
49
3274deff
JW
502004-09-09 James E Wilson <wilson@specifixinc.com>
51
52 * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
53 before calling vector_types_convertible_p.
54 (digest_init): Check that inside_init has VECTOR_TYPE before calling
55 vector_types_convertible_p. Don't give another error if
56 convert_for_assignment returns error_mark_node.
57
049e524f
RS
582004-09-09 Roger Sayle <roger@eyesopen.com>
59
60 PR middle-end/17055
61 * fold-const.c (build_zero_vector): New function to construct a
62 vector (either floating point or integer) of zeros.
63 (fold_convert): Internally, enable conversions of integer zero
64 to arbitrary vector types, using the new build_zero_vector.
65
1b83d209
RS
662004-09-09 Roger Sayle <roger@eyesopen.com>
67
68 * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
69 expand a left shift by an immediate constant as either an ashl or
70 a sequence of additions.
71 (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
72 instead of calling gen_ashlsi3 with a constant directly.
73
903a5059
RS
742004-09-09 Roger Sayle <roger@eyesopen.com>
75
76 * config/i386/i386.c (ix86_split_long_move): When optimizing for
77 size, and the low and high parts of a DImode constant are equal,
78 copy one register to another instead of loading the same immediate
79 value twice.
80
469c26f1
RH
812004-09-09 Richard Henderson <rth@redhat.com>
82
83 PR middle-end/17367
84 * function.c (assign_parm_setup_block): Only put PARALLELs into
85 a register if use_register_for_decl.
86
1aee688e
EC
872004-09-09 Eric Christopher <echristo@redhat.com>
88
89 * ra-colorize.c (reset_lists): Move variable declaration inside
90 ENABLE_CHECKING to avoid unused variable warnings when
91 not --enable-checking.
92 (check_colors): Ditto.
93
89029cd4
MS
942004-09-09 Mike Stump <mrs@apple.com>
95
96 * version.c (version_string): Bump to 4.0.0.
693ff889 97 * doc/include/gcc-common.texi (version-GCC): Likewise.
89029cd4 98
3f3174b6
JJ
992004-09-10 Jakub Jelinek <jakub@redhat.com>
100
101 * doc/extend.texi (nothrow attribute): The attribute is not
102 implemented in 3.2 and earlier.
103
4c80d5ac
SE
1042004-09-09 Steve Ellcey <sje@cup.hp.com>
105
106 * genrecog.c (compute_predicate_codes): Use op0_codes
107 instead of codes.
108
2ec3ab99
UW
1092004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
110
111 * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
112 implementation changes.
113
0b21d1dc
UW
1142004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
115
116 * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
117 a PARALLEL instead of a SET due to added clobbers.
118
7bb09d15
UW
1192004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
120
1aee688e 121 * reload.c (find_reloads_address): Pass correct operand to
7bb09d15
UW
122 maybe_memory_address_p.
123
0a050485
DB
1242004-09-09 Daniel Berlin <dberlin@dberlin.org>
125
126 * Makefile.in: Remove libbanshee, tree-alias-*.
127 Remove tree-alias-common.h dependencies.
128 * common.opt: Remove -ftree-points-to.
129 * configure.ac: Remove libbanshee.
130 * flags.h: Remove pta_type, flag_tree_points_to.
131 * gengtype.c (open_base_files): Remove tree-alias-type.h.
132 * opts.c (OPT_ftree_points_to): Remove.
133 * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
134 * tree-dfa.c: Remove tree-alias-common.h
135 * tree-into-ssa.c: Ditto.
136 * tree-outof-ssa.c: Ditto.
137 * tree-ssa-copyrename.c: Ditto.
138 * tree-ssa-live.c: Ditto.
139 * tree-optimize.c: Ditto.
140 * tree-ssa.c: Ditto.
141 Remove pass_build_pta, pass_del_pta.
142 * tree-pass.h: Ditto.
143 * tree-ssa-alias.c: Remove tree-alias-common.h.
144 (struct alias_stats_d): Remove pta_queries, pta_resolved.
145 (pass_may_alias): Remove PROP_pta requirement.
146 (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
147 (get_tmt_for): Ditto.
148 (dump_alias_stats): Ditto.
149 * doc/passes.texi: Remove blurb about points-to analysis.
150 * fortran/Make-lang.in: Remove tree-alias-*.o.
1aee688e 151
c1a404bd
RS
1522004-09-09 Richard Sandiford <rsandifo@redhat.com>
153
154 * genattrtab.c (write_insn_cases): New function, split out from
155 write_attr_case. Correctly handle define_peepholes when printing
156 the instruction name.
157 (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
158
b2416742
HPN
1592004-09-09 Hans-Peter Nilsson <hp@axis.com>
160
161 PR target/17377
162 * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
163 * config/cris/cris.c (cris_return_address_on_stack): New function.
164 * config/cris/cris.md ("return"): For location of return address,
165 also check cris_return_address_on_stack.
166
0ddcd94f 167>>>>>>> 2.5354
b49ce401
DN
1682004-09-09 Diego Novillo <dnovillo@redhat.com>
169
170 * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
171 calling phi_ssa_name_p.
172
116df786
RH
1732004-09-09 Richard Henderson <rth@redhat.com>
174
175 PR c/17322
176 * c-typeck.c (valid_compound_expr_initializer): Use only
177 initializer_constant_valid_p, and not TREE_CONSTANT.
178 (digest_init): Likewise.
179 (output_init_element): Likewise.
180
41374e13
NS
1812004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
182
183 * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
184 live_out_1, prune_hardregs_for_mode, init_one_web_common,
185 reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
186 record_conflict, compare_and_free_webs, init_webs_defs_uses,
187 parts_to_webs_1, parts_to_webs, reset_conflicts,
188 check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
189 ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
190 * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
191 put_move, remove_move, combine, select_spill, colorize_one_web,
192 try_recolor_web, insert_coalesced_conflicts, check_colors,
193 break_precolored_alias, restore_conflicts_from_coalesce,
194 sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
195 * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
196 reloads_to_loads, rewrite_program2, emit_colors): Likewise.
197 * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
198 check_df): Likewise.
199 * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
200 real_arithmetic, real_compare, real_exponent, real_ldexp,
201 real_identical, real_to_integer, real_to_integer2, real_to_decimal,
202 real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
203 real_digit, real_nan, real_maxval, round_for_format, real_convert,
204 real_to_target, real_from_target, real_hash, encode_ieee_single,
205 encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
206 encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
207 encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
208 * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
209 extract_insn, peep2_next_insn, peep2_reg_dead_p,
210 peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
211 if_test_bypass_p): Likewise.
212 * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
213 stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
214 emit_swap_insn, swap_to_top, move_for_stack_reg,
215 subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
216 compensate_edge, convert_regs_1): Likewise.
217 * regclass.c (init_reg_sets, init_reg_sets_1,
218 memory_move_secondary_cost): Likewise.
219 * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
220 Likewise.
221 * reload.c (push_secondary_reload, find_valid_class, push_reload,
222 operands_match_p, decompose, immune_p, find_reloads,
223 find_reloads_toplev, find_reloads_address_1, subst_reloads,
224 copy_replacements, refers_to_regno_for_reload_p,
225 reg_overlap_mentioned_for_reload_p): Likewise.
226 * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
227 count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
228 verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
229 reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
230 choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
231 do_output_reload, fixup_abnormal_edges): Likewise.
232 * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
233 fill_slots_from_thread, relax_delay_slots): Likewise.
234 * resource.c (mark_referenced_resources, mark_set_resources):
235 Likewise.
236 * rtl.c (copy_rtx, rtx_equal_p): Likewise.
237 * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
238 dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
239 subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
240 find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
241 hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
242 * rtlhooks.c (gen_lowpart_general): Likewise.
243 * sbitmap.c (sbitmap_difference): Likewise.
244 * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
245 sched_analyze, add_forward_dependence): Likewise.
246 * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
247 * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
248 schedule_insns): Likewise.
249 * sched-vis.c (print_pattern): Likewise.
250 * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
251 * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
252 simplify_const_relational_operation, simplify_ternary_operation,
253 simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
254 Likewise.
255 * sreal.c (copy, sreal_sub, sreal_div): Likewise.
256 * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
257 resolve_operand_name_1, expand_return, expand_decl,
258 expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
259 * stor-layout.c (put_pending_size, smallest_mode_for_size,
260 int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
261 set_sizetype, get_mode_bounds): Likewise.
262
15072eb1
ZW
2632004-09-09 Zack Weinberg <zack@codesourcery.com>
264
265 * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
266 * config/arm/pecoff.h, config/i386/beos-elf.h
267 * config/i386/cygming.h, config/i386/i386-interix.h:
268 Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove
269 comment cloned from manual.
270 * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
271
c2433d7d
FCE
2722004-09-09 Frank Ch. Eigler <fche@redhat.com>
273
274 * builtins.c (build_va_arg_indirect_ref): New function.
275 (std_gimplify_va_arg_expr): Call it instead of mudflap check and
276 build_fold_indirect_ref.
277 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
278 * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
279 * tree.h: Declare new function.
280
41374e13 2812004-09-09 Nathan Sidwell <nathan@codesourcery.com>
1a2caa7a
NS
282
283 * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
284 dumping for development builds.
285 * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
286 development builds only.
287 * genattrtab.c (write_eligible_delay): Fix typo in previous
288 commit.
289 * tree.c (iterative_hash_expr): Replace gcc_unreachable with
290 gcc_assert.
291
41374e13 2922004-09-09 Nathan Sidwell <nathan@codesourcery.com>
282899df
NS
293
294 * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
295 cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
296 process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
297 hoist_code, extract_mentioned_regs_helper, compute_store_table,
298 insert_store): Use gcc_assert and gcc_unreachable.
299 * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
300 gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
301 ggc_record_overhead): Likewise.
302 * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
303 init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
304 ggc_pop_context, clear_marks, validate_free_objects,
305 ggc_pch_read): Likewise.
306 * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
307 ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
308 ggc_push_context, check_cookies, ggc_collect,
309 ggc_print_statistics): Likewise.
310 * gimple-low.c (lower_function_body, lower_stmt,
311 lower_bind_expr): Likewise.
312 * gimplify.c (gimple_tree_eq, push_gimplify_context,
313 pop_gimplify_context, gimple_pop_condition, create_tmp_var,
314 declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
315 mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
316 gimplify_case_label_expr, gimplify_exit_block_expr,
317 canonicalize_component_ref, gimplify_compound_lval,
318 gimplify_self_mod_expr, gimplify_call_expr,
319 gimplify_init_ctor_eval, gimplify_init_constructor,
320 gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
321 gimplify_expr, check_pointer_types_r,
322 force_gimple_operand): Likewise.
323 * global.c (global_alloc, build_insn_chain): Likewise.
324 * graph.c (clean_graph_dump_file,
325 finish_graph_dump_file): Likewise.
326 gcov-io.c (gcov_open): Use GCOV_CHECK.
327
2a88ebca
RS
3282004-09-09 Richard Sandiford <rsandifo@redhat.com>
329
330 * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
331
34132917
JH
3322004-09-09 Jan Hubicka <jh@suse.cz>
333
334 middle-end/17128
282899df
NS
335 * tree-inline.c (expand_call_inline): Make overactive sanity check
336 happy.
34132917 337
9f7aa952
JH
3382004-09-09 Jan Hubicka <jh@suse.cz>
339
340 * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
341 VIEW_CONVERT_EXPR.
342
b2d59f6f
NS
3432004-09-09 Nathan Sidwell <nathan@codesourcery.com>
344
345 * Makefile.in (gengtype): Use $(BUILD_ERRORS).
346 (gengtype.o): Depend on errors.h.
347 * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
348 (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
349 attr_alt_subset_p, attr_alt_subset_of_compl_p,
350 attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
351 write_test_expr, write_attr_value, write_eligible_delay,
352 make_internal_attr, make_numeric_value): Likewise.
353 * genautomata.c (regexp_name, get_str_vect,
354 gen_presence_absence_set, automaton_decl_hash,
355 automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
356 decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
357 process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
358 test_unit_reserv, it_is_empty_reserv_sets,
359 reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
360 reserv_sets_and, output_cycle_reservs, get_free_state,
361 intersected_state_reservs_p, states_union, remove_arc,
362 copy_insn_regexp, transform_1, transform_2, transform_3,
363 regexp_transform_func, store_alt_unit_usage,
364 check_regexp_units_distribution, process_seq_for_forming_states,
365 process_alts_for_forming_states, make_automaton,
366 form_arcs_marked_by_insn, create_composed_state,
367 set_out_arc_insns_equiv_num, partition_equiv_class,
368 process_insn_equiv_class, set_insn_equiv_classes,
369 units_to_automata_heuristic_distr, form_regexp,
370 longest_path_length, output_dfa_max_issue_rate, add_vect,
371 out_state_arcs_num, add_vect_el, output_trans_table,
372 output_state_alts_table, output_dead_lock_vect,
373 output_max_insn_queue_index_def,
374 output_min_insn_conflict_delay_func,
375 output_internal_insn_latency_func, output_print_reservation_func,
376 output_cpu_unit_reservation_p, output_state_arcs,
377 make_insn_alts_attr, make_internal_dfa_insn_code_attr,
378 make_default_insn_latency_attr,
379 form_important_insn_automata_lists): Likewise.
380 * genemit.c (gen_exp, output_add_clobbers,
381 output_added_clobbers_hard_reg_p): Likewise.
382 * genextract.c (print_path, main): Likewise.
383 * genflags.c (gen_macro): Likewise.
384 * gengenrtl.c: Include errors.h
385 (type_from_format, accessor_from_format): Likewise.
386 * gengtype.c (get_file_basename, output_mangled_typename,
387 walk_type, write_types_process_field,
388 write_types_local_process_field): Likewise.
389 * genmodes.c (complete_mode): Likewise.
390 * genopinit.c (gen_insn): Likewise.
391 * genoutput.c (output_insn_data, check_constraint_len,
392 constraint_len): Likewise.
393 * genpreds.c (add_mode_tests):Likewise.
394 * gen-protos.c (add_hash): Likewise.
395 * genrecog.c (find_operand, find_matching_operand,
396 validate_pattern, add_to_sequence, maybe_both_true,
397 nodes_identical_1, merge_trees, write_switch, write_cond,
398 write_action, is_unconditional, make_insn_sequence,
399 debug_decision_2): Likewise.
400 * gensupport.c (is_predicable, collect_insn_data,
401 alter_predicate_for_insn, maybe_eval_c_test): Likewise.
402
87022a6b
JH
4032004-09-09 Jan Hubicka <jh@suse.cz>
404
405 * basic-block.h (guess_outgoing_edge_probabilities): Declare.
b2d59f6f
NS
406 * cfgbuild.c (compute_outgoing_frequencies): When probability is
407 missing, guess it.
408 (find_many_sub_basic_blocks): Do update profile only when it is
409 present.
87022a6b 410 * predict.c (set_even_probabilities): Break out from ...
b2d59f6f
NS
411 (combine_predictions_for_insn): ... here; deal with
412 !can_predict_insn_p insns.
87022a6b
JH
413 (combine_predictions_for_bb): Use set_even_probabilities.
414 (bb_estimate_probability_locally): Break out from ....
415 (estimate_probability): ... here.
416 (guess_outgoing_edge_probabilities): New entry point.
417
e1537934
NS
4182004-09-09 Nathan Sidwell <nathan@codesourcery.com>
419
3b5edfee
NS
420 * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
421 handle_braces, process_brace_body, main, used_arg,
422 set_multilib_dir, print_multilib_info): Use fatal, not abort.
423
d73d4593
NS
424 * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
425
e1537934
NS
426 * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
427 * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
428 Morgan's theorem in last checkin.
429
1e128c5f
GB
4302004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
431 Nathan Sidwell <nathan@codesourcery.com>
432
433 * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
434 Use gcc_assert, gcc_unreachable & internal_error instead of abort.
435 * timevar.c (timevar_push, timevar_pop, timevar_start,
436 timevar_stop): Likewise.
437 * toplev.c (default_pch_valid_p): Likewise.
438 * tracer.c (tail_duplicate): Likewise.
439 * tree-alias-common.c (get_alias_var_decl,
440 get_values_from_constructor, create_alias_var, delete_alias_vars,
441 empty_points_to_set, same_points_to_set, ptr_may_alias_var):
442 Likewise.
443 * tree.c (tree_size, make_node_stat, copy_node_stat,
444 build_int_cst_wide, integer_all_onesp, list_length, chainon,
445 tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
446 substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
447 build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
448 lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
449 build_method_type_directly, decl_type_context, get_callee_fndecl,
450 get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
451 tree_fold_gcd): Likewise.
452 * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
453 make_cond_expr_edges, group_case_labels, tree_merge_blocks,
454 cleanup_control_expr_graph, find_taken_edge,
455 find_taken_edge_switch_expr, phi_alternatives_equal,
456 is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
457 stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
458 tree_split_edge, tree_verify_flow_info, thread_jumps,
459 tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
460 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
461 chrec_fold_multiply_poly_poly): Likewise.
462 * tree-complex.c (extract_component, expand_complex_division,
463 expand_complex_comparison, expand_complex_operations_1,
464 build_replicated_const, expand_vector_operations_1): Likewise.
465 * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
466 build_classic_dir_vector): Likewise.
467 * tree-dfa.c (compute_immediate_uses_for_phi,
468 compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
469 create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
470 * tree-dump.c (dequeue_and_dump): Likewise.
471 * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
472 record_in_finally_tree, replace_goto_queue_1,
473 maybe_record_in_goto_queue, verify_norecord_switch_expr,
474 do_return_redirection): Likewise.
475 * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
476 add_to_dst_predicate_list, find_phi_replacement_condition,
477 replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
478 Likewise.
479 * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
480 initialize_inlined_parameters, declare_return_variable,
481 estimate_num_insns_1, expand_call_inline, expand_calls_inline,
482 optimize_inline_calls, copy_tree_r): Likewise.
483 * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
484 ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
485 * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
486 tsi_split_statement_list_after, tsi_split_statement_list_before):
487 Likewise.
488 * tree-mudflap.c (mf_varname_tree): Likewise.
489 * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
490 lookup_tramp_for_decl, convert_all_function_calls): Likewise.
491 * tree-optimize.c (tree_rest_of_compilation): Likewise.
492 * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
493 coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
494 free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
495 Likewise.
496 * tree-phinodes.c (resize_phi_node, add_phi_arg,
497 remove_all_phi_nodes_for): Likewise.
498 * tree-pretty-print.c (op_prio, print_call_name): Likewise.
499 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
500 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
501 * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
502 sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
503 generate_one_element_ref, generate_element_copy,
504 generate_element_zero, scalarize_copy, scalarize_init,
505 scalarize_ldst): Likewise.
506 * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
507 add_may_alias, add_pointed_to_expr, add_pointed_to_var,
508 collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
509 * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
510 * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
511 set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
512 widen_bitfield, ccp_fold_builtin): Likewise.
513 * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
514 replace_exp_1, propagate_tree_value): Likewise.
515 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
516 * tree-ssa-dce.c (set_control_dependence_map_bit,
517 find_control_dependence, find_pdom, mark_operand_necessary,
518 mark_stmt_if_obviously_necessary,
519 mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
520 * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
521 simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
522 eliminate_redundant_computations, avail_expr_eq): Likewise.
523 * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
524 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
525 duplicate_blocks): Likewise.
526 * tree-ssa-loop-im.c (for_each_index, set_level,
527 is_call_clobbered_ref): Likewise.
528 * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
529 stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
530 find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
531 peel_address, ptr_difference_cost, may_replace_final_value,
532 determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
533 rewrite_use, rewrite_uses): Likewise.
534 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
535 check_loop_closed_ssa_use): Likewise.
536 * tree-ssanames.c (make_ssa_name): Likewise.
537 * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
538 finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
539 get_stmt_operands, get_expr_operands, get_asm_expr_operands,
540 get_indirect_ref_operands, add_stmt_operand): Likewise.
541 * tree-ssa-pre.c (value_exists_in_set_bitmap,
542 value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
543 phi_translate, valid_in_set, compute_antic,
544 find_or_generate_expression, create_expression_by_pieces, insert_aux,
545 create_value_expr_from, eliminate): Likewise.
546 * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
547 * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
548 Likewise.
549 * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
550 eliminate_tail_call): Likewise.
551 * tree-vectorizer.c (vect_create_index_for_array_ref,
552 vect_align_data_ref, vect_create_data_ref,
553 vect_create_destination_var, vect_get_vec_def_for_operand,
554 vect_finish_stmt_generation, vect_transform_stmt,
555 vect_transform_loop_bound, vect_transform_loop,
556 vect_analyze_operations): Likewise.
557 * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
558 Likewise.
559 * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
560 get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
561 bsi_after_labels, bsi_last): Likewise.
562 * tree-ssa-live.c (var_union, change_partition_var,
563 create_ssa_var_map, calculate_live_on_entry, root_var_init,
564 type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
565 Likewise.
566 * tree-ssa-live.h (partition_is_global, live_entry_blocks,
567 tpa_find_tree): Likewise.
568 (register_ssa_partition_check): Declare.
569 (register_ssa_partition): use it.
570 * tree-ssa-live.c: Include errors.h.
571 (register_ssa_partition_check): New.
572 * tree-ssa-operands.c: Include errors.h.
573 * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
574
c557edf4
RS
5752004-09-09 Richard Sandiford <rsandifo@redhat.com>
576 Catherine Moore <clm@redhat.com>
577
578 * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
579 (FRV_CPU_FR405): New processor enums.
580 (frv_issue_rate, frv_acc_group): Declare.
581 * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
582 (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
583 (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
584 (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
585 (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
586 handled by CPP_SPEC.
587 (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
588 (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
589 (ACC_MASK): New macro.
590 (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
591 (TARGET_MEDIA_FR450): New macro.
592 (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
593 (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
594 (LABEL_ALIGN_AFTER_BARRIER): Define.
595 (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
596 (IACC_FIRST, IACC_LAST): New pair of SPRs.
597 (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
598 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
599 (REGISTER_NAMES): Add entries for new registers.
600 (REG_CLASS_CONTENTS): Update for new register ranges.
601 (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
602 (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
603 (PACKING_FLAG_USED_P): Delete.
604 (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
605 (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
606 (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
607 (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
608 (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
609 (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
610 (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
611 (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
612 (CPU_UNITS_QUERY): Define to 1.
613 * config/frv/frv.c: Include gt-frv.h
614 (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
615 (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
616 (frv_insn_group): New enumeration.
617 (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
618 (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
619 (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
620 (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the
621 gap left by REGSTATE_LIVE.
622 (regstate_t): New typedef.
623 (TARGET_MACHINE_DEPENDENT_REORG): Define.
624 (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
625 (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
626 Initialize frv_unit_codes[] and frv_type_to_unit[].
627 (frv_conditional_register_usage): Remove redundant fixing of
628 accumulator registers.
629 (frv_insn_packing_flag): Update specification.
630 (frv_function_prologue): Don't set frv_insn_packing_flag here.
631 Zero out frv_nops[].
632 (frv_expand_epilogue): Remove comments about the no-longer-present
633 SIBCALL_P argument.
634 (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
635 PACKING_FLAG_USED_P() when deciding whether to pack instructions.
636 (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
637 of the new meaning of frv_insn_packing_flag. Emit an mnop.p if
638 packing is disabled and if INSN can only issue to M1.
639 (call_operand): Check TARGET_LONG_CALLS.
640 (acc_operand, even_acc_operand, quad_acc_operand)
641 (accg_operand): Simplify. Don't accept pseudo registers.
642 (output_move_single): Handle SPR<-zero moves.
643 (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}.
644 (frv_registers_update, frv_registers_used_p): Delete.
645 (frv_registers_set_p): Delete.
646 (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
647 (frv_issues_to_branch_unit_p): New function.
648 (frv_packet): New structure.
649 (frv_cond_flags, frv_regstate_conflict_p): New functions.
650 (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
651 (frv_registers_update_1, frv_registers_update): New functions.
652 (frv_start_packet, frv_start_packet_block, frv_finish_packet)
653 (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
654 (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
655 (frv_sort_insn_group, frv_reorder_packet): New functions.
656 (frv_pack_insns): Use frv_reorder_packet.
657 (frv_packet_address): New variable.
658 (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
659 (frv_register_nop, frv_reorg): New functions.
660 (bdesc_1arg): Add __SCUTSS.
661 (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
662 __SUBSS, __SLASS and __SCAN.
663 (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
664 (bdesc_int_void2arg, bdesc_prefetches): New arrays.
665 (frv_init_builtins): Register the above builtins.
666 (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
15072eb1 667 registers. Turn the referenced accumulators into global registers.
c557edf4
RS
668 (frv_read_iacc_argument): New function.
669 (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
670 (frv_split_iacc_move): New function.
671 (frv_expand_builtin): Handle the new builtins.
672 * config/frv/frv.md: Replace old schedulers with new order-independent
673 ones. Add schedulers for the FR405, FR450 and FR550. Describe new
674 packing algorithm.
675 (cpu): Add fr550, fr450 and fr405.
676 (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
677 mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7.
678 (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
679 (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
680 (fnop, mnop): New patterns.
681 (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
682 New constants.
683 (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
684 (mclracca8): Use ACC_MASK to determine the upper set of accumulator
685 registers.
686 (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
687 (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
688 (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
689 (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
690 (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
691 (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
692 (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
693 (frv_prefetch0, frv_prefetch): New patterns.
694 * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
695 -mcpu=simple. Add -mcpu=fr550.
696 (MULTILIB_DIRNAMES): Update accordingly.
697 (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
698 -mcpu=fr450.
699 * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
700 -mlong-calls and -malign-labels options for FR-V.
701
deb176fa
JM
7022004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
703
704 PR c/8420
705 * c-tree.h (struct c_declspecs): New.
706 (struct c_declarator, struct c_type_name, struct c_parm): Update
707 element types.
708 (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
709 start_function, start_decl, build_c_parm,
710 make_pointer_declarator): Update prototypes.
711 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
712 declspecs_add_scspec, declspecs_add_attrs): New.
713 (split_specs_attrs): Remove.
714 * c-parse.in (%union): Add dsptype.
715 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
716 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
717 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
718 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
719 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
720 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
721 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
722 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
723 declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
724 declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
725 maybe_type_quals_attrs): Change to dsptype.
726 (struct c_declspec_stack): New.
727 (current_declspecs, declspec_stack): Change type.
728 (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
729 structures.
730 (extdefs): Likewise.
731 (setspecs): Likewise.
732 (fndef): Use current_declspecs for empty declspecs list.
733 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
734 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
735 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
736 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
737 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
738 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
739 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
740 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
741 structures and helper functions. Update comments.
742 (typespec_nonattr): Correct comment.
743 (maybe_type_quals_attrs, typename): Update to new structures.
744 * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
745 shadow_tag, shadow_tag_warned, start_function, start_decl,
746 build_c_parm, make_pointer_declarator,
747 set_array_declarator_inner, groktypename): Update to new
748 structures.
749 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
750 declspecs_add_scspec, declspecs_add_attrs): New.
751 (split_specs_attrs): Remove.
752 (shadow_tag_warned): Make warning for useless type names a
753 pedwarn. Give hard error for long, short, signed, unsigned or
754 _Complex used with struct, union or enum in empty declaration.
755 Make found_tag a bool.
756 (grokdeclarator): Remove checks now done at parse time.
757
f8893e47
JM
7582004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
759
760 * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
761 c_declarator, struct c_type_name, struct c_parm): New.
762 (build_array_declarator, set_array_declarator_inner,
763 get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
764 start_function, start_decl, build_c_parm, build_attrs_declarator,
765 build_function_declarator, make_pointer_declarator, c_cast_expr,
766 store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
767 (build_id_declarator): New.
768 * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
769 structures.
770 * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
771 ARG_INFO_OTHERS): Remove.
772 (build_id_declarator): New.
773 (build_array_declarator, set_array_declarator_inner, groktypename,
774 start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
775 grokfield, start_function, store_parm_decls_newstyle,
776 store_parm_decls_oldstyle, store_parm_decls,
777 build_c_parm, build_attrs_declarator, build_function_declarator,
778 make_pointer_declarator, grokdeclarator): Update to new
779 structures.
780 * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
781 parmtype.
782 (declarator, notype_declarator, after_type_declarator,
783 parm_declarator, parm_declarator_starttypename,
784 parm_declarator_nostarttypename, array_declarator, typename,
785 absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
786 absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
787 parmlist_1, parmlist_2, parmlist_or_identifiers,
788 parmlist_or_identifiers_1): Use these types.
789 (primary, after_type_declarator, parm_declarator_starttypename,
790 notype_declarator, component_decl, component_declarator,
791 component_notype_declarator, typename, absdcl,
792 absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
793 parmlist_2, parmlist_or_identifiers_1): Update to new structures.
794
bc4b653b
JM
7952004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
796
797 * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
798 in_typeof, record_maybe_used_decl, pop_maybe_used,
799 c_expr_sizeof_expr, c_expr_sizeof_type): New.
800 * c-decl.c (parser_obstack): New.
801 (c_init_decl_processing): Initialize parser_obstack.
802 (c_write_global_declarations_1): Check for used but undefined
803 static functions.
804 * c-parse.in (%union): Add otype.
805 (save_obstack_position): New.
806 (extdefs): Use it.
807 (unary_expr): Update in_sizeof and in_alignof. Use
808 c_expr_sizeof_expr and c_expr_sizeof_type.
809 (sizeof): Update in_sizeof.
810 (alignof): Update in_alignof.
811 (typeof): Update in_typeof.
812 (typespec_nonreserved_nonattr): Call pop_maybe_used.
813 * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
814 maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
815 pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
816 (build_external_ref): Set C_DECL_USED or call
817 record_maybe_used_decl if appropriate.
818 * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
819
f838cd94
EC
8202004-09-08 Eric Christopher <echristo@redhat.com>
821
822 * builtins.c: Fix prototype for fold_builtin_atan.
823
667bbbbb
EC
8242004-09-08 Eric Christopher <echristo@redhat.com>
825
826 * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
827 fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
828 fold_builtin_atan): New functions. Migrate function bodies...
829 (fold_builtin_1): ... from here.
830
64045029
AM
8312004-09-09 Alan Modra <amodra@bigpond.net.au>
832
833 * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
834 save_size.
835
f0259218
DE
8362004-09-08 David Edelsohn <edelsohn@gnu.org>
837
838 * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
839 * config/rs6000/power5.md (power5-lmul): Same.
840
609c3937
RH
8412004-09-08 Richard Henderson <rth@redhat.com>
842
843 PR rtl-opt/17186
844 * function.c (expand_function_end): Have fall-off-the-end
845 return path jump around return register setup.
846
4e5b002b
EB
8472004-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
848
849 * config/sparc/sparc.c (sparc_indent_opcode): New variable.
850 (output_return): Do not test for the presence of the 'unimp' insn.
851 Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
852 as predicates instead of custom ones. Return raw strings when
853 possible.
854 (output_sibcall): Likewise. Concatenate strings.
855 (output_ubranch): Remove kludge for TurboSPARC.
856 (output_cbranch): Remove 'noop' parameter. Do not output 'nop'.
857 (output_v9branch): Likewise.
858 (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
859 <#>: Set sparc_indent_opcode if the delay slot is filled.
860 <(>: Likewise.
861 <)>: New operand to emit the displacement from the saved PC on return.
862 <@>: Remove.
863 * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
864 (ASM_OUTPUT_OPCODE): New macro.
865 (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
866 * config/sparc/sparc.md (normal_branch, inverted_branch,
867 normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
868 inverted_fpe_branch): Adjust call to output_cbranch.
869 (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
870 call to output_v9branch.
871 * config/sparc/sparc-protos.h (output_cbranch): Adjust.
872 (output_v9branch): Likewise.
873
5826770c
DP
8742004-09-08 Devang Patel <dpatel@apple.com>
875
876 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
877 -segs_read_only_addr and -segs_read_write_addr.
878 (WORD_SWITCH_TAKES_ARG): Same.
879 (LINK_SPEC): Same.
880 * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
881 -segs_read_write_addr.
882
6cdd5672
RH
8832004-09-08 Richard Henderson <rth@redhat.com>
884
885 * function.c (reference_callee_copied): New.
886 (assign_parm_setup_reg): Use it.
887 * calls.c (initialize_argument_information): Likewise.
888 (emit_library_call_value_1): Likewise.
889 * function.h (reference_callee_copied): Declare.
890
891 * target.h (struct gcc_target): Add callee_copies.
892 * target-def.h (TARGET_CALLEE_COPIES): New.
893 (TARGET_PASS_BY_REFERENCE): Update default.
894 * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
895 * targhooks.c (hook_callee_copies_named): New.
896 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
897 hook_pass_by_reference_false.
898 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
899 * targhooks.h: Update decls.
900 * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
901 * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
902 * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
903 * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
904 * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
905 * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
906 * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
907 * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
908 * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
909 * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
910 (mips_callee_copies): New.
911 * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
912 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
913 * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
914 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
915 * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
916 * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
917 * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
918 * config/sh/sh.c (sh_callee_copies): New.
919 (TARGET_CALLEE_COPIES): New.
920 * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
921 * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
922 * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
923 * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
924 for FUNCTION_ARG_CALLEE_COPIES.
925 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
926
7f7e0703
DP
9272004-09-08 Devang Patel <dpatel@apple.com>
928
6cdd5672
RH
929 * tree-if-conv.c (find_phi_replacement_condition): Return true
930 edge block.
931 (replace_phi_with_cond_modify_expr): Select conditional expr args
932 based on true edge basic block.
667bbbbb 933
ed7f7d85
JH
9342004-09-08 Jan Hubicka <jh@suse.cz>
935
936 * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
937 variables being alias set.
938
0bccc606
NS
9392004-09-08 Nathan Sidwell <nathan@codesourcery.com>
940
941 * final.c (shorten_branches, final, get_insn_template,
942 output_alternate_entry_point, final_scan_insn, alter_subreg,
943 alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
944 leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
945 * fix-header.c (lookup_std_proto): Likewise.
946 * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
947 verify_local_live_at_start, update_life_info, mark_reg,
948 calculate_global_regs_live, allocate_reg_life_data,
949 init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
950 ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
951 attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
952 * fold-const.c (force_fit_type, div_and_round_double,
953 may_negate_without_overflow_p, int_const_binop, const_binop,
954 size_binop, size_diffop, fold_convert_const, fold_convert,
955 invert_tree_comparison, swap_tree_comparison,
956 comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
957 range_binop, make_range, fold_cond_expr_with_comparison,
958 fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
959 fold_abs_const, fold_not_const, fold_relational_const, round_up,
960 round_down): Likewise.
961 * function.c (find_function_data, assign_stack_temp_for_type,
962 instantiate_virtual_regs_lossage, aggregate_value_p,
963 assign_parm_find_entry_rtl, assign_parm_setup_block,
964 expand_function_start, expand_function_end, keep_stack_depressed,
965 handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
966
599eabdb
DB
9672004-09-08 Daniel Berlin <dberlin@dberlin.org>
968
969 * Makefile.in (tree-loop-linear.o): Added.
970 (OBJS-common): Add tree-loop-linear.o
971 * common.opt: New flag, ftree-loop-linear.
972 * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
973 * tree-flow.h: Add prototype for linear_transform_loops.
974 * tree-optimize.c: Add linear transform after vectorization.
975 * tree-pass.h: Add struct pass_linear_transform.
976 * tree-ssa-loop.c: Add pass_linear_transform.
977 * tree-loop-linear.c: New file.
978 * lambda-code.c: gcc_assertify.
979 (gcc_loop_to_lambda_loop): Handle all exit tests.
980 Handle case where we have (invariant >= induction var).
981 (find_induction_var_from_exit_cond): Ditto.
667bbbbb 982
13f5595a
JZ
9832004-09-08 Jie Zhang <zhangjie@magima.com.cn>
984
985 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
986 memory tag is call clobbered, so are its aliases.
987 (group_aliases): When two memory tags being grouped, if one is
988 call clobbered, so are the other and its aliases.
989 (add_may_alias): Remove call-clobbering stuff.
990 (replace_may_alias): Likewise.
991 (merge_pointed_to_info): Merge pt_global_mem
992
89480522
JH
9932004-09-08 Jan Hubicka <jh@suse.cz>
994
995 * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
996 * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
997 (cgraph_expand_function): Remove stale cgraph edges of currently
998 compiled function; fix non-unit-at-a-time code copying function
999 node for later reuse.
1000
4c254e68
NS
10012004-09-08 Nathan Sidwell <nathan@codesourcery.com>
1002
1003 * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
1004 (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
1005 (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
1006 (vec_gc_free, vec_heap_free): New.
1007 * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
1008 (DEF_VEC_P): Add allocator argument. Adjust.
1009 (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
1010 (DEF_VEC_O): Add allocator argument. Adjust.
1011 (VEC(free)): New.
1012
1013 * tree.h (tree): Define a GC'd vector.
1014 * lamba-code.c (lambda_loop): Likewise.
1015 * value-prof.h (histogram_value): Likewise.
4c254e68 1016
5b0264cb
NS
10172004-09-08 Nathan Sidwell <nathan@codesourcery.com>
1018
1019 * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
1020 (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
1021 gen_lowpart_common, gen_highpart, gen_highpart_mode,
1022 subreg_highpart_offset, operand_subword, operand_subword_force,
1023 mem_expr_equal_p, set_mem_attributes_minus_bitpos,
1024 set_mem_alias_set, change_address_1, verify_rtx_sharing,
1025 copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
1026 try_split, add_insn_after, add_insn_before, remove_insn,
1027 remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
1028 emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
1029 emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
1030 set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
1031 gen_const_vector_0, emit_copy_of_insn_after): Likewise.
1032 * et-forest.c (set_prev, set_next, et_check_occ_sanity,
1033 record_path_before_1, check_path_after_1, check_path_after): Likewise.
1034 * except.c (gen_eh_region, resolve_one_fixup_region,
1035 remove_unreachable_regions, convert_from_eh_region_ranges_1,
1036 add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
1037 connect_post_landing_pads, sjlj_emit_function_exit,
1038 remove_exception_handler_label, remove_eh_handler,
1039 reachable_next_level, collect_one_action_chain,
1040 output_function_exception_table): Likewise.
1041 * explow.c (trunc_int_for_mode, copy_to_mode_reg,
1042 optimize_save_area_alloca, allocate_dynamic_stack_space,
1043 probe_stack_range, hard_function_value): Likewise.
1044 * expmed.c (mode_for_extraction, store_bit_field,
1045 store_fixed_bit_field, extract_bit_field, expand_shift,
1046 expand_mult_const, expand_mult, choose_multiplier,
1047 expand_mult_highpart, expand_divmod, emit_store_flag,
1048 do_cmp_and_jump): Likewise.
1049 * expr.c (convert_move, convert_modes, move_by_pieces,
1050 move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
1051 move_block_from_reg, gen_group_rtx, emit_group_load,
1052 emit_group_move, emit_group_store, use_reg, use_regs,
1053 can_store_by_pieces, store_by_pieces, store_by_pieces_1,
1054 emit_move_insn, emit_move_insn_1, emit_push_insn,
1055 expand_assignment, store_expr, count_type_elements,
1056 store_constructor, store_field, safe_from_p, expand_var,
1057 expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
1058
ced3f397
NS
10592004-09-08 Nathan Sidwell <nathan@codesourcery.com>
1060
1061 * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
1062 gcc_assert and gcc_unreachable.
1063 * ddg.c (create_ddg_dependence, add_deps_for_def,
1064 add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
1065 * df.c (df_ref_unlink, df_ref_record, df_uses_record,
1066 df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
1067 df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
1068 df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
1069 df_bb_reg_live_end_p, df_bb_regs_lives_compare,
1070 df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
1071 dataflow_set_copy, hybrid_search, diagnostic.c,
1072 diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
1073 * dojump.c (do_jump): Likewise.
1074 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
1075 compute_dom_fast_query, calculate_dominance_info,
1076 free_dominance_info, get_immediate_dominator,
1077 set_immediate_dominator, get_dominated_by,
1078 redirect_immediate_dominators, nearest_common_dominator,
1079 dominated_by_p, verify_dominators, recount_dominator,
1080 iterate_fix_dominators, add_to_dominance_info,
1081 delete_from_dominance_info): Likewise.
1082 * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
1083 dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
1084 dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
1085 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
1086 initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
1087 flush_queued_reg_saves, dwarf2out_frame_debug_expr,
1088 dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
1089 output_call_frame_info, output_loc_operands, build_cfa_loc,
1090 decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
1091 AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
1092 AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
1093 splice_child_die, attr_checksum, same_dw_val_p,
1094 break_out_includes, build_abbrev_table, size_of_die, mark_dies,
1095 unmark_dies, value_format, output_loc_list, output_die,
1096 output_pubnames, output_aranges, base_type_die, is_base_type,
1097 modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
1098 mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
1099 field_byte_offset, add_data_member_location_attribute,
1100 add_const_value_attribute, rtl_for_decl_location,
1101 add_location_or_const_value_attribute, add_byte_size_attribute,
1102 add_bit_offset_attribute, add_bit_size_attribute,
1103 add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
1104 decl_start_label, gen_formal_parameter_die,
1105 gen_type_die_for_member, gen_subprogram_die, gen_label_die,
1106 gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
1107 force_decl_die, force_type_die, gen_decl_die,
1108 dwarf2out_imported_module_or_decl, prune_unused_types_prune,
1109 dwarf2out_finish): Likewise.
1110
faaaf610
AT
11112004-09-08 Andreas Tobler <toa@pop.agri.ch>
1112
1113 * Makefile.in (builtins.o): Depend on tree-mudflap.h.
1114 * builtins.c: Include tree-mudflap.h.
1115
45c8c47f
UB
11162004-09-08 Uros Bizjak <uros@kss-loka.si>
1117
1118 * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
1119 force operand 0.0 into register in XFmode. Also do not force
1120 operand 0.0 into register if !TARGET_CMOVE.
1121 * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
667bbbbb 1122 (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
45c8c47f
UB
1123 implement ftst x87 instruction.
1124 (*fp_jcc_7): New insn pattern. Change corresponding split
1125 pattern to handle "general_operand" instead of
1126 "nonimmediate_operand".
1127
70d5fb1c
BE
11282004-09-08 Ben Elliston <bje@au.ibm.com>
1129
1130 * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
1131
4882ad24
FCE
11322004-09-07 Frank Ch. Eigler <fche@redhat.com>
1133
1134 * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
1135 generated from standard va_arg expansion.
1136 * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
1137 marked nodes.
1138 (mf_varname_tree, mf_file_function_line_tree): Add some support
1139 for column numbers if compiled with USE_MAPPED_LOCATION.
1140
06f624ba
ZL
11412004-09-07 Ziemowit Laski <zlaski@apple.com>
1142
1143 * c-decl.c (groktypename_in_parm_context): Remove function.
1144 * c-tree.h (groktypename_in_parm_context): Remove prototype.
1145
6408ef33
ZL
11462004-09-07 Ziemowit Laski <zlaski@apple.com>
1147
1148 * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
1149 * c-parse.in: Include c-common.h instead of objc-act.h.
1150 (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
1151 myparms, myparm): Remove %type declarations.
1152 (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
1153 objc_typename, objc_try_catch_stmt, optellipsis): Add %type
1154 declarations.
1155 (objc_inherit_code, objc_public_flag): Remove.
1156 (typespec_nonreserved_nonattr): Call
1157 objc_get_protocol_qualified_type() instead of get_static_reference()
1158 and get_protocol_reference().
1159 (stmt_nocomp): Call grokparm() on @catch parameter.
1160 (objcdef): Move semantic action to objc_finish_implementation().
1161 (classdef): Move semantic action to objc_start_class_interface(),
1162 objc_continue_interface(), objc_finish_interface(),
1163 objc_start_class_implementation(), objc_continue_implementation(),
1164 objc_start_category_interface() and
1165 objc_start_category_implementation().
1166 (protocoldef): Move semantic actions to objc_start_protocol() and
1167 objc_finish_interface().
1168 (ivar_decl_list): Remove nonterminal.
1169 (visibility_spec): Move semantic actions to objc_set_visibility().
1170 (ivar_decls): Remove assignment to $$.
1171 (ivar_decl): Rephrase in terms of component_decl; call
1172 objc_add_instance_variable().
1173 (ivars, ivar_declarator): Remove nonterminals.
1174 (opt_semi): New nonterminal.
1175 (methodtype): Remove semantic actions.
1176 (methoddef): Move semantic actions to objc_set_method_type(),
1177 objc_start_method_definition() and objc_finish_method_definition().
1178 (methodproto): Move semantic actions to objc_set_method_type() and
1179 objc_add_method_declaration().
1180 (methoddecl): Use objc_typename instead of typename; move semantic
1181 actions to objc_build_method_signature().
1182 (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
1183 (optparmlist): Express in terms of optparms and optellipsis.
1184 (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
1185 nonterminals.
1186 (keyworddecl): Use objc_typename instead of typename.
1187 (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
1188 and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
1189
8662eb14
AM
11902004-09-08 Alan Modra <amodra@bigpond.net.au>
1191
1192 * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
1193 (MD_FALLBACK_FRAME_STATE_FOR): Update.
1194 * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
1195 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
1196 (MD_FROB_UPDATE_CONTEXT): Remove default.
1197 (uw_update_context_1): Instead #ifdef invocation.
1198 * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
1199 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
1200 * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
1201 (MD_UNWIND_SUPPORT): Undefine this instead.
1202 * config/i386/gnu.h: Likewise.
1203 * config/alpha/linux-unwind.h: New file, macro converted to
1204 function, extracted from..
1205 * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
1206 (MD_UNWIND_SUPPORT): Define.
1207 * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
1208 * config/i386/linux-unwind.h, config/i386/linux.h,
1209 config/i386/linux64.h: Likewise.
1210 * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
1211 MD_HANDLE_UNWABI too.
1212 * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
1213 * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
1214 * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
1215 * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
1216 * config/sparc/linux-unwind.h, config/sparc/linux.h,
1217 config/sparc/linux64.h: Likewise.
1218 * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
1219 SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
1220 * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
1221 config/rs6000/linux64.h: Likewise. Split out get_sigcontext
1222 function. Use ARG_POINTER_REGNUM for 32-bit temp reg too.
1223
c4817ba6
JH
12242004-09-07 Jan Hubicka <jh@suse.cz>
1225
ec666d23
JH
1226 * cse.c (fold_rtx): Avoid building of
1227 (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
1228
c4817ba6
JH
1229 * tree-ssa-pre.c (grand_bitmap_obstack): New.
1230 (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
1231 (init_pre): Initialize obstack.
1232 (fini_pre): Free obstack.
1233
9f0df97a
DD
12342004-09-07 David Daney <ddaney@avtrex.com>
1235
1236 * config.gcc: Added support for --with-divide=[breaks|traps] for
1237 mips targets.
1238 * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
1239 (TARGET_DIVIDE_TRAPS): New macro.
1240 (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
1241 (OPTION_DEFAULT_SPECS): Added --with-divide= support.
1242 * config/mips/mips.c (mips_idiv_insns): Generate proper count on
1243 GENERATE_DIVIDE_TRAPS.
1244 (mips_output_division): Emit conditional trap if
1245 GENERATE_DIVIDE_TRAPS is set.
1246 * doc/install.texi: Document --with-divide.
1247 * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
1248
9beb1c84
CT
12492004-09-07 Caroline Tice <ctice@apple.com>
1250
1251 * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
1252 EDGE_CROSSING, to flags test case.
667bbbbb 1253
1905940f
JH
12542004-09-07 Jan Hubicka <jh@suse.cz>
1255
1256 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
1257 class too.
1258
341c100f
NS
12592004-09-07 Nathan Sidwell <nathan@codesourcery.com>
1260
1261 * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
1262 cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
1263 make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
1264 or gcc_unreachable.
1265 * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
1266 remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
1267 alloc_aux_for_edges, free_aux_for_edges): Likewise.
1268 * cfgcleanup.c (try_forward_edges,
1269 merge_blocks_move_predecessor_nojumps,
1270 merge_blocks_move_successor_nojumps): Likewise.
1271 * cfgexpand.c (expand_gimple_cond_expr,
1272 expand_gimple_tailcall): Likewise.
1273 * cfghooks.c (duplicate_block): Likewise.
1274 * cfglayout.c (record_effective_endpoints,
1275 insn_locators_initialize, change_scope, fixup_reorder_chain,
1276 verify_insn_chain, fixup_fallthru_exit_predecessor,
1277 duplicate_insn_chain, cfg_layout_finalize): Likewise.
1278 * cfgloopanal.c (check_irred): Likewise.
1279 * cfgloop.c (superloop_at_depth, flow_loops_free,
1280 flow_loop_entry_edges_find, flow_loops_find,
1281 flow_loop_outside_edge_p, get_loop_body,
1282 get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
1283 get_loop_exit_edges, num_loop_branches, cancel_loop,
1284 verify_loop_structure): Likewise.
1285 cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
1286 duplicate_loop_to_header_edge, create_preheader,
1287 create_loop_notes): Likewise.
1288 * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
1289 edirect_branch_edge, force_nonfallthru_and_redirect,
1290 rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
1291 commit_edge_insertions, commit_edge_insertions_watch_calls,
1292 purge_dead_edges, cfg_layout_redirect_edge_and_branch,
1293 cfg_layout_redirect_edge_and_branch_force,
1294 cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
1295 * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
1296 cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
1297 cgraph_varpool_node): Likewise.
1298 * cgraphunit.c (cgraph_finalize_function,
1299 cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
1300 cgraph_expand_function, cgraph_remove_unreachable_nodes,
1301 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1302 cgraph_mark_inline, cgraph_expand_all_functions,
1303 cgraph_build_static_cdtor): Likewise.
1304 * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx,
1305 simplify_logical, distribute_notes, insn_cuid): Likewise.
1306 * conflict.c (conflict_graph_add, print_conflict): Likewise.
1307 * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
1308 coverage_checksum_string): Likewise.
1309 * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
1310 hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
1311 cse_cc_succs, cse_condition_code_reg): Likewise.
1312 * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
1313 rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
1314 new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
1315 cselib_record_set): Likewise.
1316
6b094f38
JH
13172004-09-07 Jan Hubicka <jh@suse.cz>
1318
1319 * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
1320
5212068f
NS
13212004-09-07 Nathan Sidwell <nathan@codesourcery.com>
1322
1323 * builtins.c (fold_builtin_strchr): Use build_int_cst, not
1324 fold_convert.
1325 (fold_builtin_strpbrk): Likewise.
1326 * expr.c (array_ref_low_bound): Likewise.
1327 * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
1328 interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
1329 * tree-sra.c (generate_element_zero): Likewise.
1330 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1331 * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
1332 add_old_iv_candidates, add_iv_candidates): Likewise.
1333 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1334
366de0ce
NS
13352004-09-07 Nathan Sidwell <nathan@codesourcery.com>
1336
1337 * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
1338 * c-common.c (c_type_hash, c_common_nodes_and_builtins,
1339 c_expand_expr, boolean_increment, nonnull_check_p,
1340 check_function_arguments_recurse, fold_offsetof_1): Likewise.
1341 * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
1342 builtin_define_type_max): Likewise.
1343 * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
1344 implicit_decl_warning, builtin_function, build_compound_literal,
1345 complete_array_type, grokdeclarator, get_parm_info,
1346 start_function, store_parm_decls_oldstyle,
1347 c_write_global_declarations): Likewise.
1348 * c-format.c (get_constant, decode_format_attr,
1349 maybe_read_dollar_number, get_flag_spec, check_format_arg,
1350 check_format_types, format_type_warning,
1351 find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
1352 init_dynamic_diag_info, handle_format_attribute): Likewise.
667bbbbb 1353 * c-gimplify.c (push_context, pop_context, finish_bc_block):
366de0ce
NS
1354 * c-lex.c (c_lex_with_flags, lex_string): Likewise.
1355 * c-objc-common.c (c_tree_printer): Likewise.
1356 * c-pch.c (pch_init): Likewise.
1357 * c-pragma.c (maybe_apply_pragma_weak): Likewise.
1358 * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
1359 * c-typeck.c (c_incomplete_type_error, composite_type,
1360 common_pointer_type, common_type, same_translation_unit_p,
1361 tagged_types_tu_compatible_p, finish_init, pop_init_level,
1362 set_designator, set_nonincremental_init_from_string,
1363 process_init_element, c_finish_if_stmt): Likewise.
1364 * caller-save.c (init_caller_save, save_call_clobbered_regs,
1365 insert_restore, insert_save, insert_one_insn): Likewise.
1366 * calls.c (emit_call_1, compute_argument_block_size,
1367 precompute_arguments, expand_call, emit_library_call_value_1,
1368 store_one_arg): Likewise.
1369
e1bbfc5c
NS
13702004-09-07 Nathan Sidwell <nathan@codesourcery.com>
1371
1372 * configure.ac (enable-checking): Add release option. Reorganize
1373 to avoid repetition.
1374 * configure: Rebuilt.
1375 * doc/install.texi (enable-checking): Amend documentation.
1376
e64dc647
L
13772004-09-06 H.J. Lu <hongjiu.lu@intel.com>
1378
1379 PR bootstrap/17313
1380 * Makefile.in (specs.ready): Depend on cc1$(exeext).
1381
d3a583b1
JW
13822004-09-06 James E Wilson <wilson@specifixinc.com>
1383
cfd8e493
JW
1384 * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
1385 movdf_hardfloat_32bit): Split fG into two alternatives.
1386 (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
1387
d3a583b1
JW
1388 * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
1389
ff8cea7e
EB
13902004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
1391
1392 * final.c (output_in_slot): Delete.
1393 (final_scan_insn): Revert 2004-09-03 change.
1394 (output_asm_insn): Likewise.
1395 * config/sparc/sparc.c (output_return): Likewise.
1396 (output_sibcall): Likewise.
1397
8679c649
JH
13982004-09-06 Jan Hubicka <jh@suse.cz>
1399
1400 * loop.c (loop_dump_aux): Do not print RTL when not available.
1401 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
1402 frontend specific type nodes.
1403 (produce_memory_decl_rtl): Break out from ...
1404 (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly.
1405 (get_computation_at): Avoid random tree sharing.
1406 (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
1407
93f8bd9e
ZW
14082004-09-06 Zack Weinberg <zack@codesourcery.com>
1409
1410 * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
1411 unnecessary commands.
1412
c802a859
ME
14132004-09-06 Mohan Embar <gnustuff@thisiscool.com>
1414
1415 * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
1416 (bitmap.o): Likewise.
1417
9f8628ba
PB
14182004-09-06 Paolo Bonzini <bonzini@gnu.org>
1419
1420 Unify the management of RTL and tree-level dump files.
1421
1422 * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
1423 Don't print function name to the dump file, the pass manager
1424 would do this for us. Add code from the top of
1425 rest_of_compilation, up to the initial RTL dump.
1426 * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
1427 close the DFI_sibling dump file.
1428 (rest_of_compilation): Don't do that here. Remove code up to the
1429 initial RTL dump.
1430 (init_optimization_passes): Remove.
1431 (pass_rest_of_compilation): Change pass name to NULL.
1432 * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
1433 Do not call init_optimization_passes.
1434 * toplev.h (init_optimization_passes): Remove.
1435
1436 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
1437 finish_graph_dump_file): Remove SUFFIX parameter.
1438 * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
1439 finish_graph_dump_file): Likewise.
1440
1441 * tree-pass.h (struct tree_opt_pass): Add `letter' field.
1442 * cfgexpand.c (pass_expand): Adjust.
1443 * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
1444 * passes.c (pass_rest_of_compilation): Adjust.
1445 * predict.c (pass_profile): Adjust.
1446 * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
1447 * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
1448 pass_split_crit_edges, pass_warn_function_return): Adjust.
1449 * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
1450 * tree-dfa.c (pass_referenced_vars): Adjust.
1451 * tree-eh.c (pass_lower_eh): Adjust.
1452 * tree-if-conv.c (pass_build_ssa): Adjust.
1453 * tree-into-ssa.c (pass_build_ssa): Adjust.
1454 * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
1455 * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
1456 * tree-nrv.c (pass_nrv): Adjust.
1457 * tree-optimize.c (pass_gimple, pass_all_optimizations,
1458 pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
1459 pass_init_datastructures): Adjust.
1460 * tree-outof-ssa.c (pass_del_ssa): Adjust.
1461 * tree-profile.c (pass_tree_profile): Adjust.
1462 * tree-sra.c (pass_sra): Adjust.
1463 * tree-ssa-alias.c (pass_may_alias): Adjust.
1464 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
1465 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
1466 * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
1467 * tree-ssa-dom.c (pass_dominator): Adjust.
1468 * tree-ssa-dse.c (pass_dse): Adjust.
1469 * tree-ssa-forwprop.c (pass_forwprop): Adjust.
1470 * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
1471 * tree-ssa-loop-ch.c (pass_ch): Adjust.
1472 * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
1473 pass_loop_done, pass_complete_unroll, pass_iv_canon,
1474 pass_iv_optimize, pass_vectorize): Adjust.
1475 * tree-ssa-phiopt.c (pass_phiopt): Adjust.
1476 * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
1477 * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
1478 pass_late_warn_uninnitialized): Adjust.
1479 * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
1480
1481 * Makefile.in (tree-dump.o): Add new dependencies.
1482 * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
1483 * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
1484 Likewise.
1485 * toplev.c (dump_file_name): New.
1486 * tree-dump.c (dump_enable_all): Add LETTER parameter.
1487 (struct dump_file_info): Add NUM and LETTER fields.
1488 (dump_files): Adjust and add RTL dump files.
1489 (dump_register): Add NUM and LETTER fields.
1490 (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
1491 (dump_begin): Use get_dump_file_name.
1492 (dump_switch_p_1): Adjust call to dump_enable_all.
1493 * tree-dump.h (dump_register): Adjust prototype.
1494 * tree-optimize.c (register_one_dump_file): Take dump file index.
1495 Support flags for RTL dumps.
1496 (register_dump_files): Fill in NUM field of struct dump_file_info.
1497 Track properties both when the gate is executed and when it is not.
1498 (execute_todo): Dump RTL. Add PROPERTIES parameter.
1499 (execute_one_pass): Pass properties to execute_todo. Handle VCG
1500 dumps of RTL.
1501 * tree-pass.h (dump_file_name): New.
1502 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
1503 New.
1504
1505 * Makefile.in (passes.o): Add new dependencies.
1506 * passes.c (struct dump_file_info, enum dump_file_index,
1507 dump_file_tbl, init_optimization_passes): Remove.
1508 (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
1509 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
1510 dump_enabled_p.
1511 (finish_optimization_passes): Update finish_graph_dump_file loop.
1512 (enable_rtl_dump_file): Remove.
1513 * tree-dump.c (dump_files): Adjust and add RTL dump files.
1514 (enable_rtl_dump_file): Add here.
1515 * tree.h (enum tree_dump_index): Add RTL dump file indices.
1516 * doc/invoke.texi (Debugging options): Document new RTL debugging
1517 options. Update.
1518
8c27b7d4
KH
15192004-09-05 Kazu Hirata <kazu@cs.umass.edu>
1520
1521 * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
1522 gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
1523 stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
1524 tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
1525 tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
1526 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
1527 tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
1528 vec.h: Fix comment formatting.
1529
2a7e31df
KH
15302004-09-05 Kazu Hirata <kazu@cs.umass.edu>
1531
1532 * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
1533 et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
1534 hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
1535 tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
1536 tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
1537 tree-ssa-loop-niter.c, tree-ssa-operands.c,
1538 tree-ssa-operands.h, tree-ssa-propagate.c,
1539 tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
1540 vec.c, vec.h: Fix comment typos. Follow spelling conventions.
1541
2addf926
DN
15422004-09-05 Diego Novillo <dnovillo@redhat.com>
1543
1544 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
1545 vectorizer is enabled.
1546
61b5f210
AJ
15472004-09-05 Andreas Jaeger <aj@suse.de>
1548
1549 * tree-if-conv.c: Spell check comments and clean up whitespace.
1550
8b11a64c
ZD
15512004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1552
1553 * tree-ssa-loop-ivopts.c: New file.
1554 * Makefile.in (tree-ssa-loop-ivopts.c): Add.
1555 * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
1556 target_pres_cost, target_spill_cost): Declare.
1557 * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
1558 spill_cost): Renamed to ...
1559 (target_avail_regs, target_res_regs, target_small_cost,
1560 target_pres_cost, target_spill_cost): ... and exported.
1561 (init_set_costs, global_cost_for_size): Work with renamed variables.
1562 * common.opt (flag_ivopts): New flag.
1563 * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle
1564 REF_ORIGINAL.
1565 * gimplify.c (struct gimplify_ctx): Add into_ssa field.
1566 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
1567 generating SSA form.
1568 (force_gimple_operand): New function.
1569 * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
1570 * tree-cfg.c (stmt_bsi): New function.
1571 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
1572 PARAM_IV_MAX_CONSIDERED_USES): New.
1573 * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
1574 bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
1575 ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
1576 * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
1577 * tree-nested.c (build_addr): Export.
1578 * tree-optimize.c (init_tree_optimization_passes): Add
1579 pass_iv_optimize.
1580 * tree-pass.h (pass_iv_optimize): Declare.
1581 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
1582 IMAGPART_EXPR.
1583 * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
1584 as a phi node argument.
1585 (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
1586 ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
1587 functions.
1588 * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
1589 * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
1590 pass_iv_optimize): New pass.
1591 * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
1592 * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
1593 * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
1594 * tree.h (REF_ORIGINAL): New macro.
1595 (build_int_cst_type, unsigned_type_for, zero_p,
1596 cst_and_fits_in_hwi, build_addr): Declare.
1597 * doc/invoke.texi (-fivopts): Document.
1598 (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
1599 PARAM_IV_MAX_CONSIDERED_USES): Document.
1600 * doc/passes.texi: Document induction variable optimizations pass.
1601
254986c7
KG
16022004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1603
1604 * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
1605 * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
1606 * c-common.c (c_common_attribute_table): Accept parameters to
1607 sentinel attribute.
1608 (check_function_sentinel, handle_sentinel_attribute): Likewise.
1609 * doc/extend.texi: Update accordingly.
1610
3d091dac
KG
16112004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1612
1613 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
1614 New.
1615 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
1616 attribute.
1617 * c-common.c (handle_sentinel_attribute, check_function_sentinel):
1618 New functions.
1619 (c_common_attribute_table): Add `sentinel' attribute.
1620 (check_function_arguments): Handle `sentinel' attribute.
1621 * doc/extend.texi: Document `sentinel' attribute.
8f1529e6 1622
44269c40 16232004-09-04 H.J. Lu <hongjiu.lu@intel.com>
a60749f5 1624
3d091dac
KG
1625 * configure: Regenerated.
1626
44269c40
KG
16272004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1628
875803a0
RK
1629 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
1630
c51c248f
RK
1631 * tree.c (save_expr): No longer TREE_READONLY.
1632
8d168c24
JH
16332004-09-04 Jan Hubicka <jh@suse.cz>
1634
1635 * passes.c (rest_of_clean_state): Fix merge conflict made during
1636 commiting the patch.
1637
0a9aeefd
JH
16382004-09-04 Jan Hubicka <jh@suse.cz>
1639
1640 * passes.c (rest_of_clean_state): Decompose the instruction stream.
1641
273a2526
RS
16422004-09-04 Richard Sandiford <rsandifo@redhat.com>
1643
1644 * doc/md.texi (shift patterns): New anchor. Add reference to
1645 TARGET_SHIFT_TRUNCATION_MASK.
1646 * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
1647 * target.h (shift_truncation_mask): New target hook.
1648 * targhook.h (default_shift_truncation_mask): Declare.
1649 * targhook.c (default_shift_truncation_mask): Define.
1650 * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
1651 (TARGET_INITIALIZER): Include it.
1652 * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
1653 and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
1654 reject all out-of-range values. Fix sign-extension code for modes
1655 whose width is smaller than HOST_BITS_PER_WIDE_INT.
1656 * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
1657 (expand_superword_shift, expand_subword_shift): Likewise.
1658 (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
1659 (expand_binop): Use them to implement double-word shifts.
1660 * config/arm/arm.c (arm_shift_truncation_mask): New function.
1661 (TARGET_SHIFT_TRUNCATION_MASK): Define.
1662
caf29de7
JH
16632004-09-04 Jan Hubicka <jh@suse.cz>
1664
1665 * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
1666 (mix): New macro copied from hashtab.c
1667 (iterative_hash_hashval_t, iterative_hash_pointer,
1668 iterative_hash_host_wide_int): New functions based on hashtab.c
1669 implementation.
1670
e83adf94
RS
16712004-09-04 Richard Sandiford <rsandifo@redhat.com>
1672
1673 * config/mips/mips.md (mask): New mode attribute.
1674 (zero_extendsidi2): Add memory alternative.
1675 (*zero_extendsidi2_mem): Delete.
1676 (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use
1677 memory_operand in the TARGET_MIPS16 check.
1678 (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
1679 Redefine using :GPR and :SHORT.
1680 (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
1681
edeacc14
UB
16822004-09-04 Uros Bizjak <uros@kss-loka.si>
1683
1684 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
1685 using rint_optab.
1686 (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
1687 expand_builtin_mathfn.
1688 * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
1689 btrunc?f patterns for btrunc_optab. Implement rint_optab using
1690 rint?f patterns.
1691 * optabs.c (init_optabs): Initialize rint_optab.
1692 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
1693 Add new OTI_rint.
1694 (btrunc_optab): Rename macro from trunc_optab.
1695 (rint_optab): Define corresponding macro.
1696
1697 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
1698 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
1699
1700 * config/i386/i386-protos.h (emit_i387_cw_initialization):
1701 Change prototype. Add new int parameter.
1702 * config/i386/i386.c (emit_i387_cw_initialization):
1703 Handle new rounding modes.
1704
1705 * config/i386/i386.h (enum fp_cw_mode): Delete.
c9996000 1706 (MODE_NEEDED): Handle new rounding modes.
edeacc14
UB
1707 (EMIT_MODE_SET): Change condition to handle new rounding modes.
1708
1709 * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
1710 UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
1711 represent different rounding modes of frndint insn.
1712 (type): Add frndint type.
1713 (i387, length, memory): Handle this type.
1714 (i387_cw): New attribute definition.
1715 (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
1716 *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
1717 *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
1718 Add "i387_cw" attribute defined to "trunc".
1719 (x86_fnstcw_1): Remove comment.
1720 (*frndintxf2): Rename insn definition to frndintxf2. Move
1721 insn definition near rint?f2 expanders.
1722 (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
1723 rintf and rintl built-ins as inline x87 intrinsics.
1724 (frndintxf2_floor): New pattern to implement floor rounding
1725 mode with frndint x87 instruction.
1726 (floordf2, floorsf2, floorxf2): New expanders to implement floor,
1727 floorf and floorl built-ins as inline x87 intrinsics.
1728 (frndintxf2_ceil): New pattern to implement ceil rounding
1729 mode with frndint x87 instruction.
1730 (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
1731 ceilf and ceill built-ins as inline x87 intrinsics.
1732 (frndintxf2_trunc): New pattern to implement trunc rounding
1733 mode with frndint x87 instruction.
1734 (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
1735 truncf and truncl built-ins as inline x87 intrinsics.
1736 (frndintxf2_mask_pm): New pattern to implement rounding
1737 mode with exceptions with frndint x87 instruction.
1738 (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
1739 implement nearbyint, nearbyintf and nearbyintl built-ins as
1740 inline x87 intrinsics.
1741
183f019b
RS
17422004-09-04 Richard Sandiford <rsandifo@redhat.com>
1743
1744 * config/mips/mips.md (SHORT): New mode macro.
1745 (size): New mode attribute.
1746 (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
1747 (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
1748 *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if
1749 !ISA_HAS_SEB_SEH.
1750 (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
1751 *extend[qh]isi2_hw patterns and extending them to di.
1752 (extendqihi2): Implement as define_insn_and_split that produces
1753 extendqisi2 after reload.
1754
40923b20
DP
17552004-09-03 Devang Patel <dpatel@apple.com>
1756
1757 * Makefile.in (OBJS-common): Add tree-if-conv.o
1758 (tree-if-conv.o): New rule.
1759 * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
1760 (get_loop_body_in_bfs_order): New.
1761 * cfgloop.h (get_loop_body_in_bfs_order): New.
1762 * tree-flow.h (enum move_pos): Move here from ..
1763 * tree-ssa-loop-im.c (enum move_pos): here.
1764 (movement_possibility): Make externally visible.
1765 * tree-optimize.c (init_tree_optimization_passes): New entry for
1766 if conversion pass.
1767 * tree-pass.h (pass_if_conversion): New.
1768 * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
1769 * tree-if-conv.c: New file.
1770 * doc/passes.texi: Document tree if-conversion pass.
c9996000 1771 * doc/tree-ssa.texi: Same.
40923b20 1772
443728bb
L
17732004-09-03 H.J. Lu <hongjiu.lu@intel.com>
1774
1775 PR target/14925:
1776 Makefile.in (LIB2ADDEHSTATIC): New.
1777 (LIB2ADDEHSHARED): New.
1778 (LIBUNWIND): New.
1779 (LIBUNWINDDEP): New.
1780 (SHLIBUNWIND_LINK): New.
1781 (SHLIBUNWIND_INSTALL): New.
1782 (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
1783 LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
1784 (clean): Remove libunwind*
1785 (stage1-start): Remove and copy stage1/libunwind*.
1786 (stage2-start): Remove and copy stage2/libunwind*.
1787 (stage3-start): Remove and copy stage3/libunwind*.
1788 (stage4-start): Remove and copy stage4/libunwind*.
1789 (stageprofile-start): Remove and copy stageprofile/libunwind*.
1790 (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
1791
1792 * config.gcc (ia64*-*-linux*): Always add t-libunwind to
1793 tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
1794 tmake_file if --with-system-libunwind isn't used.
1795
1796 * config/ia64/t-glibc-libunwind: New file.
1797 * config/t-libunwind-elf: Likewise.
1798 * unwind-compat.c: Likewise.
1799 * unwind-compat.h: Likewise.
1800 * unwind-dw2-fde-compat.c: Likewise.
1801
1802 * config/ia64/t-glibc (LIB2ADDEH): Updated.
1803 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
1804
1805 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
1806 aliases if needed.
1807 * unwind-dw2-fde-glibc.c: Likewise.
1808 * unwind-dw2.c: Likewise.
1809
1810 * config/t-libunwind (LIB2ADDEH): Updated.
1811 (LIB2ADDEHSTATIC): New.
1812 (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
1813 (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
1814
1815 * configure.ac: Change --enable-libunwind-exceptions to
1816 --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
1817 * configure: Regenerated.
1818 * config.in: Updated.
1819
1820 * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
1821 above and mention --with-system-libunwind.
1822 (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
1823 removed in gcc 3.4.3 and later.
1824
1825 * gcc.c (init_spec): Add -lunwind to -lgcc_s if
1826 USE_LIBUNWIND_EXCEPTIONS is defined.
1827
1828 * mklibgcc.in: Support libunwind.
1829
d20bf446
L
18302004-09-03 H.J. Lu <hongjiu.lu@intel.com>
1831
1832 * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
1833 m_NOCONA.
1834
1f6d3a08
RH
18352004-09-03 Richard Henderson <rth@redhat.com>
1836
93f8bd9e
ZW
1837 PR middle-end/9997
1838 * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
1839 (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
1840 (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
1841 stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
1842 frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
1843 resize_stack_vars_conflict, add_stack_var_conflict,
1844 stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
1845 union_stack_vars, partition_stack_vars, dump_stack_var_partition,
1846 expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
1f6d3a08
RH
1847 expand_one_static_var, expand_one_hard_reg_var,
1848 expand_one_register_var, expand_one_error_var, defer_stack_allocation,
1849 expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
93f8bd9e 1850 (expand_used_vars): Rewrite.
1f6d3a08
RH
1851 * Makefile.in (cfgexpand.o): Update dependencies.
1852
80d8221e
JH
18532004-09-04 Jan Hubicka <jh@suse.cz>
1854
1855 * cfg.c (free_edge): Use ggc_free.
1856 (expunge_block): Use ggc_free.
1857 * passes.c (rest_of_clean_state): Free after compilation.
1858 * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
1859 * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
1860
bb1058e4
JW
18612004-09-03 James E Wilson <wilson@specifixinc.com>
1862
1863 * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
1864 DECL_EXTERNAL check.
1865
ca83de6b
EB
18662004-09-03 Eric Botcazou <ebotcazou@libertysurf.fr>
1867
1868 * final.c (output_in_slot): New global variable.
1869 (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
1870 Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE. Set
1871 'output_in_slot' before invoking output_asm_insn.
1872 (output_asm_insn): Add a space after the tab if 'output_in_slot'
1873 is set.
1874 * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
1875 final_scan_insn.
1876 (output_sibcall): Likewise.
1877
1e3e17d3
JH
18782004-09-03 Jan Hubicka <jh@suse.cz>
1879
1880 * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
1881 * tree-ssanames (init_ssanames): Likewise.
1882
c41e5f27
ZL
18832004-09-03 Ziemowit Laski <zlaski@apple.com>
1884
1885 * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
1886 objc_declare_protocols, objc_start_protocol,
1887 objc_start_class_interface, objc_start_category_interface,
1888 objc_continue_interface, objc_finish_interface,
1889 objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
1890 objc_start_class_implementation, objc_start_category_implementation,
1891 objc_continue_implementation, objc_finish_implementation,
1892 objc_add_method_declaration, objc_start_method_definition,
1893 objc_finish_method_definition, objc_build_keyword_decl,
1894 objc_build_method_signature, objc_build_encode_expr,
1895 objc_build_protocol_expr, objc_build_selector_expr,
1896 objc_build_message_expr, objc_build_string_object,
1897 objc_get_class_reference, objc_get_protocol_qualified_type,
1898 objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
1899
b30d77c4
JW
19002004-09-03 James E Wilson <wilson@specifixinc.com>
1901
1902 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
1903
1904 * config/mips/generic.md (generic_frecip_fsqrt_step): New.
1905 * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
1906 (mips_rsqrt2_<fmt>): Use frsqrt2 type.
1907 (mips_recip1_<fmt>): Use frdiv1 type.
1908 (mips_recip2_<fmt>): Use frdiv2 type.
1909 * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
1910 * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
1911 and frsqrt1.
1912 (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
1913
87cda9d6
DJ
19142004-09-03 Daniel Jacobowitz <dan@debian.org>
1915
1916 * reload.c (find_reloads): Swap operand_loc pointers for
1917 find_dummy_reload if we have swapped two operands.
1918
f671762a
HPN
19192004-09-03 Hans-Peter Nilsson <hp@axis.com>
1920
1921 * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
1922 to get the tablejump-insn before the jump-table label.
1923
a45bcfb2
ZL
19242004-09-03 Ziemowit Laski <zlaski@apple.com>
1925
1926 * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
1927 objc_declare_protocols, objc_build_message_expr,
1928 objc_finish_message_expr, objc_build_selector_expr,
1929 objc_build_protocol_expr, objc_build_encode_expr,
1930 objc_build_string_object, objc_get_protocol_qualified_type,
1931 objc_get_class_reference, objc_get_class_ivars,
1932 objc_start_class_interface, objc_start_category_interface,
1933 objc_start_protocol, objc_continue_interface, objc_finish_interface,
1934 objc_start_class_implementation, objc_start_category_implementation,
1935 objc_continue_implementation, objc_finish_implementation,
1936 objc_set_visibility, objc_set_method_type, objc_build_method_signature,
1937 objc_add_method_declaration, objc_start_method_definition,
1938 objc_finish_method_definition, objc_add_instance_variable,
1939 objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
1940 objc_finish_try_stmt, objc_begin_catch_clause,
1941 objc_finish_catch_clause, objc_build_finally_clause,
1942 objc_build_synchronized, objc_static_init_needed_p,
1943 objc_generate_static_init_call): New prototypes.
1944
9dec91d4
SE
19452004-09-03 Steve Ellcey <sje@cup.hp.com>
1946
1947 * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
1948 is only one reg.
1949 (ia64_function_value): Ditto.
1950
61fec9ff
JB
19512004-09-03 Jan Beulich <jbeulich@novell.com>
1952
1953 * config.gcc: Resurrect NetWare as a target. Handle special case of
1954 Novell linker to be used (specified through --with-ld=) and threading
1955 model of either Posix (default) or NKS.
1956 * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
1957 of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
1958 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
1959 * config/i386/netware.c, config/i386/netware.h: New.
1960 * config/i386/nwld.c, config/i386/nwld.h: New.
1961 * config/i386/netware-crt0.c: New.
1962 * config/i386/netware-libgcc.c: New.
1963 * config/i386/netware-libgcc.def: New.
1964 * config/i386/netware-libgcc.exp: New.
1965 * config/i386/t-netware, config/i386/t-nwld: New.
1966 * gthr-nks.h: New.
1967 * doc/install.texi: Document NKS threading model.
1968
467cecf3
JB
19692004-09-03 Jan Beulich <jbeulich@novell.com>
1970
1971 PR c/7054
1972 * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
1973 * tree.h (initial_max_fld_align): Declare
1974 * stor-layout.c (initial_max_fld_align): Define and initialize.
1975 (maximum_field_alignment): Initialize to the same value.
1976 * common.opt: Add -fpack-struct= variant of switch.
1977 * opts.c: Handle -fpack-struct= variant of switch.
1978 * c-pragma.c: Change #pragma pack() handling so that it becomes
1979 compatible to other compilers: accept individual 'push' argument,
1980 make final pop restore (command line) default, correct interaction
1981 of push/pop and sole specification of a new alignment (so that the
1982 sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
1983 to #pragma pack(push, <n>).
1984 * doc/extend.texi: New node "Structure-Packing Pragmas" under
1985 "Pragmas", describing #pragma pack.
1986 * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
1987 * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
1988 Document new TARGET_DEFAULT_PACK_STRUCT.
1989
90300b8c
DP
19902004-09-03 Devang Patel <dpatel@apple.com>
1991
1992 * dwarf2out.c (gen_field_die). Equate decl number to die.
c9996000 1993
d6df6ae2
VM
19942004-09-03 Vladimir Makarov <vmakarov@redhat.com>
1995
1996 PR target/15832
1997 * global.c (modify_reg_pav): New function.
1998 (make_accurate_live_analysis): Call the new function. Move pavin
1999 modification by earlyclobber set into the new function.
2000
25c99d8f
AS
20012004-09-03 Andreas Schwab <schwab@suse.de>
2002
2003 * config/m68k/m68k.c (output_andsi3): Use -1 instead of
2004 (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
2005 extended.
2006
7f148c2f
JB
20072004-09-02 Jan Beulich <jbeulich@novell.com>
2008
2009 * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
2010 * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
2011 not unwind code specific ones.
2012 (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
2013 Remove unwind code specific dependencies.
2014 (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
2015 Remove gbl-ctors.h.
2016 Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
2017 LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
2018 * tsystem.h: Declare memcpy and memset when inhibit_libc.
2019
9e42ab3e 20202004-09-02 Roman Zippel <zippel@linux-m68k.org>
c9996000 2021
9e42ab3e
RZ
2022 * combine.c (try_combine): Delay modifying of insns which cannot
2023 be easily undone.
2024
1b08d87d
DB
20252004-09-02 Daniel Berlin <dberlin@dberlin.org>
2026
2027 * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
2028 tree-loop-im.
2029 * gcc/tree-ssa-loop.c: Ditto
2030 * gcc/tree-ssa-loop-ivcanon.c: Ditto
2031 * gcc/doc/invoke.texi: Ditto.
2032
d4e43dff
ZL
20332004-09-02 Ziemowit Laski <zlaski@apple.com>
2034
2035 * c-decl.c (store_parm_decls_newstyle): Make static.
2036 (store_parm_decls_from): New function.
2037 * c-tree.h (store_parm_decls_newstyle): Remove prototype.
2038 (store_parm_decls_from): New prototype.
2039
cd7d9ca4
DE
20402004-09-02 David Edelsohn <edelsohn@gnu.org>
2041
2042 * config/rs6000/rs6000.c (expand_block_move): Use SImode and
2043 HImode with STRICT_ALIGNMENT.
2044
40a1c5cb
MM
20452004-09-02 Mark Mitchell <mark@codesourcery.com>
2046
2047 * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
2048 (TARGET_OS_CPP_BUILTINS): Likewise.
2049 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
2050 TARGET_BPABI_CPP_BUILTINS.
2051
b54567e2 20522004-09-02 Roman Zippel <zippel@linux-m68k.org>
c9996000 2053
b54567e2
RZ
2054 * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
2055
5906d013
EC
20562004-09-02 Eric Christopher <echristo@redhat.com>
2057
2058 * builtins.c (expand_builtin_cabs): Delete.
2059 (expand_builtin): If unable to fold the values do a normal
2060 library call for builtin_cab*.
2061 (fold_builtin_cabs): Depend on optimize and optimize_size.
2062 * optabs.c (expand_cmplxdiv_straight): Delete.
2063 (expand_cmplxdiv_wide): Ditto.
2064 (expand_vector_binop): Ditto.
2065 (expand_vector_unop): Ditto.
2066 (expand_complex_abs): Delete.
2067 (expand_binop): Remove calls to above functions.
2068 Remove open coding of complex arithmetic.
2069 (expand_unop): Ditto.
2070 * optabs.h: Remove prototypes.
2071
3041390d
ZL
20722004-09-02 Ziemowit Laski <zlaski@apple.com>
2073
2074 * c-decl.c (store_parm_decls_newstyle): Make externally visible.
2075 * c-tree.h (store_parm_decls_newstyle): New prototype.
2076
5514620a
GK
20772004-09-02 Geoffrey Keating <geoffk@apple.com>
2078
2079 * config/rs6000/rs6000.c (expand_block_clear): Use vector
2080 instructions if available.
2081 (expand_block_move): Likewise.
2082
02f14c38
JH
20832004-09-03 Jan Hubicka <jh@suse.cz>
2084
2085 * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
2086
19dc705e
MM
20872004-09-02 Mark Mitchell <mark@codesourcery.com>
2088
2089 * config/arm/symbian.h (LIB_SPEC): Define to empty.
2090 * config/arm/t-symbian (SHLIB_LC): Likewise.
2091
24112ed0
PB
20922004-09-02 Paul Brook <paul@codesourcery.com>
2093
2094 * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
2095
7ad769fe
RS
20962004-09-02 Richard Sandiford <rsandifo@redhat.com>
2097
2098 * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
2099 (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
2100 (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
2101 (build_mips16_call_stub): Likewise. Remove daft CALL_INSN checks.
2102 (mips_issue_rate): Remove unreachable abort.
2103 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
2104 (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
2105 (mips_block_move_straight, print_operand_address, mips_file_start)
2106 (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
2107 (mips_output_conditional_branch, mips_expand_builtin_direct)
2108 (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
2109 * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
2110 with gcc_assert.
2111
9f09b415
RS
21122004-09-02 Richard Sandiford <rsandifo@redhat.com>
2113
2114 * config/mips/mips.md (*lea_high64): Change split condition to
2115 flow2_completed. Add a peephole2 to generate a more parallel version.
2116
07724022
JH
21172004-09-02 Jan Hubicka <jh@suse.cz>
2118
2119 * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
2120 GGC.
2121
2122 * ggc-page.c: include tree-flow.h.
2123 (extra_order_size_table): Add stmt_ann_d.
2124 (STAT_LABEL): Rename from ....
2125 (LABEL): ... this one.
2126 * Makefile.in (ggc-page.o): Add dependency.
2127
2128 * ggc-common.c (ggc_force_collect): New global variable.
2129 (loc_description): Add fields "freed", "collected"
2130 (ptr_hash): New static hash
2131 (ptr_hash_entry): New structure.
2132 (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
2133 (ggc_record_overhead): Take ptr argument, record it
2134 (ggc_prune_overhead_list, ggc_free_overhead): New functions.
2135 (cmp_statistics): Imrove sorting.
2136 (dump_ggc_loc_statistics): Output newly collected statistics
2137 * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
2138 (ggc_free): Call ggc_free_overhead.
2139 (ggc_collect): Force collection when asked to be forced.
2140 (ggc_collect): Call ggc_prune_overhead_list.
2141 * ggc.h (ggc_force_collect): Declare
2142 (ggc_record_overhead): Update prototype.
2143 (ggc_free_overhead, ggc_prune_overhead_list): Declare.
2144
10060b83
JW
21452004-09-02 James E Wilson <wilson@specifixinc.com>
2146
2147 * common.opt (ftrapping-math): Default to on.
2148
9d2da95b
RE
21492004-09-02 Richard Earnshaw <rearnsha@arm.com>
2150
2151 * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
2152
3f1f9228
DC
21532004-09-02 Denis Chertykov <denisc@overta.ru>
2154
2155 PR target/16884
2156 * config/avr/avr.md ("movmemhi"): Substitute match_dup to
2157 match_scratch.
2158 (*movmemqi_insn): Likewise.
2159 (*movmemhi): Likewise.
2160 (clrmemhi): Likewise.
2161 (*clrmemqi): Likewise.
2162 (*clrmemhi): Likewise.
2163
e6fc6c9b
PB
21642004-09-02 Paul Brook <paul@codesourcery.com>
2165
2166 * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
2167 default_use_cxa_atexit=yes.
2168
d86c1b91
AM
21692004-09-02 Alan Modra <amodra@bigpond.net.au>
2170
2171 * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
2172 (struct kernel_old_ucontext): Delete.
2173 (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
2174 (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs. Only define
2175 when IN_LIGGCC2.
2176
3806400d
RS
21772004-09-02 Richard Sandiford <rsandifo@redhat.com>
2178
2179 * toplev.c (process_options): Fix typo.
2180
9969aaf6
RH
21812004-09-01 Richard Henderson <rth@redhat.com>
2182
2183 PR middle-end/17258
2184 * calls.c (initialize_argument_information): Tighten pass-through
2185 conditions for pass-by-reference. Remove dead TARGET_EXPR code.
2186 Use build_fold_addr_expr.
2187 (emit_library_call_value_1): Use build_fold_addr_expr. Remove code
2188 that assumes ADDR_EXPR allocates stack space.
2189 * fold-const.c (build_fold_addr_expr_with_type): Look through
2190 WITH_SIZE_EXPR.
2191
1e8964cf
DN
21922004-09-01 Dan Nicolaescu <dann@ics.uci.edu>
2193
2194 * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
2195 * ggc.h (ggc_alloc_rtx): Delete.
2196
26276705
RS
21972004-09-01 Roger Sayle <roger@eyesopen.com>
2198
2199 * expmed.c (enum alg_code): Remove long unused enumeration values.
7f148c2f 2200 (struct mult_cost): New structure to hold the "score" of a synthetic
26276705
RS
2201 multiply sequence, including both a rtx_cost and a latency field.
2202 (MULT_COST_LESS): New macro to compare mult_cost to a constant.
2203 (CHEAPER_MULT_COST): New macro to compare two mult_costs.
2204 (struct algorithm): Change type of cost field to be mult_cost.
2205 (synth_mult): Change type of cost_limit argument to be a
2206 pointer to a mult_cost. Update all cost comparisons to use the
5906d013 2207 new mult_cost infrastructure. For alg_add_factor and
26276705
RS
2208 alg_sub_factor operations, latency is lower than the rtx_cost.
2209 (choose_mult_variant): Update calls to synth_mult. Perform
2210 cost comparisons using the new mult_cost infrastructure.
2211 (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
2212 to optain the total rtx_cost of a synth_mult "algorithm".
2213
594a3565
DE
22142004-09-01 David Edelsohn <edelsohn@gnu.org>
2215
2216 * config/rs6000/power4.md: Increase store latency to 12.
2217 * config/rs6000/power5.md: Same.
2218
130d5426
JW
22192004-09-01 James E Wilson <wilson@specifixinc.com>
2220
2221 PR target/14064
2222 * config/avr/avr.c (avr_unique_section): Delete prototype and
2223 definition.
2224 (TARGET_ASM_UNIQUE_SECTION): Delete.
2225
57a6af27
ZL
22262004-09-01 Ziemowit Laski <zlaski@apple.com>
2227
2228 * c-parse.in (primary): Call objc_build_message_expr(),
2229 objc_build_selector_expr(), objc_build_protocol_expr(),
2230 objc_build_encode_expr() and objc_build_string_object() instead of
2231 build_message_expr(), build_selector_expr(), build_protocol_expr(),
2232 build_encode_expr() and build_objc_string_object(), respectively.
2233 (component_decl_list2): Call objc_get_class_ivars() instead of
2234 get_class_ivars_from_name().
2235 (keyworddecl): Call objc_build_keyword_decl() instead of
2236 build_keyword_decl().
2237 (receiver): Call objc_get_class_reference() instead of
2238 get_class_reference().
2239 (reswords): Add blank line before @@ifobjc section, for clarity.
2240
5ec214fc
FJ
22412002-09-01 Fariborz Jahanian <fjahanian@apple.com>
2242
2243 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
2244 to Altivec vetors.
2245
40219f96
WY
22462004-09-01 Wu Yongwei <adah@sh163.net>
2247 Danny Smith <dannysmith@users.sourceforge.net>
2248
2249 * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
2250 not Windows 'DWORD'.
2251 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
2252 (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
2253 (__gthr_win32_recursive_mutex_init_function): Add prototype for
2254 __GTHREAD_HIDE_WIN32API case..
2255 (__gthr_win32_recursive_mutex_lock): Likewise.
2256 (__gthr_win32_recursive_mutex_trylock): Likewise.
2257 (__gthr_win32_recursive_mutex_unlock): Likewise.
2258 (__gthread_recursive_mutex_init_function); Add definition for
2259 __GTHREAD_HIDE_WIN32API case.
2260 (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
2261 * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
2262 call to InterlockedDecrement.
2263
78ad8fbe
RK
22642004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2265
ba2e294d
RK
2266 * tree-tailcall.c (find_tail_calls): Also fail is statement has
2267 volatile operands.
2268
0705d602
RK
2269 * tree-ssa.c (propagate_into_addr): Properly test for LHR.
2270
78ad8fbe
RK
2271 * doc/c-tree.texi: Document new operands for ARRAY_REF and
2272 COMPONENT_REF.
2273
6d9901e7
ZD
22742004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2275
2276 * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
2277 * common.opt (fspeculative-prefetching): New.
2278 * flags.h (flag_speculative_prefetching_set): Declare.
2279 * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
2280 values.
2281 * opts.c (flag_sepculative_prefetching_set): New variable.
2282 (common_handle_option): Handle -fspeculative-prefetching.
2283 * passes.c (rest_of_compilation): Ditto.
2284 * profile.c (instrument_values, compute_value_histograms, branch_prob):
2285 Use vectors instead of arrays.
2286 * toplev.c (process_options): Handle -fspeculative-prefetching.
2287 * rtl-profile.c: Include ggc.h.
2288 (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
2289 rtl_gen_one_value_profiler_no_edge_manipulation,
2290 rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
2291 argument changed.
2292 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2293 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
2294 argument changed.
2295 * value-prof.c: Include ggc.h.
2296 (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
2297 macros.
2298 (insn_prefetch_values_to_profile, find_mem_reference_1,
2299 find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
2300 speculative_prefetching_transform): New.
2301 (value_profile_transformations): Call speculative_prefetching_transform.
2302 (insn_values_to_profile): Call insn_prefetch_values_to_profile.
2303 (insn_divmod_values_to_profile, rtl_find_values_to_profile,
2304 tree_find_values_to_profile, find_values to profile): Use vectors
2305 instead of arrays.
2306 (free_profiled_values): Removed.
2307 * value-prof.h (struct histogram_value): Renamed to
2308 struct histogram_value_t.
2309 (histogram_value, histogram_values): New types.
2310 (find_values_to_profile): Declaration changed.
2311 (free_profiled_values): Removed.
2312 (struct profile_hooks): Type of argument of the hooks changed to
2313 histogram_value.
2314 * doc/invoke.texi (-fspeculative-prefetching): Document.
2315
d7fe1183
ZD
23162004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2317
2318 PR rtl-optimization/16408
2319 * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
2320
938e234b
RH
23212004-09-01 Richard Henderson <rth@redhat.com>
2322
7f148c2f
JB
2323 * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
2324 (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
938e234b 2325
d0879c98
JJ
23262004-09-01 Jakub Jelinek <jakub@redhat.com>
2327
2328 * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
2329
156a126c
MS
23302004-09-01 Mike Stump <mrs@apple.com>
2331
2332 * config/darwin.c (machopic_symbol_defined_p): In addition to
2333 being SYMBOL_REF_LOCAL_P, a symbol must also be
2334 ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
2335 defined in this output file, or translation unit in the case
2336 of IMA not being used.
2337 (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
2338 never need .indirect_symbol when indirecting.
2339
a5d8b097
JJ
23402004-09-01 Jakub Jelinek <jakub@redhat.com>
2341
2342 * Makefile.in (bb-reorder.o): Add several dependencies.
2343
266bff3a
JJ
23442004-09-01 Jakub Jelinek <jakub@redhat.com>
2345
2346 * fold-const.c (operand_equal_p): Require equal sign also for
2347 FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
2348
32078532
RE
23492004-09-01 Richard Earnshaw <rearnsha@arm.com>
2350
2351 * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
2352 for use in configargs.h. Put the cname in a separate variable. Use
2353 that to set target_cpu_default2.
2354
c0311627
R
23552004-09-01 J"orn Rennecke <joern.rennecke@superh.com>
2356 Nick Clifton <nickc@redhat.com>
2357
2358 * config/sh/sh.md ("length"): Increase branch length when
2359 SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
2360 constant, 2 byte for aligning the constant.
2361
d98a72fd
RE
23622004-09-01 Richard Earnshaw <rearnsha@arm.com>
2363
2364 * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
2365 CPU.
2366 (arm7tdmi-s): New CPU name.
2367 * arm/arm.c (ARM_CORE): Update for new format.
2368 * arm/arm.h (ARM_CORE): Likewise.
2369 * arm/gentune.sh: Update for extra field.
2370 * config.gcc: Likewise.
2371 * arm/arm-tune.md: Regenerate.
2372 * doc/invoke.texi: Document the real processor names for ARM cpus.
2373
0a1aa867
RE
23742004-09-01 Richard Earnshaw <rearnsha@arm.com>
2375
2376 * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
2377 (floatdidf): New functions.
2378 * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
2379 (floatdisf): New functions.
2380 * t-arm-elf: Use them.
2381
bc095846
ZL
23822004-09-01 Ziemowit Laski <zlaski@apple.com>
2383
2384 * c-common.h (lookup_interface): Remove prototype.
2385 (is_class_name): Rename to objc_is_class_name.
2386 (lookup_objc_ivar): Rename to objc_lookup_ivar.
2387 (get_current_scope): Rename to objc_get_current_scope.
2388 * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
2389 * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
2390 (yylexname): Call objc_is_class_name() instead of is_class_name().
2391 * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
2392 instead of lookup_objc_ivar().
2393 * stub-objc.c (lookup_interface): Remove stub.
2394 (is_class_name): Rename to objc_is_class_name.
2395 (lookup_objc_ivar): Rename to objc_lookup_ivar.
2396
14945fe6
MM
23972004-08-31 Mark Mitchell <mark@codesourcery.com>
2398
2399 * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
2400 * config/arm/lib1funcs.asm: Do not include supplemental .S files
2401 when compiling for Symbian.
2402 * config/arm/symbian.h (RENAME_LIBRARY): New macro.
2403 (TARGET_OS_CPP_BUILTINS): Likewise.
2404 * config/arm/t-symbian (LIB1ASMFUNCS): Define.
2405
93415288
SS
24062004-08-31 Stan Shebs <shebs@apple.com>
2407
2408 * toplev.c (process_options): Ensure debug_hooks is initialized.
2409
505970fc
MM
24102004-08-31 Mark Mitchell <mark@codesourcery.com>
2411
2412 * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
2413 * target.h (cxx): Add export_class_data.
2414 * config/arm/arm.c (arm_cxx_export_class_data): New function.
2415 (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
dc40803a 2416 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
5906d013 2417
bee9efbc
KK
24182004-08-31 Kaz Kojima <kkojima@gcc.gnu.org>
2419
2420 * config/sh/sh.c (output_branch): Check the insn length possibly
2421 in the delayed slot.
2422
a4e9ffe5
RK
24232004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2424
a0ca8e0c
RK
2425 * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
2426 blank after ')'.
2427 (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
2428
a4e9ffe5
RK
2429 * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
2430 (c_sizeof_of_alignof_type): Likewise.
2431 * expr.c (array_ref_element_size): Likewise.
2432 (highest_pow2_factor_for_target): Likewise.
2433 * gimplify.c (canonicalize_addr_expr): Likewise.
2434 (gimplify_compound_lval): Likewise.
2435 * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
2436 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
2437 * varasm.c (assemble_variable): Likewise.
2438 (output_constant_def_contents): Alignments are unsigned.
2439
631b67ce
RK
24402004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2441 Jeff Law <law@redhat.com>
2442
2443 * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
2444 gets modified.
2445
af287697
MM
24462004-08-31 Mark Mitchell <mark@codesourcery.com>
2447
2448 * hooks.c (hook_bool_void_true): New function.
2449 * hooks.h (hook_bool_void_true): Declare.
2450 * target-def.h (TARGET_CXX): Add
2451 TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
2452 * target.h (struct cxx): Add key_method_may_be_inline.
2453 * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
2454 function.
2455 (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
2456 * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
2457 __THUMB_INTERWORK.
5906d013 2458
678584fc
DC
24592004-08-31 Denis Chertykov <denisc@overta.ru>
2460
2461 PR target/15417
2462 * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
2463 frame pointer register only in Pmode while reload in progress.
2464
c4c9b76e
SC
24652004-08-31 Stephane Carrez <stcarrez@nerim.fr>
2466
2467 PR target/15334
2468 * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
2469 because it breaks the 32-bit shift patterns that rely on a match_dup.
2470
c61eceeb
MA
24712004-08-31 Matt Austern <austern@apple.com>
2472
2473 * config/darwin.c (darwin_make_decl_one_only): Allocate section
2474 names once per compilation, instead of once per symbol.
5906d013 2475
71b5d516
PB
24762004-08-31 Paolo Bonzini <bonzini@gnu.org>
2477
2478 * Makefile.in (build_subdir): New substitution.
2479 (fixinc.sh): Simplify heavily since fixincludes is already built.
2480 (stmp-fixinc): Depend on specs.ready.
2481 (install-mkheaders): Use new location of fixincludes.
2482 (clean): Do not descend into fixinc.
2483 (FORBUILD): Replace with ../$(build_subdir).
2484 * configure.ac (build_subdir): Substitute.
2485 (FORBUILD): Do not set.
2486 (all_outputs): Remove fixinc/Makefile.
2487 (default commands): Do not create links in fixinc.
2488 * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
2489 the fixincludes configuration steps and substituting
2490 @FIXINCL@ in fixinc.in.
2491 * fixinc.in: New, from fixinc/fixincl.sh.
2492
2493 * fixinc/*: Removed.
5906d013 2494
f7b0fb68
JM
24952004-08-31 Joseph S. Myers <jsm@polyomino.org.uk>
2496
2497 * attribs.c (strip_attrs): Remove.
2498 (split_specs_attrs): Move ...
2499 * c-decl.c: ... to here.
2500 * tree.h (split_specs_attrs, strip_attrs): Remove.
2501 * c-tree.h (split_specs_attrs): Declare.
2502
f51a38b9
RS
25032004-08-31 Richard Sandiford <rsandifo@redhat.com>
2504
2505 * read-rtl.c: Disable RTL checking.
2506 (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
2507
34ebf755
RS
25082004-08-31 Richard Sandiford <rsandifo@redhat.com>
2509
2510 * config/mips/mips.md (fcond): New code macro and attribute.
2511 (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
2512 (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
2513 (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
2514
9b76aa3b
MM
25152004-08-30 Mark Mitchell <mark@codesourcery.com>
2516
2517 Revert:
2518 2004-08-29 Mark Mitchell <mark@codesourcery.com>
2519 PR rtl-optimization/16590
2520 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
2521
99fa8911
AP
25222004-08-30 Andrew Pinski <apinski@apple.com>
2523
5906d013 2524 * hard-reg-set.h:
992c944c
AP
2525 s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
2526 * ChangeLog: Fix previous ChangeLog entry.
2527
99fa8911 2528 PR rtl-opt/13987
5906d013 2529 * config.host (use_long_long_for_widest_fast_int): New, default is
99fa8911
AP
2530 off.
2531 (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
2532 * configure.ac: If use_long_long_for_widest_fast_int, then
2533 define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
2534 * configure: Regenerate.
2535 * config.in: Regenerate.
2536 * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
2537 New: widest integer type supported efficiently in hardware for the
2538 host.
2539 * sbitmap.h (SBITMAP_ELT_BITS): Define based on
2540 HOST_BITS_PER_WIDEST_FAST_INT.
2541 (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
5906d013 2542 * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
99fa8911
AP
2543 HOST_WIDEST_FAST_INT
2544 instead of HOST_WIDE_INT.
2545 (HARD_REG_SET_LONGS): Likewise.
2546 (UHOST_BITS_PER_WIDE_INT): Likewise.
2547 Change the checks for the fast cases to be based on
992c944c 2548 HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
99fa8911 2549
f4c0250b
SB
25502004-08-30 Steven Bosscher <stevenb@suse.de>
2551
2552 * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
2553 not the pointers.
2554
ff164b22
GK
25552004-08-30 Geoffrey Keating <geoffk@apple.com>
2556
2557 PR 12738
2558 PR 17205
2559 Radar 3460526
2560 Radar 3775729
2561 * c-decl.c (grokdeclarator): Produce error for 'static' on local
2562 function declaration.
2563
bc482be4
RH
25642004-08-30 Richard Henderson <rth@redhat.com>
2565
2566 * expr.c (array_ref_element_size): Force aligned_size back to
2567 sizetype.
2568 (component_ref_field_offset): Similarly for aligned_offset.
2569 * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
2570 low-bound, element-size, field-offset fields rather than
2571 computed values.
2572
21611613
JM
25732004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
2574
2575 * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
2576 redundant code.
2577
7b112487
JM
25782004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
2579
2580 * c-tree.h (struct language_function): Add arg_info element.
2581 * c-decl.c (current_function_arg_info): New.
2582 (grokdeclarator, store_parm_decls): Use it instead of
2583 DECL_ARGUMENTS.
2584 (c_push_function_context, c_pop_function_context): Save and
2585 restore it.
2586
5cc200fc
RH
25872004-08-30 Richard Henderson <rth@redhat.com>
2588
5906d013 2589 * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
5cc200fc
RH
2590 COMPONENT_REF to pointer arithmetic.
2591 * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
2592 constant "c" as a valid constant initializer. Allow narrowing of
2593 differences against the same base object, for any base object.
2594
6377bb9a
RH
25952004-08-30 Richard Henderson <rth@redhat.com>
2596
2597 * expr.c (expand_expr_addr_expr): New.
2598 (expand_expr_real_1) <case ADDR_EXPR>: Use it.
2599
308cd611
RS
26002004-08-30 Richard Sandiford <rsandifo@redhat.com>
2601
2602 * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
2603 (mips_fp_condition): New enum.
2604 (mips_fp_conditions): New array.
2605 (print_fcc_operand): Delete.
2606 (print_operand): Remove %V, %v and %Q. Redefine %Z so that it prints
2607 the operand and comma if and only if ISA_HAS_8CC. Add %Y.
2608 (builtin_description): Add "cond" field.
2609 (DIRECT_BUILTIN): Initialize it.
2610 (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
2611 into INSN and CODE. Initialize the "cond" field.
2612 (CMP_BUILTINS): Update accordingly.
2613 (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
2614 (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
2615 mips_fp_condition as argument. Make it the final operand of the
2616 comparison instruction.
2617 (mips_expand_builtin): Update accordingly.
2618 * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
2619 (UNSPEC_C, UNSPEC_CABS): New constants. Shuffle others to fill
2620 the gaps.
2621 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
2622 Don't use the 'Q' operand prefix; just print the operand normally.
2623 (mips_cabs_*, mips_c_*): Delete, replacing with...
2624 (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
2625 patterns. Split the 4s versions into 2 ps patterns after reload.
2626
88f19756
RH
26272004-08-30 Richard Henderson <rth@redhat.com>
2628
2629 * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
2630 assuming an ADDR_EXPR is non-null.
2631
70008293
JM
26322004-08-30 Jason Merrill <jason@redhat.com>
2633
d92a3b38 2634 * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
70008293 2635
8ce16ed6
NS
26362004-08-30 Nathan Sidwell <nathan@codesourcery.com>
2637
2638 * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
2639 record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
2640 gcc_assert and gcc_unreachable instead of abort.
2641 * alloc-pool.c (abort, fancy_abort): Remove.
2642 (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
2643 gcc_assert or gcc_unreachable.
2644 * attribs.c (init_attributes, decl_attributes): Likewise.
2645 * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
2646 mark_bb_for_unlikely_executed_section,
2647 add_labels_and_missing_jumps, fix_crossing_conditional_branches,
2648 fix_crossing_unconditional_branches): Likewise.
2649 * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
2650 bitmap_operation): Likewise.
2651 * bt-load.c (insn_sets_btr_p, augment_live_range,
2652 move_btr_def): Likewise.
2653 * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
2654 apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
2655 expand_builtin_mathfn_2, expand_builtin_mathfn_3,
2656 builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
2657 expand_builtin_memcmp, expand_builtin_args_info,
2658 std_gimplify_va_arg_expr, expand_builtin_unop,
2659 expand_builtin_fputs, expand_builtin_profile_func,
2660 expand_builtin_fork_or_exec, fold_builtin_bitop,
2661 fold_builtin_classify, fold_builtin_fputs): Likewise.
2662
fc6633e0
NS
26632004-08-30 Nathan Sidwell <nathan@codesourcery.com>
2664
e0448193
NS
2665 * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
2666 * gcov.c (abort): Remove undef.
2667
fc6633e0
NS
2668 * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
2669 (struct tree_binfo): Remove primary field.
2670
89b8abbf
PB
26712004-08-30 Paolo Bonzini <bonzini@gnu.org>
2672
2673 * fixinc/Makefile.in (machname.h): Remove.
2674 (fixincl.x): Do not pass $@ to genfixes.
2675 * fixinc/genfixes: Remove code to produce machname.h.
2676 * fixinc/fixincl.sh: Move it here instead.
2677 * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
2678 instead check if pz_mn_name_pat is NULL. Make mn_get_regexps
2679 return a bool indicating whether pz_mn_name_pat is NULL.
2680 * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
2681 Declare extern C variables for the ENV_TABLE.
2682 * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
2683 instead use the result of mn_get_regexps.
2684 * fixinc/fixtests.c: Likewise.
2685
39880d37
PB
26862004-08-30 Paolo Bonzini <bonzini@gnu.org>
2687
2688 * configure.ac: Do not run fixincludes after stage1 during
2689 toplevel bootstrap.
2690 * configure: Regenerate.
2691
a8b3643c
RE
26922004-08-30 Richard Earnshaw <rearnsha@arm.com>
2693
2694 * sched-deps.c (get_condition): Partially revert previous, by never
2695 trying to extract the condition from a condjump.
2696
fc6633e0
NS
26972004-08-30 Nathan Sidwell <nathan@codesourcery.com>
2698
2699 * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
2700 (handle_visibility_attribute, c_determine_visibility): Likewise.
2701 * c-common.h (my_friendly_assert): Remove.
2702
afa396ff
RS
27032004-08-30 Richard Sandiford <rsandifo@redhat.com>
2704
2705 * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
2706 (UNSPEC_{RSQRT,RECIP}[12]): New constants.
2707 (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
2708 * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
2709 (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
2710
ef6379fd
DN
27112004-08-30 Diego Novillo <dnovillo@redhat.com>
2712
2713 * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
2714 in COMPONENT_REF nodes.
2715
7783b402
GDR
27162004-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
2717
2718 PR c++/15378
2719 * c-opts.c (c_common_handle_option): <case OPT_Werror> set
2720 global_dc->warning_as_error_requested.
2721 * diagnostic.c (diagnostic_initialize): Tidy.
2722 * diagnostic.h (diagnostic_context::x_data): Remove
2723 (diagnostic_context::issue_warnings_are_errors_message): Rename
2724 from warnings_are_errors_message.
2725 (diagnostic_context::warning_as_error_requested): New.
2726
adf968c7
RE
27272004-08-30 Richard Earnshaw <rearnsha@arm.com>
2728
2729 * sched-deps.c (get_condition): Fix breakage in previous patch.
2730
999f4d5e
PB
27312004-08-30 Paul Brook <paul@codesourcery.com>
2732
2733 * doc/install.texi: Fix broken mpfr link.
2734
5a0c2304
DB
27352004-08-29 David O'Brien <obrien@FreeBSD.org>
2736
2737 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
2738 other FreeBSD platforms.
2739
880873be
RE
27402004-08-29 Richard Earnshaw <rearnsha@arm.com>
2741
2742 * arm.h (REVERSE_CONDITION): Define.
2743 (REVERSIBLE_CC_MODE): All comparisons are now reversible.
2744
15dce812
RE
27452004-08-29 Richard Earnshaw <rearnsha@arm.com>
2746
2747 * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
2748 just the codes, call reversed_comparison_code ().
2749 (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
2750 (not_reg_cond): Use reversed_comparison_code.
2751 (and_reg_cond): Likewise.
2752 * ifcvt.c (cond_exec_process_if_block): Likewise.
2753 * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
2754
6903ecd4
RE
27552004-08-29 Richard Earnshaw <rearnsha@arm.com>
2756
2757 * sched-deps.c (get_condition): Rewrite using jump support functions.
2758 Use reversed_comparison_code.
2759 (conditions_mutex_p): Use reversed_comparison_code.
2760
ea9bfbf2
RS
27612004-08-29 Richard Sandiford <rsandifo@redhat.com>
2762
2763 * config/mips/mips.c (override_options): Disable hot/cold partitioning
2764 for MIPS16.
2765
4ca1f68f
RS
27662004-08-29 Richard Sandiford <rsandifo@redhat.com>
2767
2768 * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
2769 (mips_function_type): Move to mips.c.
2770 * config/mips/mips.c (mips_builtin_type): New enum.
2771 (builtin_description): Replace code and ftype with builtin_type
2772 and function_type.
2773 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
2774 (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
2775 (CODE_FOR_mips_abs_ps): Define.
2776 (mips_bdesc): Use new macros.
2777 (mips_expand_builtin): Use builtin_type. Update calls to subroutines.
2778 (mips_init_builtins): Use the mips_bdesc[] index as the function code.
2779 (mips_expand_builtin_direct): New function.
2780 (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
2781 builtin. Replace boolean parameter with builtin_type.
2782 (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
2783 (mips_expand_4s_compare_builtin): Delete, replacing with...
2784 (mips_expand_builtin_compare): ...this new function.
2785
5e9f78cc
MM
27862004-08-29 Mark Mitchell <mark@codesourcery.com>
2787
2788 PR rtl-optimization/16590
2789 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
2790
766ff1b1
DN
27912004-08-29 Diego Novillo <dnovillo@redhat.com>
2792
2793 * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
2794 * tree-ssa-propagate.c: Fix documentation.
2795
2435c4c1
RS
27962004-08-29 Richard Sandiford <rsandifo@redhat.com>
2797
2798 * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
2799 (mov[sd]fcc): Likewise.
2800
53d9ac3b
RS
28012004-08-29 Richard Sandiford <rsandifo@redhat.com>
2802
2803 * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
2804
93898c8b
RS
28052004-08-29 Richard Sandiford <rsandifo@redhat.com>
2806
2807 * config/mips/mips.md (divide_condition): New mode attribute.
2808 (div[sd]f3, *div[sd]f3): Use it. Redefine using :SCALARF.
2809 (sqrt[sd]f3): Redefine using SCALARF.
2810 (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise. Name formerly unnamed
2811 patterns.
2812
aae0609c
RS
28132004-08-29 Richard Sandiford <rsandifo@redhat.com>
2814
2815 * config/mips/mips.md (ANYF, SCALARF): New mode macros.
2816 (loadx, storex, fmt, UNITMODE): New mode attributes.
2817 (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
2818 (mul[sd]f3): Redefine using :SCALARF.
2819 (*mul[sd]f3): Renamed from mul[sd]f3_internal. Use :SCALARF.
2820 (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
2821 (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns. Use :ANYF.
2822 Check TARGET_FUSED_MADD for V2SF too.
2823 (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
2824 were already named.
2825 (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
2826 (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
2827
74fc61d1
RS
28282004-08-29 Richard Sandiford <rsandifo@redhat.com>
2829
2830 * config/mips/mips.c (mips_init_builtins): Simplify. Only create
2831 V2SF_type_node if it will be needed.
2832
ff55fb9c
RS
28332004-08-29 Richard Sandiford <rsandifo@redhat.com>
2834
2835 * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
2836 * config/mips/mips.c (mips_prepare_builtin_arg): New function.
2837 (mips_prepare_builtin_target): New function.
2838 (mips_expand_builtin): Use them. Update calls to subroutines.
2839 (mips_expand_ps_cond_move_builtin): Use the new functions. Replace
2840 cmp_choice with a boolean argument to select between movt and movf.
2841 Take the comparison's icode as an argument, not the function's fcode.
2842 (mips_expand_compare_builtin): New function. Rename existing function
2843 to mips_expand_scalar_compare_builtin.
2844 (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
2845 (mips_expand_ps_compare_builtin): Use the new functions. Take the
2846 comparison's icode as an argument, not the builtin's fcode.
2847
f691c4e3
RS
28482004-08-29 Richard Sandiford <rsandifo@redhat.com>
2849
2850 * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
2851 (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
2852 registers are false and -1 if all registers are true.
2853 (mips_expand_ps_compare_builtin): Likewise CCV2. Use subregs for
2854 MIPS_CMP_UPPER and MIPS_CMP_LOWER.
2855 * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
2856 (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
2857 (bc1any2t, bc1any2f): Likewise CCV2.
2858 (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
2859
49135706
RS
28602004-08-29 Richard Sandiford <rsandifo@redhat.com>
2861
2862 * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
2863 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
2864 UNSPEC rather than an IF_THEN_ELSE.
2865 * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
2866 mips_cond_move_tf_ps by name.
2867
06a4ab70
CF
28682004-08-29 Chao-ying Fu <fu@mips.com>
2869 James E Wilson <wilson@specifixinc.com>
5906d013 2870
06a4ab70
CF
2871 * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
2872 8 byte size and alignment. Give CCV4 16 byte size and alignment.
2873 * config/mips/mips-ps-3d.md: New file.
2874 * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
2875 TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2876 (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
2877 (mips_output_move): Emit "mov.ps" for V2SFmode.
2878 (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
2879 MODE_VECTOR_FLOAT.
2880 (override_options): Check if TARGET_MIPS3D and there was an explicit
2881 !TARGET_PAIRED_SINGLE_FLOAT. Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
2882 Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
2883 TARGET_PAIRED_SINGLE_FLOAT is true. Check if the ISA supports
2884 TARGET_PAIRED_SINGLE_FLOAT. Allow MODE_VECTOR_FLOAT in fp registers,
2885 and allow CCV2 and CCV4 to occupy two and four CC registers.
2886 (print_fcc_operand): New function.
2887 (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC. Modify
2888 %Z to call print_fcc_operand.
2889 (mips_function_value): Handle MODE_VECTOR_FLOAT.
2890 (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
2891 (mips_vector_mode_supported_p): New function.
2892 (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
2893 (builtin_description): New struct.
2894 (mips_bdesc): New array of struct builtin_description.
2895 (mips_expand_builtin, mips_init_builtins,
2896 mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
2897 mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
2898 functions.
2899 * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
2900 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
2901 (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
2902 (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
2903 "-mips3d", and "-mno-mips3d".
2904 (ASM_SPEC): Map -mips3d to -mips3d in gas.
2905 (EXTRA_CONSTRAINT_Y): New macro.
2906 (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT. Add new
2907 multi-letter constraint 'Y'.
2908 (CONSTRAINT_LEN): New macro.
2909 (enum mips_builtins): New for MIPS builtin functions.
2910 (enum mips_function_type): New for the types of MIPS builtin functions.
2911 (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
5906d013 2912 * config/mips/mips.md: New constants for paired single and MIPS-3D
06a4ab70
CF
2913 instructions. Include the new mips-ps-3d.md file.
2914 (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
2915 movv2sf_hardfloat_64bit): New named patterns.
2916 (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
2917 nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
2918 sdxc1_v2sf_di): New unnamed patterns.
2919 * config/mips/predicates.md (const_0_operand, const_1_operand): Add
2920 const_vector support.
2921 (const_0_or_1_operand): New predicate.
2922 * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
2923
750628d8
DN
29242004-08-29 Diego Novillo <dnovillo@redhat.com>
2925
2926 * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
2927 (tree-ssa-propagate.o): New rule.
2928 (GTFILES): Add tree-ssa-propagate.c.
2929 * tree-flow.h (struct stmt_ann_d): Remove field
2930 in_ccp_worklist.
2931 * tree-ssa-propagate.c: New file.
2932 * tree-ssa-propagate.h: New file.
2933 * tree-ssa-ccp.c: Re-write to use the routines from
2934 tree-ssa-propagate.c.
2935
f108270b
AP
29362004-08-28 Andrew Pinski <apinski@apple.com>
2937
2938 * tree-ssa-loop.c: Remove extra include of basic-block.h.
2939
e5a002e3
ZL
29402004-08-28 Ziemowit Laski <zlaski@apple.com>
2941
2942 * c-common.h: Update comments about ObjC/ObjC++ entry points.
2943 (objc_is_reserved_word): New prototype.
2944 (get_current_scope, objc_mark_locals_volatile): Move prototypes to
2945 separate section; these are call-backs.
2946 * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
2947 ObjC/ObjC++ "@" keywords.
2948 * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
2949 prototypes; they already live in c-common.h.
2950 * stub-objc.c: Update copyright notice.
2951 (objc_is_reserved_word): New stub.
2952
2c46a62f
NS
29532004-08-28 Nathan Sidwell <nathan@codesourcery.com>
2954
2955 * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR
2956 even when not checking.
2957
40aac948
JM
29582004-08-27 Jason Merrill <jason@redhat.com>
2959
2960 PR c++/13684
2961 * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
2962 (gimple_push_cleanup): Add eh_only parm.
2963 (gimplify_target_expr): Pass it.
2964 * c.opt (-fno-threadsafe-statics): New option.
2965 * c-opts.c (c_common_handle_option): Handle it.
2966 * c-common.h (flag_threadsafe_statics): Declare it.
2967 * c-common.c (flag_threadsafe_statics): Record it.
2968 * doc/invoke.texi: Document it.
2969 * tsystem.h (_GNU_SOURCE): Define.
2970 * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
2971 (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
2972 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
2973 (__gthread_recursive_mutex_init_function): New fn.
2974 (__gthread_recursive_mutex_lock): New fn.
2975 (__gthread_recursive_mutex_trylock): New fn.
2976 (__gthread_recursive_mutex_unlock): New fn.
2977 * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
2978 * gthr-win32.h, gthr-vxworks.h: Likewise.
2979 * gthr.h: Document.
2980
1494c534
DE
29812004-08-27 David Edelsohn <edelsohn@gnu.org>
2982
2983 * config/rs6000/rs6000.c (rs6000_override_options): Increase
2984 maximum skip to 15. Set function alignment, jump alignment, and
2985 loop alignment to 16 for processors that form dispatch groups.
03e9c50a 2986 (rs6000_rtx_costs): outer_code is used.
1494c534 2987
ce552f75
NS
29882004-08-27 Nathan Sidwell <nathan@codesourcery.com>
2989
e3861d2a
NS
2990 * stor-layout.c (sizetype_set): Remove.
2991 (set_sizetype): Don't test or set it.
2992
ce552f75
NS
2993 * tree.h (size_int_type): Remove.
2994 * fold-const.c: Do not #include gt-fold-const.h.
2995 (size_htab_hash, size_htab_eq): Remove.
2996 (size_int_kind): Use build_int_cst.
2997 (new_const, size_htab): Remove.
2998 (size_int_type): Remove.
2999 (round_up): Use build_int_cst.
3000 (round_down): Likewise. Remove spurious constant build.
3001
06c37c96
NS
30022004-08-27 Nathan Sidwell <nathan@codesourcery.com>
3003
3004 * configure.ac: Add ENABLE_ASSERT_CHECKING control.
3005 Add is_release variable, use it for --enable-werror and
3006 --enable-checking defaults.
3007 * system.h (gcc_assert, gcc_unreachable): New.
3008 * doc/install.texi (--enable-checking): Update.
3009 * configure, config.in: Rebuilt.
3010
57406c63
RS
30112004-08-26 Richard Sandiford <rsandifo@redhat.com>
3012
3013 * rtl.h (read_rtx): Change prototype.
3014 * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
3015 line number. Return true on success.
3016 * gensupport.c (process_include, init_md_reader_args_cb): Adjust
3017 callers accordingly.
3018
ee8a6a3e
RH
30192004-08-26 Richard Henderson <rth@redhat.com>
3020
3021 * c-typeck.c (build_offsetof): Remove.
3022 * c-tree.h (build_offsetof): Remove.
3023 * c-common.c (fold_offsetof_1, fold_offsetof): New.
3024 * c-common.h (fold_offsetof): Declare.
3025 * c-parse.in (offsetof_base): New.
3026 (offsetof_member_designator): Use it. Build references, not just
3027 a tree list.
3028 (primary): Use fold_offsetof, not build_offsetof.
3029
525c6bf5
RH
30302004-08-26 Richard Henderson <rth@redhat.com>
3031
3032 * tree.c (staticp): Return the static object.
3033 * tree.h (staticp): Update decl.
3034 * langhooks.h (struct lang_hooks): Change staticp return type to tree.
3035 * langhooks.c (lhd_staticp): Return NULL_TREE.
3036 * langhooks-def.h (lhd_staticp): Update decl.
3037 * c-common.c (c_staticp): Return the static object.
3038 * c-common.h (c_staticp): Update decl.
3039
d416c0b3
RH
30402004-08-26 Richard Henderson <rth@redhat.com>
3041
3042 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
3043 modes.
3044
0b410f0b
JM
30452004-08-26 Joseph S. Myers <jsm@polyomino.org.uk>
3046
3047 PR c/13801
3048 * c-decl.c (struct c_binding): Add type and inner_comp fields.
3049 (bind): Set type and inner_comp fields.
3050 (pop_scope): Restore type of decl to the correct type from an
3051 outer scope. Give error when popping file scope for incomplete
3052 arrays completed incompatibly with default initialization in an
3053 inner scope.
3054 (diagnose_mismatched_decls): Handle externs with initializers at
3055 block scope.
3056 (pushdecl): Set type of external declaration at block scope based
3057 only on the visible declarations. Save type when changing the
3058 type of a declaration. Merge an external declaration at block
3059 scope with a visible static declaration at file scope.
3060 (implicitly_declare): Give recycled old declaration the new type
3061 except for incompatible declarations of built-in functions, saving
3062 the old type.
3063
b77c7437
ZL
30642004-08-26 Ziemowit Laski <zlaski@apple.com>
3065
3066 * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
3067
a228baff
DB
30682004-08-26 Daniel Berlin <dberlin@dberlin.org>
3069
3070 * tree-alias-common.c (gate_pta): New function.
3071 (pass_build_pta): Use it.
3072 (pass_del_pta): Use it.
3073 (delete_alias_vars): Don't check flag_tree_points_to.
3074
2e6c9641
FJ
30752004-08-26 Fariborz Jahanian <fjahanian@apple.com>
3076
5906d013 3077 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
2e6c9641
FJ
3078 TFmode as additional register mode cloberred by call.
3079
30802004-08-26 Fariborz Jahanian <fjahanian@apple.com>
3081
3082 * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
3083 parallel pattern for library call returning DImode in
3084 mixed mode.
3085
30862004-08-26 Fariborz Jahanian <fjahanian@apple.com>
3087
3088 * config/rs6000/rs6000.c (function_arg): Generate parallel
3089 pattern for more split args.
3090
30912004-08-26 Fariborz Jahanian <fjahanian@apple.com>
3092
3093 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
3094 either gen_movdi_di_update or gen_movdi_si_update depending on
3095 target mode.
3096 * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
3097 to generate two versions.
5906d013 3098
36d59cf7
DB
30992004-08-26 Daniel Berlin <dberlin@dberlin.org>
3100
3101 * Makefile.in (lambda-code.o): New.
3102 (lambda-trans.o): Ditto.
3103 (TREE_DATA_REF_H): Ditto.
3104 (LAMBDA_H): Ditto.
3105 (lambda-mat.o): Use LAMBDA_H.
3106 (tree-data-ref.o): Ditto.
3107 * lambda-code.c: New file. Lambda code generation algorithm.
3108 * lambda-trans.c: Ditto. Lambda transformation matrix support.
3109 * lambda.h: Add lambda loop structures.
3110 Add lambda loopnest structures.
3111 Add lambda body vector structure.
3112 Add lambda linear expression structures.
3113 Add prototypes for functions in new files.
3114 * lambda-mat.c: Include tree.h
3115
31162004-08-26 Daniel Berlin <dberlin@dberlin.org>
5906d013
EC
3117 Sebastian Pop <pop@cri.ensmp.fr>
3118
3119 * tree-data-ref.h: Include lambda.h
36d59cf7 3120 (free_dependence_relation): Declared here.
5906d013 3121 (free_dependence_relations): Ditto.
36d59cf7
DB
3122 (free_data_refs): Ditto.
3123 * tree-data-ref.c (free_dependence_relation): New function.
3124 (free_dependence_relations): Ditto.
3125 (free_data_refs): Ditot.
3126 (analyze_all_data_dependences): Free datarefs and dependence_relations.
3127 (build_classic_dist_vector): Store in the dependence_relations the
3128 information. Each arc in the dependence_relations graph is labelled
3129 with the distance and direction vectors.
3130 (build_classic_dir_vector): Ditto.
3131 (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
3132 Now computes again the whole dependence graph including read-read
3133 relations.
3134 (compute_data_dependences_for_loop): Now dependence_relations contains
3135 all the data, and thus it doesn't need to initialize the classic_dir
3136 and classic_dist vectors.
3137 (analyze_all_data_dependences): Adjusted for using the new interface of
3138 compute_data_dependences_for_loop. Remove the statistics dump.
5906d013 3139
a46bbb5a
BW
31402004-08-26 Bob Wilson <bob.wilson@acm.org>
3141
3142 * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
3143 (xtensa_expand_block_move): Update comment.
3144 (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
3145
52351a5e
RE
31462004-08026 Richard Earnshaw <rearnsha@arm.com>
3147
3148 PR target/13506
3149 * toplev.c (crash_signal): If we crashed while emitting
3150 a user asm, then die more gracefully.
3151
b72e46f0
NC
31522004-08-26 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3153
3154 PR target/17119.
3155 * config/m32r.c (gen_compare): Use reg_or_int16_operand when
3156 checking for a valid constant, regardless of sign.
3157
fd9363bf
RH
31582004-08-25 Richard Henderson <rth@redhat.com>
3159
d416c0b3
RH
3160 PR target/16974
3161 * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
3162 if the constant satisfies add_operand.
fd9363bf 3163
45f413e4 31642004-08-25 Richard Henderson <rth@redhat.com>
5906d013 3165
d416c0b3
RH
3166 PR debug/10695
3167 * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
3168 (alpha_expand_prologue): Handle >32-bit frames. Generate proper
3169 unwind info for >16-bit frames.
45f413e4 3170
7e233208
RK
31712004-08-25 Richard B. Kreckel <richard.kreckel@framatome-anp.com>
3172
3173 PR target/17171
3174 * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
3175
04886dc0
RH
31762004-08-25 Richard Henderson <rth@redhat.com>
3177
d416c0b3
RH
3178 * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
3179 (TARGET_CANNOT_FORCE_CONST_MEM): New.
04886dc0 3180
aca2bd7c
AM
31812004-08-25 Andrew MacLeod <amacleod@redhat.com>
3182
3183 * doc/tree-ssa.texi: Document new operand iterator.
3184
0423421f
AM
31852004-08-26 Alan Modra <amodra@bigpond.net.au>
3186
3187 PR target/16480
3188 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
3189 on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well
3190 as PLUS base regs.
3191
e4dc702c
PB
31922005-08-28 Paul Brook <paul@codesourcery.com>
3193
3194 * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
3195 -mfpu=vfp -march=armv5t
37d5a9a5 3196 * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
e4dc702c 3197
6dd53648
RH
31982004-08-25 Richard Henderson <rth@redhat.com>
3199
3200 * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3201 * target.h (struct gcc_target): Add scalar_mode_supported_p.
3202 * targhooks.c (default_scalar_mode_supported_p): New.
3203 * targhooks.h (default_scalar_mode_supported_p): Declare.
3204 * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
3205
3206 * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
3207 before attempting to create types. Tidy.
3208 * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
3209
3210 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
3211 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3212
bab2b22b
RH
32132004-08-25 Richard Henderson <rth@redhat.com>
3214
3215 * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
3216 set REAL_MODE_FORMAT for TFmode.
3217
c34be55e
ZL
32182004-08-25 Ziemowit Laski <zlaski@apple.com>
3219
3220 * c-decl.c (grokparm): New function.
3221 * c-tree.h (grokparm): New prototype.
3222
4c124b4c
AM
32232004-08-25 Andrew MacLeod <amacleod@redhat.com>
3224
3225 * tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand
3226 iterator controlling structure.
3227 (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
3228 SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
3229 SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand
3230 iterator flags.
3231 (FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees.
3232 (FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses.
3233 (FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs.
3234 (FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs.
5906d013 3235 * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
4c124b4c
AM
3236 Empty operand pointers.
3237 * tree-flow-inline.h (op_iter_done): New. Return true if finished.
3238 (op_iter_next_use): New. Return next use_operand_p.
3239 (op_iter_next_def): New. Return next def_operand_p.
3240 (op_iter_next_tree): New. Return next operands as a tree.
3241 (op_iter_init): New. Initialize an iterator structure.
3242 (op_iter_init_use): New. Initialize structure and get the first use.
3243 (op_iter_init_def): New. Initialize structure and get the first def.
3244 (op_iter_init_tree): New. Initialize structure and get the first tree.
3245 (op_iter_next_maydef): New. Return next V_MAY_DEF operands.
5906d013 3246 (op_iter_init_maydef): New. Initialize structure and get the first
4c124b4c
AM
3247 V_MAY_DEF operands.
3248 * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
5906d013 3249 * tree-dfa.c (compute_immediate_uses_for_stmt,
4c124b4c
AM
3250 redirect_immediate_uses): Use new operand iterator.
3251 (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
3252 (mark_new_vars_to_rename): Use new operand iterator. Count virtual
3253 operands instead of using *_disappeared_p routines.
3254 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
3255 ssa_rewrite_stmt): Use new operand iterator.
3256 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
3257 rewrite_trees): Use new operand iterator.
3258 * tree-pretty-print.c (dump_vops): Use new operand iterator.
3259 * tree-sra.c (mark_all_v_defs): Use new operand iterator.
5906d013 3260 * tree-ssa-alias.c (compute_points_to_and_addr_escape,
4c124b4c 3261 dump_points_to_info): Use new operand iterator.
5906d013
EC
3262 * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
3263 replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
4c124b4c 3264 operand iterator.
5906d013 3265 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
4c124b4c
AM
3266 propagate_necessity): Use new operand iterator.
3267 * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
3268 (register_definitions_for_stmt): Use new operand iterator. Take stmt as
3269 a parameter instead of a stmt_ann_t.
3270 * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
3271 build_tree_conflict_graph): Use new operand iterator.
3272 * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
3273 rewrite_mem_refs): Use new operand iterator.
5906d013 3274 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
4c124b4c
AM
3275 check_loop_closed_ssa_use): Use new operand iterator.
3276 * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
3277 * tree-ssanames.c (release_defs): Use new operand iterator.
3278 * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
3279
4185f1ce
AN
32802004-08-25 Adam Nemet <anemet@lnxw.com>
3281
3282 * tlink.c (initial_cwd): New variable.
3283 (tlink_init): Initialize it.
3284 (recompile_files): Use tlink_execute() instead of system(). Don't
3285 duplicate verbose output of collect_execute. Restore initial_cwd.
3286 Update comment before the function.
3287
700686fa
ZL
32882004-08-25 Ziemowit Laski <zlaski@apple.com>
3289
3290 * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
3291 accept) a cast from one Objective-C pointer type to another.
3292
7fb654ef
PC
32932004-08-25 Paolo Carlini <pcarlini@suse.de>
3294
3295 * doc/install.texi: Document that libstdc++-v3 requires
3296 now automake 1.9.1.
3297
8e8d5162
CT
32982004-08-25 Caroline Tice <ctice@apple.com>
3299
3300 * bb-reorder.c (partition_hot_cold_basic_blocks): Add more details
3301 to comments at start of function.
3302 * cfgbuild.c (make_edges): Add more details to hot/cold partitioning
3303 comment.
5906d013
EC
3304 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3305 merge_blocks_move_predecessor_nojumps,
3306 merge_blocks_move_successor_nojumps, merge_blocks_move,
8e8d5162
CT
3307 try_crossjump_to_edge, try_crossjump_bb): Likewise.
3308 * cfglayout.c (fixup_reorder_chain): Likewise.
3309 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
3310 cfg_layout_can_merge_blocks_p): Likewise.
3311 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
5906d013 3312 * passes.c (rest_of_compilation): Update comments for calling
8e8d5162 3313 optimization that partitions hot/cold basic blocks.
5906d013 3314 * doc/invoke.texi: Update documentation of
8e8d5162 3315 freorder-blocks-and-partition flag.
5906d013 3316
41a21e1d
RS
33172004-08-25 Richard Sandiford <rsandifo@redhat.com>
3318
3319 * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
3320 (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix.
3321
e5f14571
RS
33222004-08-25 Richard Sandiford <rsandifo@redhat.com>
3323
3324 * config/mips/mips.md (any_shift): New code macro.
3325 (optab, insn): New code attributes.
3326 ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
3327 Use the standard rather than internal patterns for the MIPS16
3328 double-shift optimization.
3329 (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
3330 Redefine using :GPR and any_shift.
3331 (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
3332 to cover all three shifts.
3333 (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
3334 Redefine using any_shift. Use :GPR and any_shift to combine splitters.
3335 (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
3336
bbbb79d4
GK
33372004-08-24 Geoffrey Keating <geoffk@apple.com>
3338
3339 * gimplify.c (lookup_tmp_var): Separate temporaries when not
3340 optimizing.
3341
d711cf67
JDA
33422004-08-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3343
3344 PR libstdc++/17005 (fix for HP-UX 11.11)
3345 * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
3346 (hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of
5906d013 3347 tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
d711cf67
JDA
3348 * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
3349 * config/pa/pa-hpux.h (TARGET_HPUX): Define.
3350 (LINK_SPEC): Handle march=1.0 option.
3351 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
3352 and _XOPEN_SOURCE_EXTENDED for UNIX 95.
3353 (SUBTARGET_OPTIONS): New define.
3354 (LINK_SPEC): Handle march=1.0 option.
3355 (STARTFILE_SPEC): New define.
3356 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
3357 and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine
3358 _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
3359 (SUBTARGET_OPTIONS): New define.
3360 (LINK_SPEC): Handle march=1.0 option.
3361 (STARTFILE_SPEC): New define.
3362 * config/pa/pa.c (override_options): Add code to process -munix= option.
3363 * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
3364 (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
3365 defines.
3366 (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
3367 (SUBTARGET_OPTIONS): Provide default define.
3368 * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
3369 STANDARD_STARTFILE_PREFIX_2): New defines.
3370 (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
3371 (ENDFILE_SPEC): Use %O.
3372 * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
3373 Mention issue caused by changing namespace and runtime to UNIX 95/98.
3374 * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
3375 Document -munix=std option.
3376
5affca01
SB
33772004-08-25 Steven Bosscher <stevenb@suse.de>
3378
3379 * cse.c (cse_around_loop, cse_check_loop_start,
3380 cse_set_around_loop): Remove.
3381 (cse_basic_block): Remove the around_loop argument.
3382 (cse_end_of_basic_block): Remove the after_loop argument.
3383 (cse_main): Likewise.
3384 * rtl.h (cse_main): Update prototype.
3385 * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
3386 rest_of_handle_gcse): Update cse_main calls.
3387
7d60be94
NS
33882004-08-25 Nathan Sidwell <nathan@codesourcery.com>
3389
3390 * tree.h (build_int_cst): New, sign extended constant.
3391 (build_int_cstu): New, zero extended constant.
3392 (build_int_cst_wide): Renamed from build_int_cst.
3393 * tree.c (build_int_cst, build_int_cstu): New.
3394 (build_int_cst_wide): Renamed from build_int_cst.
3395 (make_vector_type, build_common_tree_nodes,
3396 build_common_tree_nodes_2): Adjust build_int_cst calls.
3397 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
3398 expand_builtin_strpbrk, expand_builtin_fputs,
3399 build_string_literal, expand_builtin_printf,
3400 expand_builtin_sprintf, fold_builtin_classify_type,
3401 fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
3402 fold_builtin_toascii, fold_builtin_isdigit,
3403 simplify_builtin_strstr, simplify_builtin_strpbrk,
3404 fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
3405 * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
3406 DEF_ATTR_INT): Likewise.
3407 * c-decl.c (complete_array_type, check_bitfield_type_and_width):
3408 Likewise.
3409 * c-lex.c (interpret_integer, lex_charconst): Likewise.
3410 * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
3411 * c-pretty-print.c (pp_c_integer_constant): Likewise.
3412 * c-typeck.c (really_start_incremental_init, push_init_level,
3413 set_nonincremental_init_from_string): Likewise.
3414 * calls.c (load_register_parameters): Likewise.
3415 convert.c (convert_to_pointer): Likewise.
3416 coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
3417 build_fn_info_type, build_fn_info_value, build_ctr_info_value,
3418 build_gcov_info): Likewise.
3419 * except.c (init_eh, assign_filter_values): Likewise.
3420 * expmed.c (store_fixed_bit_field, extract_bit_field,
3421 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
3422 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
3423 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
3424 * expr.c (convert_move, emit_group_load, emit_group_store,
3425 expand_assignment, store_constructor, store_field,
3426 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3427 fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
3428 invert_truthvalue, optimize_bit_field_compare,
3429 decode_field_reference, all_ones_mask_p, constant_boolean_node,
3430 fold_div_compare, fold, fold_read_from_constant_string,
3431 fold_negate_const, fold_abs_const, fold_not_const, round_up,
3432 round_down): Likewise.
3433 * function.c (assign_parm_setup_block): Likewise.
3434 * stmt.c (shift_return_value, expand_case, estimate_case_costs):
3435 Likewise.
3436 * stor-layout.c (layout_type, initialize_sizetypes,
3437 set_min_and_max_values_for_integral_type): Likewise.
3438 * tree-chrec.c (chrec_fold_multiply_poly_poly,
3439 reset_evolution_in_loop): Likewise.
3440 * tree-chrec.h (build_polynomial_chrec): Likewise.
3441 * tree-complex.c (build_replicated_const): Likewise.
3442 * tree-eh.c (honor_protect_cleanup_actions,
3443 lower_try_finally_onedest, lower_try_finally_copy,
3444 lower_try_finally_switch): Likewise.
3445 * tree-mudflap.c (mf_build_string, mx_register_decls,
3446 mudflap_register_call, mudflap_enqueue_constant): Likewise.
3447 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
3448 * tree-pretty-print.c (dump_generic_node): Likewise.
3449 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
3450 Likewise.
3451 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3452 * tree-ssa-loop-niter.c (number_of_iterations_cond,
3453 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
3454 Likewise.
3455 * tree-ssa-loop-ivcanon.c (create_canonical_iv,
3456 canonicalize_loop_induction_variables): Likewise.
3457 * tree-vectorizer.c (vect_create_index_for_array_ref,
3458 vect_transform_loop_bound, vect_compute_data_ref_alignment):
3459 Likewise.
3460
3461 * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
3462 alpha_gimplify_va_arg_1): Likewise.
3463 * config/arm/arm.c (arm_get_cookie_size): Likewise.
3464 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
3465 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3466 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3467 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
3468 mips_gimplify_va_arg_expr): Likewise.
3469 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3470 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
3471 add_compiler_branch_island): Likewise.
3472 * config/s390/s390.c (s390_va_start): Likewise.
3473 * config/sh/sh.c (sh_va_start): Likewise.
3474 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3475 Likewise.
3476 * config/xtensa/xtensa.c (xtensa_va_start,
3477 xtensa_gimplify_va_arg_expr): Likewise.
5906d013 3478
7d60be94
NS
3479 * objc/objc-act.c (build_objc_string_object,
3480 build_objc_symtab_template, init_def_list, init_objc_symtab,
3481 init_module_descriptor, generate_static_references,
3482 build_selector_translation_table, get_proto_encoding,
3483 build_typed_selector_reference, build_selector_reference,
3484 build_next_objc_exception_stuff,
3485 build_method_prototype_list_template, generate_descriptor_table,
3486 generate_protocols, build_protocol_initializer,
3487 build_ivar_list_template, build_method_list_template,
3488 build_ivar_list_initializer, generate_ivars_list,
3489 generate_dispatch_table, generate_protocol_list,
3490 build_category_initializer, build_shared_structure_initializer,
3491 generate_shared_structures, handle_impent,
3492 generate_objc_image_info): Likewise.
3493
8b63d0e5
PB
34942004-04-25 Paolo Bonzini <bonzini@gnu.org>
3495
3496 * cfglayout.c (duplicate_insn_chain): Remove references to
3497 NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
3498 * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
3499 * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
3500 * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
3501 and NOTE_INSN_LOOP_CONT.
3502 * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
3503 * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
3504 and NOTE_INSN_LOOP_CONT.
3505 * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
3506 check_dbra_loop, loop_dump_aux): Remove references to removed notes
3507 and fields.
3508 * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
3509 * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
3510 references to removed notes and fields.
3511 (subtract_reg_term, ujump_to_loop_cont): Remove.
3512
078e3ffe
PB
35132004-08-25 Paolo Bonzini <bonzini@gnu.org>
3514
8b63d0e5 3515 * doc/install.texi: Document that libcpp does not require
078e3ffe
PB
3516 Automake any longer. Document that Automake 1.9.1 should
3517 work everywhere.
3518
f8ca7e49
ZW
35192004-08-25 Zack Weinberg <zack@codesourcery.com>
3520
3521 * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
3522 * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
3523 DWARF_DEBUGGING_INFO from choice-of-definition chain;
3524 restructure using C89 features (#elif, #error).
3525 * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
3526 * config/sh/sh.h: Remove references to DWARF_DEBUG.
3527 * doc/invoke.texi: Remove references to DWARF version 1;
3528 clarify why -gdwarf-2<n> doesn't work.
3529
51a904c9
ZW
35302004-08-25 Zack Weinberg <zack@codesourcery.com>
3531
3532 * basic-block.h (BB_SET_PARTITION): Clear old value first.
3533 * cfg.c (clear_bb_flags): Don't clear partition setting.
69b9b0d2 3534 * ifcvt.c (find_if_case_1): Remove ??? comment.
51a904c9 3535
e548ead9
AM
35362004-08-25 Alan Modra <amodra@bigpond.net.au>
3537
3538 PR target/17052
3539 * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
3540 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
3541 current_function_stdarg in place of sysv_varargs_p.
3542 * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
3543 sysv_varargs_p.
3544
1e19ac74
RH
35452004-08-24 Richard Henderson <rth@redhat.com>
3546
3547 PR target/16298
3548 * config/i386/i386.c (legitimate_constant_p): Rework to not accept
3549 random codes within CONST.
3550
c61225e7
JW
35512004-08-24 James E Wilson <wilson@specifixinc.com>
3552
3553 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
3554 -freorder-blocks-and-partition.
3555
37840132
JDA
35562004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3557
3558 PR middle-end/17044
3559 * tree-ssa-threadupdate.c (redirection_data): Make static.
3560 (thread_block): Use ggc_alloc_cleared to allocate struct
3561 redirection_data. Don't free elements in redirection_data.
3562
cf1d880b
RS
35632004-08-24 Richard Sandiford <rsandifo@redhat.com>
3564
3565 * config/mips/predicates.md (small_data_pattern): Match prefetches.
3566
b3393f1f
ZD
35672004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3568
3569 PR tree-optimization/17016
3570 * tree-ssa-loop-niter.c (number_of_iterations_cond,
3571 number_of_iterations_exit): Use POINTER_TYPE_P instead
3572 of testing for POINTER_TYPE.
3573
82b85a85
ZD
35742004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3575
3576 * tree-ssa-loop-ivcanon.c: New file.
3577 * tree-ssa-loop-manip.c (create_iv): New function.
3578 * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
3579 (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
3580 * cfgloop.c (mark_single_exit_loops): New function.
3581 (verify_loop_structure): Verify single-exit loops.
3582 * cfgloop.h (struct loop): Add single_exit field.
3583 (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
3584 (mark_single_exit_loops): Declare.
3585 (tree_num_loop_insns): Declare.
3586 * cfgloopmanip.c (update_single_exits_after_duplication): New function.
3587 (duplicate_loop_to_header_edge): Use it.
3588 * common.opt (fivcanon): New flag.
3589 * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
3590 * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
3591 (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
3592 (bsi_insert_on_edge_immediate): New function.
3593 * tree-flow.h (bsi_insert_on_edge_immediate,
3594 canonicalize_induction_variables, tree_unroll_loops_completely,
3595 create_iv): Declare.
3596 * tree-optimize.c (init_tree_optimization_passes): Add
3597 pass_iv_canon and pass_complete_unroll.
3598 * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
3599 * tree-scalar-evolution.c (get_loop_exit_condition,
3600 get_exit_conditions_rec, number_of_iterations_in_loop,
3601 scev_initialize): Use single_exit information.
3602 * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
3603 missing assumptions.
3604 (loop_niter_by_eval): Return number of iterations as unsigned
3605 int.
3606 * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
3607 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
3608 tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
3609 New passes.
3610 (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
3611 * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
3612 the defining statement is ready.
3613 * tree-vectorizer.c (vect_create_iv_simple): Removed.
3614 (vect_create_index_for_array_ref, vect_transform_loop_bound):
3615 Use create_iv.
3616 (vect_transform_loop_bound): Use single_exit information.
3617 (vect_analyze_loop_form): Cleanup bogus tests.
3618 (vectorize_loops): Do not call flow_loop_scan.
3619 * tree.h (may_negate_without_overflow_p): Declare.
3620 * fold-const.c (may_negate_without_overflow_p): Split out from ...
3621 (negate_expr_p): ... this function.
3622 (tree_expr_nonzero_p): Handle overflowed constants correctly.
3623 * doc/invoke.texi (-fivcanon): Document.
3624 * doc/passes.texi: Document canonical induction variable creation.
3625
b3c90666
RS
36262004-08-24 Richard Sandiford <rsandifo@redhat.com>
3627
3628 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
3629 * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
3630 using the mode of the operand to decide between them.
3631 * config/mips/mips.md (MOVECC): New mode macro.
3632 (ccreg): New mode attribute.
3633 (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
3634 Redefine using :GPR and :MOVECC. Use %T and %t for the condition.
3635 (mov[sd]icc): Redefine using :GPR.
3636
4767c570
RS
36372004-08-24 Richard Sandiford <rsandifo@redhat.com>
3638
04550232
RS
3639 * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
3640 (mips_prefetch_cookie): New function.
3641 * config/mips/mips.c (print_operand_address): Fix handling of
3642 ADDRESS_CONST_INT.
3643 (mips_emit_prefetch): Delete.
3644 (mips_prefetch_cookie): New function.
3645 * config/mips/mips.md (prefetch): Turn into a define_insn. Use a
3646 mode of QImode for the address_operand. Use mips_prefetch_cookie
3647 to calculate the first "pref" operand.
3648 (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
3649 (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie.
4767c570 3650
a657c98a
RE
36512004-08-24 Richard Earnshaw <rearnsha@arm.com>
3652
3653 * arm.md: Include predicates.md.
3654 * predicates.md: New file.
3655 * arm.c (s_register_operand, arm_hard_register_operand)
3656 (arm_general_register_operand, f_register_operand, reg_or_int_operand)
3657 (arm_immediate_operand, arm_neg_immediate_operand)
3658 (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
3659 (arm_add_operand, arm_addimm_operand, arm_not_operand)
3660 (offsettable_memory_operand, alignable_memory_operand)
3661 (arm_reload_memory_operand, arm_float_rhs_operand)
3662 (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
3663 (index_operand, shiftable_operator, logical_binary_operator)
3664 (shift_operator, equality_operator, arm_comparison_operator)
3665 (minmax_operator, cc_register, dominant_cc_register)
3666 (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
3667 (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
3668 (const_shift_operand, load_multiple_operation)
3669 (store_multiple_operation, multi_register_push, thumb_cmp_operand)
3670 (thumb_cmpneg_operand, thumb_cbrch_target_operand)
3671 (cirrus_register_operand, cirrus_fp_register)
3672 (cirrus_shift_const): Delete, replaced with equivalents in
3673 predicates.md.
3674 (shift_op): Handle ROTATE.
3675 * arm-protos.h: Delete declarations for above.
3676 * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
3677 * t-arm (MD_INCLUDES): Add predicates.md.
3678 (s-preds): Depends on MD_INCLUDES.
3679
886ce862
RS
36802004-08-24 Richard Sandiford <rsandifo@redhat.com>
3681
3682 * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
3683 * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
3684 patterns. Redefine using :GPR. Give the match_operator a mode.
3685 Use '%2' rather than '%z2' for operand 2.
3686
be659abd
RS
36872004-08-24 Richard Sandiford <rsandifo@redhat.com>
3688
3689 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
3690 attribute.
3691
92dcb882
RS
36922004-08-24 Richard Sandiford <rsandifo@redhat.com>
3693
3694 * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names
3695 of internal patterns.
3696 (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
3697 Redefine using :P.
3698 (tablejump): Use expand_binop to calculate address. Adjust names
3699 of internal patterns.
3700 (tablejump[sd]i): Renamed from tablejump_internal[12].
3701 Redefine using :P.
3702 (tablejump_mips16[12]): Delete.
3703
a0160289
RS
37042004-08-24 Richard Sandiford <rsandifo@redhat.com>
3705
3706 * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
3707 (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
3708 (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
3709 (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
3710 (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
3711
2c4402f4
RS
37122004-08-24 Richard Sandiford <rsandifo@redhat.com>
3713
3714 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
3715 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
3716 using :GPR.
3717 (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
3718 (*branch_equality[sd]i): Likewise branch_equality{,_di}.
3719 (*branch_equality[sd]i_inverted): Likewise
3720 branch_equality{,_di}_inverted.
3721 (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
3722 Redefine using :GPR.
3723
b5c2f1d1
ZW
37242004-08-24 Zack Weinberg <zack@codesourcery.com>
3725
3726 * rtl.def: Reorganize, placing all codes used only in machine
3727 descriptions at the end.
3728
9e995780
ZW
3729 * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
3730 * gengtype.c: Don't include rtl.h. Define enum rtx_code and
3731 rtx_name, rtx_format arrays by direct reference to rtl.def,
3732 first undefining GENERATOR_FILE. Define enum insn_note and
3733 note_insn_name array by direct reference to insn-notes.def.
3734 (adjust_field_rtx_def): Remove local definition of rtx_name.
3735 Use symbolic names for insn notes.
3736 * Makefile.in (gengtype.o): Update dependencies.
3737
076c7ab8
ZW
37382004-08-24 Zack Weinberg <zack@codesourcery.com>
3739
3740 * basic-block.h (struct basic_block_def): Reorder fields to
3741 eliminate interior padding. Remove 'partition' field.
3742 (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
3743 (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
3744 (BB_COPY_PARTITION): New macros.
3745 * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
3746 Replace all references to the 'partition' field of a basic
3747 block with new macros.
3748
3749 * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
3750 * final.c (final_scan_insn): Don't handle it.
3751 * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
3752 instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
3753 * sched-rgn.c (sched_is_disabled_for_current_region_p):
3754 Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
3755
8c1d6d62
NS
37562004-08-24 Nathan Sidwell <nathan@codesourcery.com>
3757
3758 * c-decl.c (c_init_decl_processing): Adjust
3759 build_common_tree_nodes call.
3760 * expmed.c (const_mult_add_overflow_p): Use
3761 build_distinct_type_copy.
3762 * stor-layout.c (early_type_list): Remove.
3763 (layout_type): Don't append to early_type_list.
3764 (initialize_sizetypes): Add signed_p argument.
3765 (set_sizetype): Overwrite the stub type nodes directly.
3766 * tree.c (copy_node_stat): Clear a type's value cache here ...
3767 (build_distinct_type): ... not here.
3768 (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
3769 * tree.h (initialize_sizetypes): Add signed_p argument.
3770 (build_common_tree_nodes): Likewise.
3771
3772 * objc/objc-act.c (get_static_reference): Use
3773 build_variant_type_copy.
3774 (get_protocol_reference): Likewise.
3775 * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
3776
97dc04b3 37772004-08-24 Richard Henderson <rth@redhat.com>
076c7ab8 3778 Andrew Pinski <apinski@apple.com>
97dc04b3
RH
3779
3780 * gimplify.c (gimplify_array_ref_to_plus): Delete.
3781 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
3782 for ARRAY_REF.
3783
3784 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
3785 ARRAY_REF also to get to the STRING_CST.
3786
72cdc543
PB
37872004-08-24 Paul Brook <paul@codesourcery.com>
3788
3789 * config/arm/arm.c (arm_override_options): Update error message.
3790 * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
3791 TARGET_HARD_FLOAT_ABI.
3792 (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
3793 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
3794
bd5ca07e
NC
37952004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3796
3797 PR target/17093
3798 * config/m32r.md (movsi_sda): Add SI mode specification to
3799 UNSPEC.
3800
38012004-08-24 Nick Clifton <nickc@redhat.com>
3802
3803 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
3804 of seth_add3_operand.
3805
d46cd2be
NS
38062004-08-24 Nathan Sidwell <nathan@codesourcery.com>
3807
3808 * Makefile.in (PROTO_OBJS): Add errors.o.
3809 * protoize.c (fancy_abort): Remove.
3810 * mips-tfile.c (fancy_abort): Add parameters.
3811
748fa294
JW
38122004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
3813
3814 * doc/trouble.texi (C++ misunderstandings): Fix example code.
3815
4505f099
AT
38162004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
3817
3818 * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
3819 (host-default.o): Add dependency on HOOKS_H.
3820 * config/x-linux: Likewise.
3821 * config/x-solaris: Likewise.
3822 * config/i386/x-mingw32: Likewise.
3823 * config/rs6000/x-darwin: Likewise.
3824
a2fe1975
JW
38252004-08-23 James E Wilson <wilson@specifixinc.com>
3826
3827 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
3828 DEF_REG_NOTE.
3829
c3f216e2
MM
38302004-08-23 Mark Mitchell <mark@codesourcery.com>
3831
3832 PR c/14492
3833 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
3834
2e6ae27f
DN
38352004-08-23 Diego Novillo <dnovillo@redhat.com>
3836
3837 * cfg.c (check_bb_profile): Fix typos.
3838 * function.c (assign_parm_is_stack_parm): Likewise.
3839 * tree-nested.c: Likewise.
3840
d685c974
DJ
38412004-08-23 Daniel Jacobowitz <dan@debian.org>
3842
3843 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
3844 Remove TYPECODE.
3845 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
3846
f676971a
EC
38472004-08-23 Eric Christopher <echristo@redhat.com>
3848
3849 * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
3850 * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
3851 * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
3852 * target.h: Ditto.
3853 * hooks.h: Include machmode.h.
3854 (hook_bool_mode_false): Declare.
3855 * hooks.c (hook_bool_mode_false): Define.
3856 * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
3857 * stor-layout.c (layout_type): Ditto.
3858 * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
3859 Define to target macro.
3860 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
3861 * config/arm/arm.c: Ditto. Use.
3862 * config/arm/arm.h: Ditto.
3863 * config/arm/arm-protos.h: Ditto.
3864 * config/i386/i386.c: Ditto.
3865 * config/i386/i386.h: Ditto.
3866 * config/rs6000/rs6000.c: Ditto.
3867 * config/rs6000/rs6000.h: Ditto.
3868 * config/sh/sh.c: Ditto.
3869 * config/sh/sh.h: Ditto.
3870 * config/sh/sh-protos.h: Ditto.
3871 * config/sh/sh.md: Use.
3872 * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
3873 to TARGET_VECTOR_MODE_SUPPORTED_P.
3874
8dd16ecc
NS
38752004-08-23 Nathan Sidwell <nathan@codesourcery.com>
3876
b3d1f5b4
NS
3877 * Makefile.in (BUILD_ERRORS): Set to build-errors.
3878 (errors.o): New target for host.
3879 (build-errors.o): New target for build.
3880 (genobjs): Replace errors.o with build-errors.
3881 (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
3882 (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
3883 (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
3884 (fix-header.o): Add errors.h
3885 * collect2.c (fancy_abort): Add parameters.
3886 * collect2.h (fancy_abort): Don't declare.
3887 * errors.h (fancy_abort): Don't declare.
3888 * errors.c: Include either bconfig.h or config.h.
3889 (fancy_abort): Trim filename.
3890 * fix-header.c (v_fatal, fatal): Remove.
3891 (progname): Remove definition.
3892 (main): Set progname here.
3893 * gcc.c (fancy_abort): Add parameters.
3894 * gcc.h (fancy_abort): Remove declaration.
3895 * gcov.c (fancy_abort): Remove.
3896 * rtl.h (fancy_abort): Don't declare.
3897 (abort): Don't define.
3898 * tree.h (fancy_abort): Don't declare.
3899 (abort): Don't define.
3900 * system.h (fancy_abort): Declare.
3901 (abort): Define to fancy_abort.
3902 * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
3903
be88a628
NS
3904 * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
3905 (usize_type, ubitsizetype): Remove.
3906 * stor-layout.c (set_sizetype): Don't initialize usizetype,
3907 ubitsizetype.
3908 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
3909
8dd16ecc
NS
3910 * tree.h (build_distinct_type_copy): New.
3911 (build_type_copy): ... here. Rename to ...
3912 (build_variant_type_copy): ... here.
3913 * tree.c (build_qualified_type): Rename build_type_copy call.
3914 (build_distinct_type_copy): New, broken out of ...
3915 (build_type_copy): ... here. Rename to ...
3916 (build_variant_type_copy): ... here. Use
3917 build_distinct_type_copy.
3918 (build_common_tree_nodes_2): Rename build_type_copy call.
3919 * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
3920 call.
3921 (handle_packed_attribute, handle_unused_attribute,
3922 handle_transparanet_union_attribute, handle_aligned_attribute,
3923 handle_deprecated_attribute): Likewise.
3924 * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
3925 Likewise.
3926 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
3927 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
3928 build_distinct_type_copy.
3929
e8bf0f3b
RS
39302004-08-23 Richard Sandiford <rsandifo@redhat.com>
3931
3932 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
3933 attribute.
3934
4d06ed0a
RS
39352004-08-23 Richard Sandiford <rsandifo@redhat.com>
3936
3937 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
3938 loads and stores.
3939 (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
3940 formerly unnamed patterns. Redefine using :P for the address. Remove
3941 explicit length attributes.
3942
a3631d97
ZD
39432004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3944
3945 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
3946 New functions.
3947 (single_reachable_address): Use them.
3948 (schedule_sm): Add dump.
3949 (is_call_clobbered_ref): New function.
3950 (determine_lsm_reg): Check whether the reference is call clobbered.
3951 Only work for gimple_reg_type values.
3952
b1f58428
RS
39532004-08-23 Richard Sandiford <rsandifo@redhat.com>
3954
3955 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
3956 $31 store insns. Redefine using :GPR.
3957
237b301e
RS
39582004-08-23 Richard Sandiford <rsandifo@redhat.com>
3959
3960 * config/mips/mips.md (P): New mode macro.
3961 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
3962 (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
3963 Add mode attributes.
3964
c9081a92
RS
39652004-08-23 Richard Sandiford <rsandifo@redhat.com>
3966
3967 * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
3968 (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle
3969 later constants to cover the gap.
3970 (load, store): New mode attributes.
3971 (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
3972 Use new unspec constants.
3973
3d1f285d
RS
39742004-08-23 Richard Sandiford <rsandifo@redhat.com>
3975
3976 * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
3977 (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns
3978 to use register_operand rather than uns_arith_operand as the predicate
3979 for operand 1. Remove redundant MIPS16 force_reg() for operand 1.
3980 (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
3981 Redefine using :GPR. Make same predicate change here. Extend the
3982 commutativity of operands 1 and 2 from the SImode version to the
3983 DImode one.
3984 (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
3985 but with no predicate changes.
3986 (*nor[sd]i3): Redefine using :GPR.
3987
c0e1b12f
ZD
39882004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3989
3990 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
3991 noreturn functions.
3992
400a9325
RS
39932004-08-23 Richard Sandiford <rsandifo@redhat.com>
3994
3995 * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
3996 * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use
3997 branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%."
3998 rather than "%z2" (with a fake const0_rtx for operand 2).
3999 (ffs[sd]i2): Redefine using :GPR.
4000 (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case.
4001
2222da3a
RS
40022004-08-23 Richard Sandiford <rsandifo@redhat.com>
4003
4004 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
4005
15ac4ccf
RS
40062004-08-23 Richard Sandiford <rsandifo@redhat.com>
4007
4008 * config/mips/mips.md (any_extend): New code macro.
4009 (u, su): New code attributes.
4010 ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
4011 ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
4012 ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
4013 (*{s,u}mul_acc_di): Redefine using any_extend.
4014 (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns
4015 to reflect real insn names.
4016 (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
4017 with an any_extend template.
4018 ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
4019 Add '*' to name.
4020
d46c971d
RS
40212004-08-23 Richard Sandiford <rsandifo@redhat.com>
4022
4023 * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
4024 * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
4025 (mul[sd]i3_r4000): Redefine using :GPR.
4026 (mulsi3_mult3): Don't check TARGET_MAD separately.
4027 (muldi3_mult3): Moved after mulsi_mult3.
4028
5811cb27
RS
40292004-08-23 Richard Sandiford <rsandifo@redhat.com>
4030
4031 * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
4032 OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld.
4033 * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down.
4034 (TARGET_GAS, TARGET_MIPS_AS): Delete.
4035 (TARGET_GPWORD): Define to true for n32 on IRIX.
4036 (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op.
4037 (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
4038 (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
4039 (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
4040 (MDEBUG_ASM_SPEC): Delete, folding into...
4041 (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
4042 (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches.
4043 (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
4044 subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT
4045 to define asm_abi_default_spec.
4046 (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
4047 (TARGET_ASM_SELECT_SECTION): Delete.
4048 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
4049 for non-mips16 code, removing previous workaround for SGI assemblers.
4050 (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
4051 (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
4052 (override_options): Remove !TARGET_GAS and !have_named_sections code.
4053 (print_operand): Fold TARGET_GAS conditionals into asm strings.
4054 (mips_output_filename): Remove !TARGET_GAS code. Replace use of
4055 ASM_STABS_OP and ASM_STABN_OP.
4056 (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
4057 (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
4058 (mips_output_function_prologue): Remove !TARGET_GAS code.
4059 (mips_select_rtx_section): Remove !have_named_sections code.
4060 (mips_select_section): Delete.
4061 * config/mips/mips.md (trap): Remove !TARGET_GAS check.
4062 * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
4063 * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
4064 (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
4065 * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
4066 * config/mips/windiss.h (ASM_SPEC): Likewise.
4067
032e8348
RS
40682004-08-23 Richard Sandiford <rsandifo@redhat.com>
4069
4070 * read-rtl.c (map_value, mapping, macro_group): New structures.
4071 (BELLWETHER_CODE): New macro.
4072 (modes, codes, bellwether_codes): New variables.
4073 (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
4074 (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
4075 (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
4076 (add_condition_to_rtx, apply_macro_traverse, add_mapping)
4077 (add_map_value, initialize_macros): New functions.
4078 (def_hash, def_hash_eq_p): Generalize to anything that points to,
4079 or starts with, a char * field.
4080 (find_macro, read_mapping, check_code_macro): New functions.
4081 (read_rtx_1): New, split out from read_rtx. Handle the new
4082 define_{mode,code}_{macro,attr} constructs. Use find_macro
4083 to parse the name of a code or mode. Use BELLWETHER_CODE to
4084 extract the format and to choose a suitable code for rtx_alloc.
4085 Modify recursive invocations to use read_rtx_1.
4086 (read_rtx): Call initialize_macros. Apply code and mode macros
4087 to the rtx returned by read_rtx_1. Cache everything after the
4088 first macro expansion for subsequent read_rtx calls.
4089 * doc/md.texi: Document new .md constructs.
4090 * config/mips/mips.md (GPR): New mode macro.
4091 (d, si8_di5): New mode attributes.
4092 (any_cond): New code macro.
4093 (add[sd]i3): Redefine using :GPR.
4094 (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
4095 (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
4096 previously unnamed MIPS16 patterns.
4097 (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long
4098 lines. Don't match (plus (const_int 0) ...).
4099 (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
4100 Use a define_split to generate the addition.
4101 (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn.
4102 (subsi3_internal): Delete.
4103 (*subsi3_extended): Renamed from subsi3_internal_2.
4104 (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
4105 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
4106 using an any_cond template.
4107
ecce923e
RS
41082004-08-23 Richard Sandiford <rsandifo@redhat.com>
4109
4110 * read-rtl.c (read_rtx): Tidy use of format_ptr.
4111
a269d6c8
RS
41122004-08-23 Richard Sandiford <rsandifo@redhat.com>
4113
4114 * read-rtl.c (string_obstack): New file-scope variable.
4115 (read_string, read_quoted_string, read_braced_string)
4116 (read_escape): Remove obstack parameter and use string_obstack instead.
4117 (read_rtx): Remove function-local rtl_obstack and initialize
4118 string_obstack instead. Update call to read_string.
4119
9fc3b39a
AP
41202004-08-22 Andrew Pinski <apinski@apple.com>
4121
4122 PR c/15262
4123 * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
4124 expression is not constant.
4125 (c_finish_return): Do not go through INDIRECT_REF when looking
4126 for the inner expression of an ADDR_EXPR for warning about.
4127
cea49550
RH
41282004-08-22 Richard Henderson <rth@redhat.com>
4129
4130 PR 17075
4131 * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
4132 create new blocks and fall through.
4133 (expand_gimple_basic_block): Update to match.
4134
0b540f12
UW
41352004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
4136
4137 * reload.c (find_reloads_address): Make return value tri-state.
4138 Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
4139 (find_reloads): Assume that reloaded addresses match 'o' or
4140 EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
4141 returned 1 (not -1). Omit optional reloads for address operands
4142 only if find_reloads_address returned 1 (not -1).
4143
4144 * config/s390/s390.c (legitimize_reload_address): New function.
4145 * config/s390/s390-protos.h (legitimize_reload_address): Declare.
4146 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call
4147 legitimize_reload_address.
4148
7f5e6307
RH
41492004-08-22 Richard Hendersion <rth@redhat.com>
4150
4151 * tree.h (SAVE_EXPR_RESOLVED_P): New.
4152 * gimplify.c (gimplify_save_expr): Use it.
4153 * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P
4154 on the temporary variable.
4155
efd610a6
AP
41562004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
4157
4158 * fold-const.c (rtl_expr_nonnegative_p): Delete.
4159 * tree.h (rtl_expr_nonnegative_p): Remove.
4160
324a6c95
SB
41612004-08-22 Steven Bosscher <stevenb@suse.de>
4162
4163 * config/i386/ppro.md (ppro_complex_insn): Add missing check
4164 for cpu==pentiumpro.
4165
4166 * combine.c (struct reg_stat): Fix comment typo.
4167
41db8425
JM
41682004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
4169
4170 * c-tree.h (c_sizeof_nowarn): Remove.
4171
00325bce
JM
41722004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
4173
4174 * c-decl.c (set_array_declarator_type): Rename to
4175 set_array_declarator_inner.
4176 (build_c_parm, build_attrs_declarator, build_function_declarator):
4177 New functions.
4178 (make_pointer_declarator): Call build_attrs_declarator.
4179 * c-tree.h (set_array_declarator_type): Rename to
4180 set_array_declarator_inner.
4181 (build_c_parm, build_attrs_declarator, build_function_declarator):
4182 New prototypes.
4183 * c-parse.in (after_type_declarator,
4184 parm_declarator_starttypename, parm_declarator_nostarttypename,
4185 notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
4186 firstparm): Use these functions
4187
60919bce
JM
41882004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
4189
4190 * c-decl.c (build_array_declarator, set_array_declarator_type,
4191 start_decl, grokdeclarator, grokparms): Change boolean parameters
4192 to type bool.
4193 * c-tree.h (build_array_declarator, set_array_declarator_type,
4194 start_decl): Update prototypes.
4195 * c-decl.c, c-parse.in: All callers changed.
4196
bdfd0ed4
MS
41972004-08-21 Mike Stump <mrs@apple.com>
4198
4199 * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
4200 (darwin_fix_and_continue): Likewise.
4201 (darwin_fix_and_continue_switch): Likewise.
4202 * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
4203 (darwin_fix_and_continue): Likewise.
4204 (darwin_fix_and_continue_switch): Likewise.
4205
35da8b56 42062004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
23d34220
DS
4207
4208 PR c++/16030
4209 * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
4210 Remove, merging into ...
4211 (gen_stdcall_or_fastcall_suffix): New function, returning tree
4212 rather than const char*, and accepting additional parameter.
4213 Don't add suffix to '*'-prefixed symbols or variadic functions.
4214 (i386_pe_encode_section_info): Adjust for call to new function.
4215 Call change_decl_assembler_name.
4216
828a4fe4
MS
42172004-08-20 Mike Stump <mrs@apple.com>
4218
4219 * config/darwin.c (machopic_indirect_data_reference): Mark
4220 stubs as defined.
4221 * config/386/386.c (darwin_local_data_pic): Add.
4222 (legitimate_constant_p): Reorder so that PLUS handling runs
4223 before darwin_local_data_pic to match the ordering in
4224 legitimate_pic_address_disp_p and so that MINUS runs after
4225 darwin_local_data_pic as otherwise the darwin_local_data_pic
4226 logic can be skipped, which would be very bad.
4227 (legitimate_pic_address_disp_p): Move from from here to
4228 darwin_local_data_pic so it can be reused.
4229
85b776df
AM
42302004-08-21 Alan Modra <amodra@bigpond.net.au>
4231
4232 * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
4233 (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
4234 (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
4235 (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
4236 (RS6000_ABI_NAME): Define as "linux".
4237 (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
4238 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
4239 ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
4240 * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
4241 * config/rs6000/rs6000.c (dot_symbols): New global var.
4242 (rs6000_output_function_entry): New function, modified for
4243 !DOT_SYMBOLS..
4244 (print_operand <case 'z'>): ..extracted from here.
4245 (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
4246 (rs6000_output_function_epilogue): Likewise.
4247 (rs6000_elf_declare_function_name): Likewise.
4248 * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
4249 (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
4250 * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
4251 * configure: Regenerate.
4252 * config.in: Regenerate.
4253
14d3dc34
MM
42542004-08-20 Mark Mitchell <mark@codesourcery.com>
4255
0e544c37
MM
4256 * reload.c (find_reloads_address): Fix thinko in previous change.
4257
14d3dc34
MM
4258 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
4259 a CONST_INT.
4260
f3b2657c
JJ
42612004-08-20 Jakub Jelinek <jakub@redhat.com>
4262
4263 PR rtl-optimization/17099
4264 * combine.c (force_to_mode): Check if inner_mask has any bits set
4265 outside of GET_MODE (x) instead of op_mode.
4266
d2294baa
MM
42672004-08-20 Mark Mitchell <mark@codesourcery.com>
4268
4269 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
4270 fragment.
4271 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
4272 (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
4273 * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
4274 architecture.
4275 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
4276 configurations.
4277 * config/arm/t-symbian: New file.
4278
753d0efa
AP
42792004-08-20 Andrew Pinski <apinski@apple.com>
4280
4281 * regrename.c (kill_value_regno): ANSIfy.
4282
627b6fe2
DJ
42832004-08-20 Dale Johannesen <dalej@apple.com>
4284
324a6c95 4285 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
627b6fe2 4286
d64d5e80
DJ
42872004-08-20 Daniel Jacobowitz <dan@debian.org>
4288
4289 * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
4290 (kill_value_regno): New function, derived from kill_value.
4291 (kill_value): Update.
4292 (copyprop_hardreg_forward_1): Update call to kill_value_regno.
4293
af75a7ea 42942004-08-20 Daniel Berlin <dberlin@dberlin.org>
f676971a 4295
af75a7ea
DB
4296 Fix PR tree-optimization/17111
4297 * tree-ssa-pre.c (create_value_expr_from): Don't change the types
4298 of non-value_handles.
4299 (bitmap_set_contains): All constants are in every set.
4300
0a936b12
NS
43012004-08-20 Nathan Sidwell <nathan@codesourcery.com>
4302
4303 * fold-const.c (round_up, round_down): Use build_int_cst.
4304 Optimize common case.
4305
774acadf
ZW
43062004-08-20 Zack Weinberg <zack@codesourcery.com>
4307 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4308
324a6c95 4309 * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
774acadf
ZW
4310 one_only_data_section): Rename to som_readonly_data_section,
4311 som_one_only_readonly_data_section and som_one_only_data_section.
324a6c95 4312 * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
0a936b12
NS
4313 NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
4314 conditional defines.
774acadf
ZW
4315 (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
4316 NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
4317 string values.
4318 (pa_select_section): Use renamed section functions.
4319 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
324a6c95 4320 SOM_READONLY_DATA_SECTION_FUNCTION,
774acadf 4321 SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
324a6c95
SB
4322 SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
4323 Define here ...
4324 * config/pa/som.h: ... not here.
4325 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
774acadf
ZW
4326 ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
4327 ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
324a6c95
SB
4328 ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
4329 (READONLY_DATA_SECTION): Use som_readonly_data_section.
774acadf 4330
3224bead
NS
43312004-08-20 Nathan Sidwell <nathan@codesourcery.com>
4332
fabead06
NS
4333 * fold-const.c (int_const_binop): Don't generate non-overflowing
4334 size-types specially.
4335 (fold_convert_const): Likewise.
4336
3224bead
NS
4337 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
4338 clear cache on copied sizetype.
4339
fb38008e
BE
43402004-08-20 Ben Elliston <bje@au.ibm.com>
4341
4342 * configure.ac: Don't escape apostrophe in --enable-coverage help.
4343 * configure: Regenerate.
4344
a9024779
DS
43452004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
4346
4347 PR 5620
4348 * gcc.c (struct stat input_stat): Don't define if
4349 HOST_LACKS_INODE_NUMBERS
4350 (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
4351 than stat to determine if temp file is same as input file.
4352 * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
4353 * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
4354
82563d35
RS
43552004-08-20 Richard Sandiford <rsandifo@redhat.com>
4356
4357 * configure.ac (mips*-*-*): Print an error if not using GAS.
4358 * configure: Regenerated.
4359 * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
4360 comments about buggy MIPSpro assemblers.
4361 * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
4362 before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
4363 Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
4364 IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
4365 * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
4366 (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
4367 (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
4368 (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
4369 (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
4370 of more general IRIX 6 definitions.
4371 (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
4372 (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
4373 (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
4374 (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
4375 (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
4376 (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
4377 (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
4378 (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
4379 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
4380 (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
4381 (LINK_SPEC): Move most of definition to iris.h.
4382 (SUBTARGET_LINK_SPEC): New macro.
4383 (IRIX_STARTFILE_SPEC): Fold into...
4384 (STARTFILE_SPEC): ...here.
4385 (IRIX_ENDFILE_SPEC): Fold into...
4386 (ENDFILE_SPEC): ...here.
4387 * config/mips/iris6.h (TARGET_IRIX5): Remove override.
4388 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
4389 (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
4390 (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
4391 (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
4392 (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
4393 (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
4394 (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
4395 (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
4396 (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
4397 (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
4398 (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
4399 (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
4400 (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
4401 (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
4402 (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
4403 (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
4404 (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
4405 (TARGET_IRIX6): Define to 1.
4406 (DRIVER_SELF_SPECS): Define.
4407 (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
4408 (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
4409 (SUBTARGET_LINK_SPEC): New macro.
4410 (IRIX_STARTFILE_SPEC): Fold into...
4411 (STARTFILE_SPEC): ...here. Remove !mabi=* case.
4412 (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
4413 (LIB_SPEC, LIBGCC_SPEC): Use them.
4414 (LIB_SPEC): Remove !mabi=* case.
4415 (IRIX_ENDFILE_SPEC): Fold into...
4416 (ENDFILE_SPEC): ...here. Remove !mabi=* case.
4417 * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
4418 * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
4419 (TARGET_IRIX6): New macro.
4420 (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
4421 (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
4422 (LABEL_AFTER_LOC): Delete.
4423 * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
4424 (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
4425 (mips_build_builtin_va_list): Check TARGET_IRIX6.
4426 (override_options): Remove TARGET_SGI_O32_AS-related code.
4427 (irix_output_external_libcall): Make static.
4428 (mips_output_filename): Avoid use of SET_FILE_NUMBER and
4429 LABEL_AFTER_LOC.
4430 (mips_file_start): Tidy guard for ABI sections. Remove use of
4431 ABICALLS_ASM_OP; use .abicalls instead.
4432 (mips_output_aligned_decl_common, mips_declare_object_name)
4433 (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
4434 (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
4435 .globl foo .text directives.
4436 (irix_asm_named_section_1, irix_asm_named_section)
4437 (irix_section_align_entry, irix_section_align_htab)
4438 (irix_orig_asm_out_file, irix_section_align_entry_eq)
4439 (irix_section_align_entry_hash, irix_asm_output_align)
4440 (irix_file_start, irix_section_align_1, copy_file_data)
4441 (irix_file_end, irix_section_type_flags): Delete.
4442 * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
4443 Use standard section syntax. Remove protective "jr $31".
4444 (__gcc_fini): Likewise .gcc_fini.
4445 * config/mips/irix-crtn.asm: Adjust sections accordingly.
4446 * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
4447 iris5gas.h.
4448 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
4449 from t-irix-gld.
4450 (EXTRA_MULTILIB_PARTS): Define.
4451 * config/mips/t-iris6: Remove bogus comment.
4452 (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
4453 * config/mips/iris5gas.h, config/mips/iris5gld.h,
4454 config/mips/iris6gas.h, config/mips/iris6gld.h,
4455 config/mips/t-iris5-as, config/mips/t-iris5-gas
4456 config/mips/t-irix-gld: Delete.
4457 * config/mips/iris.h: New file.
4458 * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
4459
c4cdb8e1
RE
44602004-08-20 Richard Earnshaw <rearnsha@arm.com>
4461
4462 * postreload.c (reload_cse_move2add): Allow any condjump, but check
4463 that the implicit set isn't clobbered in the jump insn.
4464
d55ab31d
MM
44652004-08-19 Mark Mitchell <mark@codesourcery.com>
4466
4467 * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
4468 * optabs.c (init_optabs): Don't check it.
4469 * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
4470 * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
4471
d75f90f1
AK
44722004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
4473
4474 * config/s390/s390.md (s390_warn_framesize_string)
4475 (s390_warn_dynamic_string, s390_stack_size_string)
4476 (s390_stack_guard_string): New global string variables.
4477 (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
4478 (s390_stack_guard): New global variables.
4479 (override_options): Added checks for the new options.
4480 (s390_emit_prologue): Emit stack check and trap code and perform
4481 compile time stack size checking.
f676971a
EC
4482
4483 * config/s390/s390.h (TARGET_OPTIONS): Added new options
d75f90f1
AK
4484 "warn-framesize", "warn-dynamicstack", "stack-size" and
4485 "stack-guard".
4486
4487 * doc/invoke.texi: Added documentation for the new options.
4488
ca29916b
UW
44892004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
4490
4491 * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
4492 to eliminate warning.
4493 (linear_search_fdes): Declare p as unsigned.
4494 (binary_search_mixed_encoding_fdes): Likewise.
4495 * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
4496 to eliminate warning.
4497 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
4498 type cast.
4499
e1d5ee28
UW
45002004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
4501
4502 * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
4503 * config/s390/s390.c (preferred_la_operand_p): Accept two operands
4504 instead of one. Check for strictly legitimate address.
4505 * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
4506 to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
4507
19114537
EC
45082004-08-19 Eric Christopher <echristo@redhat.com>
4509
4510 * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
4511 * langhooks.h (unsave_expr_now): Ditto.
4512 * tree.h (unsave_expr_1): Remove prototype.
4513 (lhd_unsave_expr_now): Rename to unsave_expr_now.
4514 * tree-inline.c (unsave_expr_1): Move here
4515 from tree.c. Make static.
4516 (unsave_expr_now): Rename from lhd_unsave_expr_now.
4517 * tree-sra.c: Fix up for rename.
4518 * tree-ssa-copy.c: Ditto.
4519 * tree-eh.c: Ditto.
4520 * tree.c (unsave_expr_1): Move to tree-inline.c.
4521
d5bfecf2
CT
45222004-08-19 Caroline Tice <ctice@apple.com>
4523
324a6c95
SB
4524 * config/i386/cygming.h (switch_to_section): Fix typo (change
4525 in_unlikely_text_section to in_unlikely_executed_text).
19114537 4526
58152808
DB
45272004-08-19 Daniel Berlin <dberlin@dberlin.org>
4528
4529 * vec.h (VEC_lower_bound): New macro.
19114537 4530
ae043003
RS
45312004-08-19 Richard Sandiford <rsandifo@redhat.com>
4532
4533 PR target/16446
4534 * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
4535 (mips_arg_info): Update accordingly. Remove common treatment of fpr_p;
4536 treat each ABI separately. Deal with n32/n64 complex float arguments.
4537 (function_arg): Add associated complex handling here.
4538
50ed9cea
RH
45392004-08-19 Richard Henderson <rth@redhat.com>
4540
4541 * config/arm/arm.c (arm_gen_load_multiple): Use
4542 adjust_automodify_address. Take base memory and offset instead
4543 of unchanging/struct/scalar bits.
4544 (arm_gen_store_multiple): Likewise.
4545 (arm_gen_movmemqi): Use adjust_automodify_address.
4546 * config/arm/arm-protos.h: Update decls.
4547 * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
4548 (store_multiple): Similarly.
4549
74ae207d
R
45502004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
4551
4552 * regclass.c (globalize_reg): Update call_really_used_regs.
4553
89b0433e
NS
45542004-08-19 Nathan Sidwell <nathan@codesourcery.com>
4555
31ebd7c8
NS
4556 * doc/invoke.texi (integer-share-limit): Document.
4557
89b0433e
NS
4558 * tree.h (TYPE_CACHED_VALUES_P): New.
4559 (TYPE_CACHED_VALUES): New.
4560 (TYPE_ORIG_SIZE_TYPE): Adjust.
4561 * tree.def (INTEGER_CST): Update documentation.
4562 * tree.c: Inlcude params.h.
4563 (build_int_cst): Cache small values.
4564 (build_type_copy): Do not copy the value cache.
4565 * c-common.c (c_common_nodes_and_builtins): Add comment, remove
4566 unneeded zeroing.
4567 * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
4568 * expmed.c (const_mult_add_overflow_p): Clear type copy's value
4569 cache.
4570 * fold-const.c (force_fit_type): Copy value when setting
4571 overflows.
4572 (int_const_binop): Likewise.
4573 * stor-layout.c: Include params.h
4574 (set_sizetype): Create values cache.
4575 (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
4576 * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
4577 * params.h (INTEGER_SHARE_LIMIT): New.
4578 * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
19114537 4579
c2504783
PB
45802004-08-19 Paolo Bonzini <bonzini@gnu.org>
4581
4582 * gimplify.c (gimplify_minimax_expr): Remove.
4583 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
4584
7a8554ce
DN
45852004-08-19 Dorit Naishlos <dorit@il.ibm.com>
4586
19114537 4587 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
7a8554ce
DN
4588 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
4589
1905f33d
MM
45902004-08-19 Mark Mitchell <mark@codesourcery.com>
4591
4592 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
4593
f1732751
AP
45942004-08-18 Andrew Pinski <apinski@apple.com>
4595
4596 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
4597
8c78a388
MM
45982004-08-18 Mark Mitchell <mark@codesourcery.com>
4599
4600 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
4601 (__aeabi_ul2f): Likewise.
4602
7eda7cda
RH
46032004-08-18 Richard Henderson <rth@redhat.com>
4604
4605 * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
4606 move to rtl completely.
4607 (struct meminsnbuf, xtensa_emit_block_move): Remove.
4608 (xtensa_find_mode_for_size): Remove.
4609 * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
4610 * config/xtensa/xtensa.md (movmemsi_internal): Remove.
4611
88042663
RH
46122004-08-18 Richard Henderson <rth@redhat.com>
4613
4614 * config/mcore/mcore.c (mode_from_align): Remove DImode.
4615 (block_move_sequence): Rewrite to use adjust_address.
4616 (mcore_expand_block_move): Cleanup logic. Accept only operands.
4617 Return boolean indicating success/failure.
4618 * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
4619 * config/mcore/mcore.md (movmemsi): Update to match.
4620
699c914a
MS
46212004-08-18 Mike Stump <mrs@apple.com>
4622
4623 * doc/invoke.texi (-mfix-and-continue): Add support for
4624 fast turn around debugging.
4625 (-ffix-and-continue): Likewise.
4626 (-mindirect-data): Likewise.
4627 (-findirect-data): Likewise.
4628 * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
4629 (indirect_data): Likewise.
4630 (machopic_data_defined_p): Likewise.
4631 (machopic_output_indirection): Likewise.
4632 (darwin_encode_section_info): Likewise.
4633 (darwin_fix_and_continue): Likewise.
4634 (darwin_fix_and_continue_switch): Likewise.
4635 * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
4636 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
4637 (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
4638 (SUBTARGET_OPTIONS): Likewise.
4639 (darwin_fix_and_continue): Likewise.
4640 (darwin_fix_and_continue_switch): Likewise.
4641 (TARGET_FIX_AND_CONTINUE): Likewise.
4642 * config/rs6000.c (rs6000_emit_prologue): Likewise.
4643
46442004-08-19 Steven Bosscher <stevenb@suse.de>
bd454efd
SB
4645
4646 * basic-block.h (struct edge_def): Remove crossing_edge.
4647 (EDGE_CROSSING): New define.
4648 (EDGE_ALL_FLAGS): Update.
4649 * bb-reorder.c (find_traces_1_round, better_edge_p,
4650 find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
4651 find_jump_block, fix_crossing_conditional_branches,
4652 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
4653 Replace all occurences of crossing_edge with an edge flag check
4654 or set/reset.
4655 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4656 try_crossjump_bb): Likewise.
4657 * cfglayout.c (fixup_reorder_chain): Likewise.
4658 * cfgrtl.c (force_nonfallthru_and_redirect,
4659 commit_one_edge_insertion): Likewise.
4660
4661 * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
4662 * tree-flow.h (compute_dominance_frontiers): Move prototype...
4663 * basic-block.h: ...here.
4664 * tree-cfg.c (compute_dominance_frontiers_1,
4665 compute_dominance_frontiers): Move from here...
4666 * cfganal.c: ...to here. Include timevar.h.
4667
9ff6992e
JW
46682004-08-18 James E Wilson <wilson@specifixinc.com>
4669
c831f54b 4670 * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
a1627d80
JW
4671 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
4672
9ff6992e
JW
4673 * config/mips/mips.md (type): Add frdiv.
4674 (divsf3+1, divsf3+2): Change type to frdiv.
4675 * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
4676 ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
19114537 4677
9ff6992e
JW
4678 * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
4679 * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
4680 * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
4681 * config/mips/5000.md (r5k_fdiv_single): Likewise.
4682 * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
4683 * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
4684 * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
4685 * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
4686 * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
4687 * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
4688 Likewise.
4689 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
4690
c16eb900
RB
46912004-08-18 Robert Bowdidge <bowdidge@apple.com>
4692
4693 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
324a6c95 4694 get regression tester working again.
c16eb900 4695
826c9564
ZW
46962004-08-18 Zack Weinberg <zack@codesourcery.com>
4697
4698 * insn-notes.def, reg-notes.def: New files.
4699 * rtl.h: Use them to define enum insn_note and enum reg_note.
4700 * rtl.c: Use them to define note_insn_name and reg_note_name.
4b179e92 4701 * Makefile.in (RTL_BASE_H): Update.
826c9564
ZW
4702
4703 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
4704 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
4705
21b5653c
RE
47062004-08-18 Richard Earnshaw <rearnsha@arm.com>
4707
4708 * arm.c (arm_size_rtx_costs): New function.
4709 (arm_override_options): Use it if optimizing for space.
4710
542a8afa
RH
47112004-08-18 Richard Henderson <rth@redhat.com>
4712
4713 * emit-rtl.c (gen_const_mem): New.
4714 * rtl.h (gen_const_mem): Declare.
4715 * expr.c (do_tablejump): Use it.
4716 * varasm.c (force_const_mem): Likewise.
4717 * config/darwin.c (machopic_indirect_data_reference): Likewise.
4718 (machopic_legitimize_pic_address): Likewise.
4719 * config/arm/arm.c (legitimize_pic_address): Likewise.
4720 * config/i386/i386.c (legitimize_pic_address): Likewise.
4721 (legitimize_tls_address): Likewise.
4722 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
4723 * config/ia64/ia64.md (load_fptr): Likewise.
4724 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
4725 * config/pa/pa.c (legitimize_pic_address): Likewise.
4726 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
4727 (rs6000_emit_move): Likewise.
4728 * config/s390/s390.c (legitimize_pic_address): Likewise.
4729 (legitimize_tls_address): Likewise.
4730 * config/s390/s390.md (casesi): Likewise.
4731 * config/sh/sh.c (sh_reorg): Likewise.
4732 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
4733 * config/v850/v850.md (casesi): Likewise.
4734
4735 * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
4736 * config/sh/sh.c (prepare_move_operands): Remove incorrect
4737 use of MEM_READONLY_P.
4738
0516f6fe
SB
47392004-08-18 Steven Bosscher <stevenb@suse.de>
4740
4741 * Makefile.in (OBJS-common): Add postreload-gcse.c.
4742 Add new postreload-gcse.o.
4743 * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
4744 (lookup_as_function, insert, rehash_using_reg, use_related_value,
4745 equiv_constant): Use SAFE_HASH instead of safe_hash.
4746 (exp_equiv_p): Export. Add for_gcse argument when comparing
4747 for GCSE.
4748 (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
4749 find_comparison_args, fold_rtx, cse_insn): Update callers.
4750 (hash_rtx): New function derived from old canon_hash and bits
4751 from gcse.c hash_expr_1.
4752 (canon_hash_string): Rename to hash_rtx_string.
4753 (canon_hash, safe_hash): Make static inline. Call hash_rtx.
4754 * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
4755 (cselib_lookup): Update this caller.
4756 * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
4757 Make static.
4758 (hash_expr): Call hash_rtx.
4759 (ldst_entry): Likewise.
4760 (expr_equiv_p): Call exp_equiv_p.
4761 (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
4762 reg_used_on_edge, reg_set_between_after_reload_p,
4763 reg_used_between_after_reload_p, get_avail_load_store_reg,
4764 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
4765 get_bb_avail_insn, hash_scan_set_after_reload,
4766 compute_hash_table_after_reload,
4767 eliminate_partially_redundant_loads, gcse_after_reload,
4768 get_bb_avail_insn, gcse_after_reload_main): Remove.
4769 * postreload-gcse.c: New file, reincarnating most of the above.
4770 * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
4771 (gcse_after_reload_main): Update prototype.
4772 * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
4773 * passes.c (rest_of_handle_gcse2): Use it.
4774
95013377
DN
47752004-08-18 Diego Novillo <dnovillo@redhat.com>
4776
4777 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
4778 (pass_loop_done): Likewise.
4779
ac9e2cff
AP
47802004-08-18 Andrew Pinski <apinski@apple.com>
4781
826c9564 4782 * config/rs6000/darwin.md: Delete the altivec patterns which are
ac9e2cff
AP
4783 handled differently now.
4784 (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
4785 (macho_correct_pic_di): Likewise.
4786 (call_indirect_nonlocal_darwin64): Likewise.
4787 Delete the save world/saveFP/saveVec patterns.
826c9564 4788
ac9e2cff 4789 Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com>
826c9564
ZW
4790 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
4791 * config/rs6000/rs6000.md: Include darwin.md.
4792 (builtin_setjmp_receiver): Add DImode case.
4793 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
4794 Darwin bits.
ac9e2cff 4795
92b9a671
MA
47962004-08-18 Matt Austern <austern@apple.com>
4797
4798 Dead code stripping
4799 * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
4800 * darwin.c (darwin_file_end): Mark file as potentially strippable.
826c9564 4801
4766261d
RH
48022004-08-18 Richard Henderson <rth@redhat.com>
4803
4804 * alias.c (readonly_fields_p): Remove.
4805 (objects_must_conflict_p): Don't call it.
4806 * tree.h (readonly_fields_p): Remove.
4807 * langhooks.h (struct lang_hooks): Remove honor_readonly.
4808 * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
4809
50dc9a88
DN
48102004-08-18 Diego Novillo <dnovillo@redhat.com>
4811
4812 * tree-dfa.c (add_referenced_var): Only global variables are
4813 call-clobbered.
4814 * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
4815 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
4816 all pointers dereferenced if the statement dereferences them.
4817 (create_name_tags): Do not create memory tags for pointers
4818 that have PT_ANYTHING set.
4819 Also check if PT_VARS is not empty before creating a name tag.
4820 (compute_flow_sensitive_aliasing): Don't mark call-clobbered
4821 variables that share the same alias set with a pointer that
4822 may point anywhere.
4823 (add_may_alias): Add FIXME comment to remove clobbering
4824 aliased variables and tags.
4825 (replace_may_alias): Likewise.
4826 (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
4827 (merge_pointed_to_info): If the original variable has not
4828 points-to information, call set_pt_anything.
4829 (add_pointed_to_var): Do not prevent adding a pointed-to
4830 variable if the pointers is PT_ANYTHING.
4831 If the variable is a global, set PT_GLOBAL_MEM.
4832 (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
4833 pointer type only come in PTR+OFFSET flavours.
4834 Always call merge_pointed_to_info on PHI arguments that are
4835 SSA_NAMEs.
4836 (get_nmt_for): Mark call-clobbered tags whose pointer points
4837 to global memory.
4838 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
4839 values.
4840 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
4841 FLAGS.
4842 (add_stmt_operand): Abort if the caller tried to add a killing
4843 definition for a memory tag.
4844 * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
4845 unnecessary checks.
4846
62164eb4
R
48472004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
4848
4849 * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
4850 from call_used_regs. Update call_really_used_regs.
4851 (CALL_REALLY_USED_REGISTERS): Define.
4852 * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
4853 Replace call_used_regs with call_really_used_regs.
4854 (calc_live_regs, sh_media_register_for_return): Likewise.
4855 (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
4856 * sh.md (return_media): Likewise.
4857
f9b0ac3b
AP
48582004-08-18 Andrew Pinski <apinski@apple.com>
4859
826c9564 4860 * config/darwin.c (machopic_legitimize_pic_address): Only set
ac9e2cff 4861 MEM_READONLY_P in the non TARGET_TOC case.
f9b0ac3b 4862
f822d252
ZW
48632004-08-18 Zack Weinberg <zack@codesourcery.com>
4864
4865 * rtl.def (NIL): Delete.
4866 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
4867 Tighten the syntax a little.
4868
4869 * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
4870 * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
4871 * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
4872 * config/i386/predicates.md, config/m32r/m32r.h
4873 * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
4874 * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
4875 * config/sparc/sparc.h, doc/tm.texi:
4876 Replace all occurrences of NIL with UNKNOWN.
4877
6aaf3dde
ZW
48782004-08-18 Zack Weinberg <zack@codesourcery.com>
4879
4880 * dojump.c (do_jump <unordered_bcc>): Do not recursively call
4881 self with a TRUTH_ORIF_EXPR; generate the appropriate jump
4882 sequence inline. Move drop_through_label code into this
4883 block, being the only place it is used. Adjust comments.
4884
d62294f5
FJ
48852004-08-18 Fariborz Jahanian <fjahanian@apple.com>
4886
6aaf3dde
ZW
4887 * config/rs6000/altivec.md: Add new patterns for calls to
4888 save_world/rest_world functions.
4889
4890 * config/rs6000/rs6000-protos.h: (save_world_operation,
4891 restore_world_operation) new declarations.
4892
4893 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
4894 field added.
4895 (rs6000_stack_info): Set world_save_p field.
4896 (save_world_operation): New function.
4897 (restore_world_operation): New function.
4898 (compute_save_world_info): New function.
4899 (rs6000_stack_info): Call compute_save_world_info.
4900 (rs6000_emit_prologue): Check for world_save_p and generate
4901 pattern to call save_world for saving all non-volatile and
4902 special registers.
4903 (rs6000_emit_epilogue): Check for world_save_p and generate
4904 pattern to call rest_world to restore saved registers.
4905
4906 config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
4907 FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
4908 (rs6000_reg_names): New entries added for save_world_operation and
4909 restore_world_operation.
d62294f5 4910
790ac0e1
CT
49112004-08-18 Caroline Tice <ctice@apple.com>
4912
6aaf3dde 4913 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
790ac0e1
CT
4914 "-freorder-blocks-and-partition" to the flags used in second
4915 stage of profiledbootstrap.
4916 * bb-reorder.c (push_to_next_round_p): Add new variable,
4917 next_round_is_last; set and use variable to make sure, when
4918 partitioning, that the last trace construction round consists
4919 of all (and only) cold basic blocks.
4920 (rotate_loop): Don't copy blocks that end in a section
4921 crossing jump.
4922 (copy_bb): Correctly initialize "partition" of duplicated bb.
4923 (add_unlikely_executed_notes): Add a comment.
4924 (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
4925 to make sure, if function contains hot blocks, that the
4926 successors of ENTRY_BLOCK_PTR are hot; also, only look for
4927 crossing edges if the architecture supports named sections.
4928 (mark_bb_for_unlikely_executed_section): Modify to always
4929 insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
4930 the basic block note insn.
4931 (fix_crossing_unconditional_branches): Remove extra space.
4932 (fix_edges_for_rarely_executed_code): Modify to only do
4933 partitioning work if the architecture supports named sections.
4934 (reorder_basic_blocks): Modify to only add
4935 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
4936 supports named sections.
4937 * c-common.c (handle_section_attribute): Initialize new global
4938 variable, user_defined_section_attribute, to true if user has
4939 specified one.
4940 * cfgcleanup.c (try_forward_edges): Modify to not attempt to
4941 forward edges that cross section boundaries.
4942 * cfglayout.c (fixup_reorder_chain): Modify to only fix up
4943 partitioning information if the architecture supports named
4944 sections.
4945 * cfgrtl.c (target.h): Add statement to include this.
4946 (rtl_split_block): Make sure newly created bb gets correct
4947 partition.
4948 (try_redirect_by_replacing_jump): Make sure redirection isn't
4949 attempting to cross section boundaries.
4950 (force_nonfallthru_and_redirect): Only do partition fix up if
4951 architecture supports named sections.
4952 (rtl_split_edge): Make sure newly created bb ends up in
4953 correct partition.
4954 (commit_one_edge_insertion): Remove code that incorrectly
4955 updated basic block partition; Make sure partition fix up only
4956 happens if architecture supports named sections and it's not
4957 already done.
4958 (rtl_verify_flow_info_1): Fix if-condition on test/error
4959 condition that fallthru edges are not allowed to cross section
4960 boundaries.
4961 * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
4962 * final.c (final_scan_insn): Remove redundant test from if-statement;
4963 change calls to text_section into calls to function_section; add code
4964 to only to partitioning fix up if architecture supports named
4965 sections.
4966 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
4967 partition.
4968 (if_convert): Add targetm.have_named_sections to test.
4969 * output.h (unlikely_section_label): Extern declaration for new global
4970 variable.
4971 (unlikely_text_section_name): Likewise.
4972 * opts.c (decode_options): If both partitioning and DWARF debugging
4973 are turned on, issue a warning that this doesn't work, and change
4974 partitiong to basic block reordering (without hot/cold partitions).
6aaf3dde 4975 * passes.c (rest_of_handle_final): Re-set new global variable,
790ac0e1
CT
4976 user_defined_section_attribute, to false.
4977 (rest_of_compilation): Change options for calling partitioning
4978 function: Don't call if the user defined the section attribute, and
4979 don't call if DECL_ONE_ONLY is true for the current function.
4980 * predict.c (choose_function_section): Return immediately if we
4981 are doing hot/cold partitioning (i.e. let the basic block partitioning
4982 determine where the function belongs).
4983 * reg-stack.c (emit_swap_insn): Add condition to step over
4984 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
4985 * toplev.c (user_defined_section_attribute): New global variable.
89b0433e
NS
4986 * toplev.h (user_defined_section_attribute): Extern declaration
4987 for new global variable.
790ac0e1
CT
4988 * varasm.c (unlikely_section_label): New global variable.
4989 (unlikely_text_section_name): New global variable.
89b0433e
NS
4990 (unlikely_text_section): Add code to initialize
4991 unlikely_text_section_name if necessary; modify to use
4992 unlikely_text_section_name and unlikely_section_label; also to use
4993 named_section properly.
4994 (in_unlikely_text_section): Modify to work correctly with
4995 named_section and to use unlikely_text_section_name.
790ac0e1
CT
4996 (named_section): Add code to work properly with cold section.
4997 (function_section): Clean up if-statement.
89b0433e
NS
4998 * config/darwin.c (darwin_asm_named_section): Return to original
4999 code, removing use of SECTION_FORMAT_STRING.
6aaf3dde 5000 * config/arm/pe.h (switch_to_section): Add case for
790ac0e1
CT
5001 in_unlikely_executed_text to switch statement.
5002 * config/i386/cygming.h (switch_to_section): Likewise.
5003 * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
5004 (SECTION_FORMAT_STRING): Likewise.
5005 * config/mcore/mcore.h (switch_to_section): Likewise.
5006 * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
5007 (SECTION_FORMAT_STRING): Remove.
5008
3a4416fb
RS
50092004-08-18 Roger Sayle <roger@eyesopen.com>
5010
5011 * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
5012 -ffixed-reg safe, by preserving the meanings of zero and one.
5013 (CALL_USED_REGISTERS): Likewise.
5014 (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
5015
03904fb3
KK
50162004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
5017
5018 * config/sh/sh.c (split_branches): Check the result of
5019 next_active_insn.
5020 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
5021 Call rtl_register_cfg_hooks.
5022
389fdba0
RH
50232004-08-18 Richard Henderson <rth@redhat.com>
5024
5025 * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
5026 * alias.c (true_dependence): Update to match new semantics.
5027 (canon_true_dependence, write_dependence_p): Likewise.
5028 (anti_dependence, output_dependence): Update write_dependence_p args.
5029 (unchanging_anti_dependence): Remove.
5030 * calls.c (purge_mem_unchanging_flag): Remove.
5031 (fixup_tail_calls): Don't call it.
5032 (expand_call): Don't add unchanging memory to function usage.
5033 * expr.c (emit_block_move_via_libcall): Likewise.
5034 (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
5035 (get_subtarget): Don't use RTX_UNCHANGING_P.
5036 (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
5037 (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
5038 * combine.c (get_last_value_validate): Use MEM_READONLY_P.
5039 * cse.c (insert): Don't use RTX_UNCHANGING_P.
5040 (cse_insn, canon_hash): Use MEM_READONLY_P.
5041 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
5042 instead of RTX_UNCHANGING_P.
5043 * explow.c (maybe_set_unchanging): Remove.
5044 * expr.h (maybe_set_unchanging): Remove.
5045 * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
5046 * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
5047 (assign_parm_setup_reg, expand_function_start): Likewise.
5048 * integrate.c (copy_rtx_and_substitute): Likewise.
5049 * ra-rewrite.c (emit_colors): Likewise.
5050 * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
5051 (fixup_match_1): Likewise.
5052 * reload1.c (reload, alter_reg): Likewise.
5053 * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
5054 not RTX_UNCHANGING_P.
5055 (equiv_init_varies_p): Likewise.
5056 * loop-invariant.c (check_maybe_invariant): Likewise.
5057 * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
5058 * loop.c (note_addr_stored): Likewise.
5059 (prescan_loop): Likewise. Don't check function usage for clobbered
5060 unchanging memory.
5061 * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
6aaf3dde 5062 not RTX_UNCHANGING_P.
389fdba0
RH
5063 (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
5064 * varasm.c (force_const_mem): Likewise.
5065 * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
5066 * web.c (entry_register): Likewise.
5067 * tree-gimple.h (get_base_address): Move decl ...
5068 * tree.h: ... here.
5069 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
5070
5071 * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
5072 called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
5073 (alpha_set_memflags): Update to match.
5074
5075 * config/darwin.c (machopic_indirect_data_reference): Set
5076 MEM_READONLY_P instead of RTX_UNCHANGING_P.
5077 (machopic_indirect_call_target): Likewise.
5078 (machopic_legitimize_pic_address): Likewise.
6aaf3dde 5079 * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
389fdba0
RH
5080 arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
5081 * config/arm/arm.md (load_multiple, store_multiple): Likewise.
5082 * config/frv/frv.md (symGOT2reg): Likewise.
5083 * config/i386/i386.c (legitimize_pic_address,
5084 legitimize_tls_address, ix86_split_to_parts): Likewise.
5085 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
5086 * config/ia64/ia64.md (load_fptr): Likewise.
5087 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
5088 * config/m68k/m68k.c (legitimize_pic_address): Likewise.
5089 * config/mcore/mcore.c (block_move_sequence): Likewise.
5090 * config/mn10300/mn10300.md (symGOT2reg): Likewise.
5091 * config/pa/pa.c (legitimize_pic_address): Likewise.
5092 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
5093 (rs6000_emit_move): Likewise.
5094 * config/s390/s390.c (legitimize_pic_address): Likewise.
5095 (legitimize_tls_address): Likewise.
5096 * config/s390/s390.md (casesi): Likewise.
5097 * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
5098 * config/sh/sh.md (symGOT2reg): Likewise.
5099 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
5100 * config/v850/v850.md (casesi): Likewise.
5101
5102 * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
5103 * config/iq2000/iq2000.c (save_restore_insns): Likewise.
5104 * config/mips/mips.c (mips_restore_gp): Likewise.
5105 (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
5106 * config/sh/sh.c (sh_reorg): Likewise.
5107
17ad5b5e
RH
51082004-08-18 Richard Henderson <rth@redhat.com>
5109
5110 * tree.h (struct tree_decl): Add gimple_formal_temp.
5111 (DECL_GIMPLE_FORMAL_TEMP_P): New.
5112 * gimplify.c (pop_gimplify_context): Clear it.
5113 (lookup_tmp_var): Set it, if is_formal.
5114 (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
5115 Use is_gimple_val for VECTOR. Simplify return value.
5116 (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
5117 (gimplify_expr): Likewise.
5118 * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
5119 is_gimple_tmp_rhs for clarity. Update all callers.
5120 (is_gimple_reg_rhs): Simplify logic.
5121 (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
5122 clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
5123 (is_gimple_formal_tmp_reg): Similarly.
5124 * tree-gimple.h: Update decls.
5125 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
5126 DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting.
5127 * tree-ssa-live.c (var_union, type_var_init): Likewise.
5128
5b0eba61
PB
51292004-08-18 Paolo Bonzini <bonzini@gnu.org>
5130
5131 * c4x.c (legitimize_operands): Remove calls to
5132 preserve_subexpressions_p.
5133
07e15286
DE
51342004-08-18 David Edelsohn <edelsohn@gnu.org>
5135
5136 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
5137 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
5138
ad8c162b
ZL
51392004-08-18 Ziemowit Laski <zlaski@apple.com>
5140
5141 * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
5142 Objective-C++ extensions.
5143 * gengtype.c (get_file_basename): Match entire subdirectory name
5144 ('cp', 'objc', 'objcp') rather than just its suffix.
5145 (get_base_file_bitmap): Allow for files to belong to more than one
5146 language.
5147 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
5148 used by more than one front-end.
5149
d56993f2
RE
51502004-08-18 Richard Earnshaw <rearnsha@arm.com>
5151
5152 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
5153 avoid use of preserve_subexpressions_p.
5154
504c0e4f
RH
51552004-08-17 Richard Henderson <rth@redhat.com>
5156
5157 PR 17051
5158 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
5159
54e9a19d
DD
51602004-08-17 DJ Delorie <dj@redhat.com>
5161
5162 * doc/extend.texi: Document new xstormy16 attribute.
5163
5164 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
5165 (xstormy16_splittable_below100_or_register): New.
5166 (combine_bnp): New.
5167 (xstormy16_reorg): New.
5168 (TARGET_MACHINE_DEPENDENT_REORG): Define.
5169
54e9a19d
DD
5170 * config/stormy16/stormy16.md (movqi_internal): Make name public.
5171 (movhi_internal): Likewise.
5172 (cbhranchhi): Likewise.
5173 (cbhranchhi_neg): Likewise.
5174 (andhi3): Only allow splittable below100 operands.
5175 (iorhi3): Likewise.
5176 (peephole2): New and/zero_extend->and peephole.
5177 (peephole2): New load/ior/save->set1 peephole.
5178 (peephole2): New load/and/save->clr1 peephole.
5179 (bclrx, bclrx2, bclr7, bclr15): New.
5180 (bsetx, bsetx2, bset7, bset15): New.
5181
5182 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
5183 liberal about acceptable 'B' masks.
5184
5185 * config/stormy16/stormy16-protos.h
5186 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
5187 xstormy16_below100_operand, xstormy16_below100_or_register,
5188 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
5189 (PREDICATE_CODES): Add new predicates.
6aaf3dde 5190
54e9a19d
DD
5191 * config/stormy16/stormy16.c
5192 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
5193 xstormy16_below100_operand, xstormy16_below100_or_register,
5194 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
5195 (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
5196 (xstormy16_legitimate_address_p): Allow below100 symbols.
5197 (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
5198 (xstormy16_expand_move): Leave below100 operands as-is.
5199 (xstormy16_encode_section_info): Encode below100 symbols.
5200 (xstormy16_strip_name_encoding): New.
5201 (xstormy16_print_operand): Print 'b' as shift mask.
5202 (xstormy16_attribute_table): Add below100 attributes.
5203 (xstormy16_handle_below100_attribute): New.
5204
5205 * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
5206 (XSTORMY16_SECTION_FUNCTION): New.
5207 (EXTRA_SECTION_FUNCTIONS): Define using the above.
5208 (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
5209 (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
5210 (ASM_OUTPUT_LABELREF): Define.
5211
5212 * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
5213 (movhi_internal): Add below100 support.
5214 (andhi3): Add below100 support.
5215 (iorhi3): Add below100 support.
5216 (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
5217
4ef47bd8
JW
52182004-08-17 James E Wilson <wilson@specifixinc.com>
5219
5220 * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
5221 of VOIDmode for comparison code mode.
5222 * config/mips/mips.md: For conditional move patterns, use mode of
5223 first compare operand for comparison mode, instead of VOIDmode.
e17c734b
JW
5224
5225 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
5226 normal and -ffast-math code.
5227
1a10290c
MM
52282004-08-17 Mark Mitchell <mark@codesourcery.com>
5229
5230 PR c++/15871
5231 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
5232
f4e736dd 52332004-08-17 Robert Bowdidge <bowdidge@apple.com>
6aaf3dde
ZW
5234
5235 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
f4e736dd 5236
13a98f14
AT
52372004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
5238
5239 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
5240 for non Darwin targets.
5241 (*call_value_nonlocal_darwin64): Likewise.
5242
d0b2079e
FJ
52432004-08-17 Fariborz Jahanian <fjahanian@apple.com>
5244
5245 * config/rs6000/rs6000.c (rs6000_function_value): Check for
5246 altivec mode for altivec return register.
5247
feb3dc8b
DE
52482004-08-17 David Edelsohn <edelsohn@gnu.org>
5249
5250 Revert 2004-08-16 Stan Shebs <shebs@apple.com>
ef0e2729 5251 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
feb3dc8b
DE
5252 * config/rs6000/rs6000.md: Include darwin.md.
5253 (builtin_setjmp_receiver): Add DImode case.
5254 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
5255 Darwin bits.
5256
79fe1b3b
DN
52572004-08-17 Dorit Naishlos <dorit@il.ibm.com>
5258
89b0433e
NS
5259 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
5260 trees.
79fe1b3b
DN
5261 * tree-vectorizer.h: New File: Same.
5262 * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
5263 * common.opt (ftree-vectorize): New flag to enable vectorization.
89b0433e
NS
5264 * timevar.def (TV_TREE_VECTORIZATION): New dump file for
5265 vectorization pass.
79fe1b3b
DN
5266 * tree-data-ref.h (init_data_ref): Additional argument.
5267 (array_base_name_differ_p): Moved to tree-data-ref.c.
5268 * tree-data-ref.c (array_base_name_differ_p): Revised.
5269 (initialize_data_dependence_relation): Call array_base_name_differ_p
5270 with an extra argument.
5271 (analyze_all_data_dependences): Same.
5272 (init_data_ref): Additional argument is_read to set DR_IS_READ.
89b0433e
NS
5273 * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
5274 file.
79fe1b3b
DN
5275 * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
5276 * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
6aaf3dde 5277 * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
79fe1b3b
DN
5278 vectorization pass.
5279 * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
5280 (tree_ssa_loop_done): Call scev_finalize.
5281 (tree_vectorize): Define the new vectorization pass.
89b0433e
NS
5282 * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
5283 size of the vector they support (until support for multiple vector
5284 sizes is added to the vectorizer).
79fe1b3b
DN
5285 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
5286 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
5287 * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
5288 documentation.
5289
e15987c1
NS
52902004-08-17 Nathan Sidwell <nathan@codesourcery.com>
5291
5292 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
5293 usage.
5294 (generate_protocol_list, handle_impent): Likewise.
5295
e3cadb61
RS
52962004-08-17 Roger Sayle <roger@eyesopen.com>
5297
5298 * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
5299 ensure that call_used_regs is a superset of both fixed_regs and
5300 call_really_used_regs.
5301
108a579c
DB
53022004-08-17 Daniel Bornstein <danfuzz@milk.com>
5303
5304 PR target/17019
5305 * arm.md (addsi3_cbranch_scratch): Correct case labels.
5306
62fc1d7d
PB
53072004-08-17 Paolo Bonzini <bonzini@gnu.org>
5308
5309 PR middle-end/17036
5310 * fold-const.c (fold): Check for integer operand when
5311 folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew
5312 Pinski <pinskia@physics.uc.edu>.
5313
7c27e184
PB
53142004-08-17 Paolo Bonzini <bonzini@gnu.org>
5315
5316 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
5317 No need to check if in a cross configuration.
5318 * configure: Regenerate.
5319
5320 * calls.c (precompute_register_parameters):
5321 Inline preserve_subexpressions_p ().
5322 * expmed.c (expand_mult_const, emit_store_flag): Likewise.
5323 * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
5324 Likewise.
5325 * expr.c (get_subtarget): Likewise.
5326 * rtl.h (preserve_subexpressions_p): Remove.
5327 * stmt.c (preserve_subexpressions_p): Remove.
5328
5329 * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
5330 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
5331 Abort on gimplified cases.
5332
d97c6333
JW
53332004-08-16 James E Wilson <wilson@specifixinc.com>
5334
5335 * tree.h (VECTOR_FLOAT_TYPE_P): New.
5336 (FLOAT_TYPE_P): Use it.
5337 * c-typeck.c (build_binary_op): After convert calls, check for
5338 check for ERROR_MARK operands.
5339
45c8116d
ZW
53402004-08-16 Zack Weinberg <zack@codesourcery.com>
5341
5342 * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
5343 (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
5344 (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
5345 (genobjs static pattern rule): Remove %.c dependency.
5346 ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
5347 Rename rules; delete commands; fix dependencies.
5348 (mostlyclean): Do not delete temporary source copies.
5349 * configure.ac: Delete all references to BUILD_PREFIX and
5350 BUILD_PREFIX_1.
5351 * configure: Regenerate.
5352
5353 * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
5354 Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
5355 basic-block.h #ifdef GENERATOR_FILE. Surround some more code
5356 with #ifndef GENERATOR_FILE so that nothing from those headers
5357 is used.
5358
5359 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
5360
4d73e20b
AN
53612004-08-16 Adam Nemet <anemet@lnxw.com>
5362
5363 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
6aaf3dde 5364
62114438
AP
53652004-08-16 Andrew Pinski <apinski@apple.com>
5366
5367 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
5368 extraneous semicolon.
5369
8e3e233b
DP
53702004-08-16 Devang Patel <dpatel@apple.com>
5371
5372 * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
5373 * print-tree.c (print_node): Print DECL_PRESERVE_P.
5374 * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
5375 (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
5376 * target.h (struct gcc_target): New member, mark_decl_preserved.
45c8116d
ZW
5377 * hooks.c (hook_void_charptr): Rename to ...
5378 (hook_void_constcharptr): ... new name.
5379 * hooks.h (hook_void_charptr): Rename to ..
5380 (hook_void_constcharptr): ... new name.
8e3e233b
DP
5381 * tree.h (DECL_PRESERVE_P): New #define.
5382 (struct tree_decl): New member, preserve_flag.
5383 * varasm.c (assemble_start_function): Mark decl preserved.
5384 (assemble_variable): Same.
5385 * darwin.c (darwin_mark_decl_preserved): New function.
5386 * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
5387 * darwin-protos.h (darwin_mark_decl_preserved): New decl.
5388 * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
5389
580b3958
JM
53902004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
5391
5392 * c-decl.c (grokdeclarator): Allow for function definition where
5393 innermost declarator has attributes.
5394
93f90be6
FJ
53952004-08-16 Fariborz Jahanian <fjahanian@apple.com>
5396
5397 * except.c (get_exception_filter, build_post_landing_pads,
5398 dw2_build_landing_pads): Use target-specific mode for 'filter'.
5399 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
5400 * target.h (eh_return_filter_mode): New field added.
5401 * targhooks.c (default_eh_return_filter_mode): Defined.
5402 * targhooks.h (default_eh_return_filter_mode): Declared.
5403 * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
5404
392765bf
NN
54052004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
5406
5407 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
5408 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
5409 * configure: Regenerate.
5410
49bd1d27
SS
54112004-08-16 Stan Shebs <shebs@apple.com>
5412
5413 Basic support for 64-bit Darwin.
5414 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
5415 (machopic_legitimize_pic_address): Similarly, plus use Pmode
5416 instead of SImode.
5417 * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
5418 (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
5419 (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
5420 (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
5421 (PROCESSOR_DEFAULT64): Define.
5422 * config/rs6000/darwin.md: New file, patterns specific to 64-bit
5423 Darwin.
5424 * config/rs6000/rs6000.md: Include darwin.md.
5425 (builtin_setjmp_receiver): Add DImode case.
5426 * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
5427 Darwin.
5428 (TARGET_ASM_ALIGNED_DI_OP): Ditto.
5429 (rs6000_emit_move): Add DImode case to Darwin bits.
5430 (machopic_output_stub): Use .quad if 64-bit.
5431 * invoke.texi: Document -m32 and -m64.
5432
4e6e4e4c
JJ
54332004-08-16 Janis Johnson <janis187@us.ibm.com>
5434
5435 * doc/extend.texi (AltiVec builtins): Document additional differences
5436 from the Motorola AltiVec PIM.
5437
092313ae
NS
54382004-08-16 Nathan Sidwell <nathan@codesourcery.com>
5439
5440 * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
5441 * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
5442 (struct tree_common): Update public_flag documentation.
5443
dffc9ae5
NN
54442004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
5445
5446 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
62fc1d7d 5447 Check for artificial variables, not is_gimple_tmp_var.
dffc9ae5
NN
5448 * tree-ssa-live.c (var_union): Likewise.
5449
16e9be4c
NS
54502004-08-16 Nathan Sidwell <nathan@codesourcery.com>
5451
5452 * calls.c (load_register_parameters): Remove spurious FIXME token.
5453
9a4d6480
ZL
54542004-08-15 Ziemowit Laski <zlaski@apple.com>
5455
5456 * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
5457 (c-lang.o): Depend on c-objc-common.h.
45c8116d 5458 (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
9a4d6480
ZL
5459 c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
5460 * c-lang.c: Include c-objc-common.h.
5461 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
5462 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
5463 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
45c8116d
ZW
5464 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
5465 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
9a4d6480
ZL
5466 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
5467 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
45c8116d 5468 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
9a4d6480
ZL
5469 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
5470 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
5471 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
5472 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
5473 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
5474 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
5475 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
5476 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
5477 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
5478 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
5479 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
5480 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
5481 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
5482 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
5483 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
5484 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
5485 Move to c-objc-common.h.
5486 * c-objc-common.c: Include c-objc-common.h.
5487 * c-objc-common.h: New file.
5488
869464ba
AT
54892004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
5490 Andrew Pinski <pinskia@physics.uc.edu>
5491
5492 PR target/14931
5493 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
5494 style.
5495
4a90aeeb
NS
54962004-08-15 Nathan Sidwell <nathan@codesourcery.com>
5497
5498 * tree.h (build_int_cst): New.
5499 (build_int_2): Remove.
5500 * tree.c (build_int_2): Remove.
5501 (build_int_cst): New.
5502 (make_vector_type, build_common_tree_nodes,
5503 build_common_tree_nodes_2): Use build_int_cst.
5504 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
5505 expand_builtin_strpbrk, expand_builtin_fputs,
5506 build_string_literal, expand_builtin_printf,
5507 expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
5508 fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
5509 fold_builtin_isdigit, simplify_builtin_strstr,
5510 simplify_builtin_strpbrk, fold_builtin_fputs,
5511 simplify_builtin_sprintf): Use build_int_cst.
5512 * c-common.c (start_fname_decls, fix_string_type,
5513 c_common_nodes_and_builtins, c_init_attributes,
5514 shorten_compare): Likewise.
5515 * c-decl.c (complete_array_type,
5516 check_bitfield_type_and_width): Likewise.
5517 * c-lex.c (interpret_integer, lex_charconst): Likewise.
5518 * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
5519 * c-pretty-print.c (pp_c_integer_constant): Likewise.
5520 * c-typeck.c (really_start_incremental_init, push_init_level,
5521 set_nonincremental_init_from_string): Likewise.
5522 * calls.c (load_register_parameters): Likewise.
5523 * convert.c (convert_to_pointer): Likewise.
5524 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
5525 build_fn_info_type, build_ctr_info_value, build_gcov_info):
5526 Likewise.
5527 * except.c (init_eh, assign_filter_values, assign_filter_values):
5528 Likewise.
5529 * expmed.c (store_fixed_bit_field, extract_bit_field,
5530 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
5531 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
5532 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
5533 * expr.c (convert_move, emit_group_load, emit_group_store,
5534 expand_assignment, store_constructor, store_field,
5535 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
5536 * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
5537 invert_truthvalue, optimize_bit_field_compare,
5538 decode_field_reference, all_ones_mask_p, constant_boolean_node,
5539 fold_div_compare, fold, fold_read_from_constant_string,
5540 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
5541 * function.c (assign_parm_setup_block): Likewise.
5542 * stmt.c (shift_return_value, expand_end_case_type,
5543 estimate_case_costs): Likewise.
5544 * stor-layout.c (layout_type, initialize_sizetypes,
5545 set_min_and_max_values_for_integral_type): Likewise.
5546 * tree-chrec.c (chrec_fold_multiply_poly_poly,
5547 reset_evolution_in_loop): Likewise.
5548 * tree-chrec.h (build_polynomial_chrec): Likewise.
5549 * tree-complex.c (build_replicated_const): Likewise.
5550 * tree-eh.c (honor_protect_cleanup_actions,
5551 lower_try_finally_onedest, lower_try_finally_copy,
5552 lower_try_finally_switch): Likewise.
5553 * tree-mudflap.c (mf_build_string, mx_register_decls,
5554 mudflap_register_call, mudflap_enqueue_constant): Likewise.
5555 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
5556 * tree-pretty-print.c (dump_generic_node): Likewise.
5557 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
5558 Likewise.
5559 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
5560 * tree-ssa-loop-niter.c (number_of_iterations_cond,
5561 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
5562 Likewise.
45c8116d 5563
4a90aeeb
NS
5564 * config/alpha/alpha.c (alpha_initialize_trampoline,
5565 alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
5566 * config/arm/arm.c (arm_get_cookie_size): Likewise.
5567 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
5568 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
5569 * config/i860/i860.c (i860_va_start): Likewise.
5570 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5571 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
5572 mips_gimplify_va_arg_expr): Likewise.
5573 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5574 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
5575 add_compiler_branch_island): Likewise.
5576 * config/s390/s390.c (s390_va_start): Likewise.
5577 * config/sh/sh.c (sh_va_start): Likewise.
5578 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5579 Likewise.
5580 * config/xtensa/xtensa.c (xtensa_va_start,
5581 xtensa_gimplify_va_arg_expr): Likewise.
45c8116d 5582
4a90aeeb
NS
5583 * objc/objc-act.c (build_objc_string_object,
5584 build_objc_symtab_template, init_def_list, init_objc_symtab,
5585 init_module_descriptor, generate_static_references,
5586 build_selector_translation_table, get_proto_encoding,
5587 build_typed_selector_reference, build_selector_reference,
5588 build_next_objc_exception_stuff,
5589 build_method_prototype_list_template, generate_descriptor_table,
5590 generate_protocols, build_protocol_initializer,
5591 build_ivar_list_template, build_method_list_template,
5592 build_ivar_list_initializer, generate_ivars_list,
5593 generate_dispatch_table, generate_protocol_list,
5594 build_category_initializer, build_shared_structure_initializer,
5595 generate_shared_structures, handle_impent,
5596 generate_objc_image_info): Use build_int_cst.
5597
2a68a7de
BE
55982004-08-15 Ben Elliston <bje@au.ibm.com>
5599
5600 * vec.h: Comment improvements.
5601
53fb4de3
RS
56022004-08-14 Roger Sayle <roger@eyesopen.com>
5603
5604 * c-common.c (shorten_compare, pointer_int_sum,
5605 c_common_truthvalue_conversion, boolean_increment): Replace calls
5606 to build with calls to buildN.
5607 * c-decl.c (complete_array_type, grokdeclarator): Likewise.
5608 * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
5609 gimplify_switch_stmt): Likewise.
5610 * c-typeck.c (default_function_array_conversion,
5611 build_component_ref, build_array_ref, build_function_call,
5612 pointer_diff, build_unary_op, build_conditional_expr,
5613 build_compound_expr, build_modify_expr, c_finish_goto_label,
5614 c_finish_goto_ptr, c_finish_return, c_finish_loop,
5615 c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
5616 build_binary_op): Likewise.
5617
254b17dd
SB
56182004-08-15 Steven Bosscher <stevenb@suse.de>
5619
5620 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
5621
a5252c84
JDA
56222004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5623
5624 * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
5625 curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
5626 * fixinc/fixincl.x: Rebuilt.
5627
96a30b18
RS
56282004-08-14 Richard Sandiford <rsandifo@redhat.com>
5629
5630 * config/mips/mips-protos.h (mips_symbolic_constant_p)
5631 (mips_atomic_symbolic_constant_p, mips_stack_address_p)
5632 (mips_small_data_pattern_p): Declare.
5633 * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
5634 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
5635 * config/mips/mips.c (mips_symbolic_constant_p): Make global.
5636 (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
5637 (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
5638 (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
5639 (reg_or_const_float_1_operand, hilo_operand, extend_operator)
5640 (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
5641 (pc_or_label_operand, call_insn_operand, move_operand)
5642 (consttable_operand, symbolic_operand, general_symbolic_operand)
5643 (global_got_operand, local_got_operand, stack_operand)
5644 (fp_register_operand, lo_operand, fcc_register_operand): Delete.
5645 (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
5646 (mips_small_data_pattern_p): Replace previous small_data_pattern
5647 predicate. Turn into a bool () (rtx) function.
5648 * config/mips/predicates.md: New file.
5649 * config/mips/mips.md: Include it. Use the target-independent
5650 comparison_operator instead of cmp_op. Rename trap_cmp_op to
5651 trap_comparison_operator and equality_op to equality_operator.
5652 Replace uses of small_int with the equivalent const_arith_operand.
5653 Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename
5654 const_float_1_operand to const_1_operand. Rename fcc_register_operand
5655 to fcc_reload_operand.
5656 * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
5657
e41c9fcb
JDA
56582004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5659
5660 PR libstdc++/17005 partial fix.
5661 * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
5662 except when generating ANSI/C89 code.
5663
af9c6659
NS
56642004-08-14 Nathan Sidwell <nathan@codesourcery.com>
5665
5666 * c-common.c (shorten_compare): Use force_fit_type directly.
5667
37de1373
GP
56682004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
5669 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
5670 Dave Korn <dk@artimi.com>
5671
5672 * doc/install.texi (Building): Avoid duplicate reference to GNU
5673 make requirement.
5674 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
5675
06d69cd3
RH
56762004-08-14 Richard Henderson <rth@redhat.com>
5677
5678 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
5679 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
5680
e427abbf
RH
56812004-08-13 Richard Henderson <rth@redhat.com>
5682
5683 * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
5684 for constant_call_address_operand.
5685 (call_value_pop_1, call_value_1): Likewise.
5686 (sibcall_value_1, call_value_1_rex64): Likewise.
5687
2b407936
JW
56882004-08-13 James E Wilson <wilson@specifixinc.com>
5689
5690 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
5691 Correct mode from SFmode to DFmode.
5692
3e0d5ae2
ZL
56932004-08-13 Ziemowit Laski <zlaski@apple.com>
5694
5695 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
5696 __cstring_object and __image_info sections with the no_dead_strip
5697 attribute.
5698
e0704143
RS
56992004-08-13 Roger Sayle <roger@eyesopen.com>
5700 David Billinghurst <David.Billinghurst@riotinto.com>
5701
5702 PR libgfortran/15930
5703 * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
5704 * fixinc/fixincl.x: Regenerate.
5705 * fixinc/tests/base/internal/math_core.h: New file.
5706
8768c655
RH
57072004-08-13 Richard Henderson <rth@redhat.com>
5708
5709 * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
5710 (dbxout_function_end): Remove ifdefs for it.
5711 (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
5712
201312c2
RH
57132004-08-13 Richard Henderson <rth@redhat.com>
5714
5715 * Makefile.in (insn-preds.o): Depend on TREE_H.
5716 * genpreds.c (write_insn_preds_c): Include tree.h.
5717 * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
5718 reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
5719 const48_operand, and_operand, or_operand, mode_width_operand,
5720 mode_mask_operand, mul8_operand, const0_operand,
5721 hard_fp_register_operand, hard_int_register_operand,
5722 reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
5723 samegp_function_operand, direct_call_operand, small_symbolic_operand,
45c8116d 5724 global_symbolic_operand, call_operand, symbolic_operand,
201312c2
RH
5725 dtp16_symbolic_operand, dtp32_symbolic_operand,
5726 gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
5727 gottp_symbolic_operand, alpha_comparison_operator,
5728 alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
5729 signed_comparison_operator, alpha_fp_comparison_operator,
5730 divmod_operator, fix_operator, aligned_memory_operand,
5731 unaligned_memory_operand, reg_or_unaligned_mem_operand,
5732 any_memory_operand, reg_not_elim_operand, normal_memory_operand,
5733 reg_no_subreg_operand, addition_operation): Move to predicates.md.
5734 (reg_or_const_int_operand): Remove. Replace all users with
5735 reg_or_cint_operand.
5736 (tls_symbolic_operand_1): Export. Don't check mode or for CONST.
5737 (resolve_reload_operand): Split out of aligned_memory_operand.
5738 * config/alpha/alpha-protos.h: Update for exports.
5739 * config/alpha/alpha.h (PREDICATE_CODES): Remove.
5740 * config/alpha/alpha.md: Include predicates.md.
5741 * config/alpha/predicates.md: New file.
5742
1e9c8405
RS
57432004-08-13 Richard Sandiford <rsandifo@redhat.com>
5744
5745 * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
5746 fields with a pointer to the instruction definition.
5747 (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
5748 (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
5749 (write_attr_case, write_const_num_delay_slots): Update accordingly.
5750 (write_attr_case, write_const_num_delay_slots): Write the name of
5751 an insn next to its case statement.
5752 * genoutput.c (data): Add a filename field.
5753 (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
5754 (output_insn_data): Print the location of each insn definition.
5755 * genrecog.c (write_action): Print the name of an insn above
5756 the statement that returns its code.
5757
1e5f1716
AP
57582004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
5759
5760 * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
5761 * config/libgloss.h: Likewise.
5762 * config/arm/arm.c (arm_gen_load_multiple): Likewise.
5763 * c4x/c4x-modes.def: Likewise.
5764 * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
5765 (c4x_rptb_nop_p): Likewise.
5766 (c4x_rptb_valid_p): Likewise.
5767 (c4x_rptb_insert): Likewise.
5768 (c4x_address_conflict): Likewise.
5769 * config/c4x/c4x.md: Likewise.
5770 * config/frv/frv.md: Likewise.
5771 * config/i386/athlon.md: Likewise.
5772 * config/i386/i386.md: Likewise.
5773 * config/i386/predicates.md: Likewise.
5774 * config/ia64/ia64.c: Likewise.
5775 * config/ia64/itanium1.md: Likewise.
5776 * config/ia64/itanium2.md: Likewise.
5777 * config/iq2000/iq2000.md: Likewise.
5778 * config/mcore/mcore.c: Likewise.
5779 * config/mips/mips.c: Likewise.
5780 * config/mips/r3900.h: Likewise.
5781 * config/mips/sb1.md: Likewise.
5782 * config/pa/milli64.S: Likewise.
5783 * config/pa/pa.c: Likewise.
5784 * config/pa/pa.h: Likewise.
5785 * config/rs6000/8540.md: Likewise.
5786
9bcc9490
DB
57872004-08-13 Daniel Berlin <dberlin@dberlin.org>
5788
5789 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
5790
68fe56fc
R
57912004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
5792
5793 * sh.md (cbranch define_delay) Use cond_delay_slot for
5794 non-anulled condition too.
5795
85d346f1
DE
57962004-08-12 David Edelsohn <edelsohn@gnu.org>
5797
5798 * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
5799 * config/rs6000/rs6000.h (PREDICATE_CODES): Add
5800 any_parallel_operand, lmw_operation, stmw_operation,
a688b3ac 5801 mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand.
85d346f1
DE
5802 * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
5803 any_parallel_operand.
5804 (return_and_restore_fpregs_{si,di}): Same.
5805
47d2cee5
ZW
58062004-08-12 Zack Weinberg <zack@codesourcery.com>
5807
5808 * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
5809 if pred->singleton != PARALLEL, issue a warning and pretend it was.
5810 Also issue a warning for any predicate we don't know about.
5811
8fe75e43
RH
58122004-08-12 Richard Henderson <rth@redhat.com>
5813
5814 * config/i386/i386.c (internal_label_prefix): Export.
5815 (internal_label_prefix_len, struct ix86_address,
5816 ix86_decompose_address, maybe_get_pool_constant,
5817 ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
5818 memory_address_length): Export.
47d2cee5 5819 (any_fp_register_operand, fp_register_operand,
8fe75e43 5820 register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
47d2cee5 5821 x86_64_general_operand, x86_64_szext_general_operand,
8fe75e43
RH
5822 x86_64_nonmemory_operand, x86_64_movabs_operand,
5823 x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
5824 x86_64_zext_immediate_operand, const_int_1_31_operand,
5825 symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
5826 tls_symbolic_operand, global_dynamic_symbolic_operand,
5827 local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
5828 local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
5829 constant_call_address_operand, const0_operand, const1_operand,
5830 const248_operand, const_0_to_3_operand, const_0_to_7_operand,
5831 const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
5832 shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
5833 general_no_elim_operand, nonmemory_no_elim_operand,
5834 index_register_operand, q_regs_operand, flags_reg_operand,
5835 non_q_regs_operand, zero_extended_scalar_load_operand,
5836 vector_move_operand, no_seg_address_operand, sse_comparison_operator,
47d2cee5 5837 ix86_comparison_operator, ix86_carry_flag_operator,
8fe75e43
RH
5838 fcmov_comparison_operator, promotable_binary_operator,
5839 cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
47d2cee5 5840 mult_operator, div_operator, arith_or_logical_operator,
8fe75e43
RH
5841 memory_displacement_operand, cmpsi_operand, long_memory_operand,
5842 aligned_operand): Move to predicates.md as define_predicates.
5843 (tls_symbolic_operand_1): Remove.
5844 (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
5845 (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
5846 (legitimize_address): Merge tls_symbolic_operand contents.
5847 (ix86_expand_move): Likewise.
5848 * config/i386/i386-protos.h: Update for exports.
5849 * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
5850 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
5851 * config/i386/i386.md: Include predicates.md.
5852 * config/i386/predicates.md: New file.
5853
ea3d83a7
MM
58542004-08-13 Mark Mitchell <mark@codesourcery.com>
5855
5856 PR c++/16924
5857 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
5858 SYMBOL_REF_DECL.
5859 (i386_pe_mark_dllimport): Likewise.
5860 (i386_pe_encode_section_info): Likewise, when overriding
5861 dllimport attribute.
5862
414adbdd
GK
58632004-08-12 Geoffrey Keating <geoffk@apple.com>
5864
5865 * configure.ac: When testing for flex, nm, ar, and bison, check
5866 that they will actually be built.
5867 * configure: Regenerate.
5868
c5443745
UW
58692004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
5870
5871 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
5872 (MOVE_MAX_PIECES): Define.
5873
8fa5469d
DP
58742004-08-12 Devang patel <dpatel@apple.com>
5875
5876 * dbxout.c (dbxout_begin_prologue): New function.
5877 (dbx_debug_hooks): Use new begin prologue hook.
5878 (dbxout_function_end): Emit N_ENSYM.
5879 * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
47d2cee5 5880
b0b343db
JJ
58812004-08-12 Janis Johnson <janis187@us.ibm.com>
5882
e390eb0a
JJ
5883 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
5884 argument is float*.
5885
e34b6648
JJ
5886 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
5887 for vec_dss.
5888
b0b343db
JJ
5889 * doc/extend.texi (AltiVec builtins): Fix description for recent
5890 changes. Update operation list to match current support.
5891
adf39f8f
AK
58922004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
5893
5894 * config/s390/s390.c (struct s390_frame_layout): New struct as element
5895 of struct machine_function.
5896 (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
5897 changed all uses.
5898 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
5899 changed all uses.
5900 (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
5901 (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
5902 (s390_frame_area, s390_register_info): New functions.
5903 (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
5904 for base register.
5905 (s390_return_addr_rtx, s390_return_address_offset)
5906 (s390_va_start, s390_gimplify_va_arg)
5907 (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
5908 layouts.
5909 (s390_frame_info): Functionality partly moved to s390_register_info.
5910 Made adaptions for new stack layout.
5911 (save_gprs, restore_gprs): Changed meaning of second parameter and
5912 adapted all callers.
5913
5914 * config/s390/s390.h (s390_backchain_string): New global variable.
5915 (MASK_BACKCHAIN): Removed definition.
5916 (TARGET_BACKCHAIN): Changed check.
5917 (TARGET_KERNEL_BACKCHAIN): New macro.
5918 (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
5919 (TARGET_OPTIONS): Added "backchain", "no-backchain" and
5920 "kernel-backchain".
5921 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
5922
5923 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
5924 as condition. Adjusted for new stack layout.
5925
5926 * doc/invoke.texi: Added documentation for new option
5927 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
5928 "-mno-backchain".
5929
db151e9d
PB
59302004-08-12 Paul Brook <paul@codesourcery.com>
5931
5932 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
5933 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
5934
02b75262
DD
59352004-08-12 David Daney <ddaney@avtrex.com>
5936
db151e9d 5937 * java/gcj.texi: Add subsection on signal usage.
02b75262 5938
f64d6991
DE
59392004-08-12 David Edelsohn <edelsohn@gnu.org>
5940
5941 * expr.c (move_by_pieces): Set alignment for move to minimum of
5942 MOVE_MAX_PIECES mode alignment and the largest non-slow mode
5943 alignment, but not less than the original alignment.
5944 (move_by_pieces_ninsns): Same.
5945 (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
5946 (store_by_pieces_1): Same.
5947
c597ef4e
DN
59482004-08-12 Diego Novillo <dnovillo@redhat.com>
5949
5950 PR tree-optimization/16867
5951 * tree.c (is_global_var): New function.
5952 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
5953 Call is_global_var.
5954 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
5955 Update all users.
5956 (is_global_var): Declare.
5957 * tree-dfa.c (dump_variable): Display global and addressable
5958 attributes.
5959 (add_referenced_var): Clarify documentation when marking
5960 variables call-clobbered.
5961 * tree-flow-inline.h (is_call_clobbered): Call is_global_var
5962 instead of needs_to_live_in_memory.
5963 (mark_call_clobbered): If the variable is a tag, mark it
5964 DECL_EXTERNAL.
5965 * tree-gimple.c (is_gimple_reg): Don't check for
5966 TREE_ADDRESSABLE.
5967 (is_gimple_non_addressable): Likewise.
5968 * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
5969 needs to be marked call-clobbered.
5970 (setup_pointers_and_addressables): Call is_global_var instead
5971 of needs_to_live_in_memory.
5972 * tree-ssa-dce.c (need_to_preserve_store): Remove.
5973 Update all users with is_global_var.
5974 (mark_stmt_if_obviously_necessary): Fix processing of aliased
5975 stores. Don't check the virtual definitions. Rather, check
5976 whether the store is going into global memory.
5977 (find_obviously_necessary_stmts): Get the symbol from the PHI
5978 result.
5979 * tree-ssa-operands.c (get_call_expr_operands): Do not add
5980 clobbering may-defs if the call does not have side effects.
5981
ab5c8549
JJ
59822004-08-12 Jakub Jelinek <jakub@redhat.com>
5983
5984 PR c++/16276
5985 * output.h (default_function_rodata_section,
5986 default_no_function_rodata_section): New prototypes.
5987 * target.h (struct gcc_target): Add asm_out.function_rodata_section.
5988 * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
5989 (TARGET_ASM_OUT): Add it.
5990 * varasm.c (default_function_rodata_section,
5991 default_no_function_rodata_section): New functions.
5992 * final.c (final_scan_insn): Call
5993 targetm.asm_out.function_rodata_section instead of
5994 readonly_data_section.
5995 * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
5996 * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
5997 * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
5998 * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
5999 Likewise.
6000 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6001 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
6002 Likewise.
6003 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
6004 Likewise.
6005 * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6006 * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6007 * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
6008
5cf58f28
PB
60092004-08-12 Paul Brook <paul@codesourcery.com>
6010
6011 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
6012 frame info.
6013 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
6014 DWARF2_UNWIND_INFO.
6015
87e184d1
BE
60162004-08-12 Ben Elliston <bje@au.ibm.com>
6017
6018 PR target/16286
6019 * config/rs6000/altivec.h: Change vector to __vector throughout.
6020 (Except for the `vector' macro itself).
6021
e543e219
ZW
60222004-08-12 Zack Weinberg <zack@codesourcery.com>
6023
6024 * genpreds.c: Add capability to generate predicate bodies as
6025 well as function prototypes. Write function prototypes for
6026 the generic predicates too.
6027 (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
6028 (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
6029 (write_match_code, write_predicate_expr, write_one_predicate_function)
6030 (parse_option): New functions.
6031 (output_predicate_decls): Delete.
6032 (main): Read the machine description, process DEFINE_PREDICATE or
6033 DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
6034 as appropriate.
6035
6036 * genrecog.c (struct decision_test): Replace index with
6037 struct pred_data pointer.
6038 (next_index): Remove, unused.
6039 (pred_table, preds, special_mode_pred_table): Delete.
6040 (compute_predicate_codes, process_define_predicate): New functions.
6041 (validate_pattern, add_to_sequence, write_switch): Update for
6042 new data structures.
6043 (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
6044 Check both error_count and have_error.
6045
6046 * gensupport.c (in_fname, first_predicate): New globals.
6047 (define_pred_queue, define_pred_tail): New RTL-pattern queue.
6048 (predicate_table, last_predicate, old_pred_table)
6049 (old_special_pred_table): New statics.
6050 (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
6051 (add_predicate, init_predicate_table): New functions.
6052 (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
6053 (init_md_reader_args_cb): Use the global in_fname. No need to zero
6054 it or max_include_len. Call init_predicate_table.
6055 (read_rtx): Run the predicate queue after the attribute queue
6056 but before all the others.
6057 * gensupport.h (in_fname, struct pred_data, first_predicate)
6058 (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
6059 * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
6060 (DEFINE_SPECIAL_PREDICATE): New RTL codes.
6061 * dummy-conditions.c: Don't include bconfig.h, system.h,
6062 coretypes.h, tm.h, or system.h. Do include stddef.h.
6063 Duplicate declaration of struct c_test from gensupport.h.
6064
6065 * Makefile.in (OBJS-common): Add insn-preds.o.
6066 (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
6067 (insn-preds.c, insn-preds.o): New rules.
6068 (s-preds): Also generate insn-preds.c.
6069 (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
6070 Update dependencies.
6071 (print-rtl.o, print-rtl1.o): Correct dependencies.
6072
6073 * recog.h: Delete prototypes of predicate functions.
6074
6075 * doc/md.texi (Predicates): New section with complete
6076 documentation of operand/operator predicates. Remove some
6077 incomplete documentation of predicates from other places.
6078 * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
6079 PREDICATE_CODES; indicate that both are deprecated in favor
6080 of define_predicate/define_special_predicate.
6081
6082 * config/ia64/ia64.c: All predicate function definitions moved
6083 to ia64.md, except
6084 (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
6085 (ia64_expand_load_address, ia64_expand_move):
6086 Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
6087
6088 * config/ia64/ia64.md: All predicates now defined here.
6089 (symbolic_operand): Is now a special predicate.
6090
6091 * config/ia64/ia64.h: Declare ia64_section_threshold.
6092 (PREDICATE_CODES): Delete.
6093
174283a3
RH
60942004-08-12 Richard Henderson <rth@redhat.com>
6095
6096 * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
6097 * c-semantics.c (add_stmt): Set it.
6098 * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
6099 before instantiating a variable sized type.
6100
15931954
RH
61012004-08-12 Richard Henderson <rth@redhat.com>
6102
6103 * stor-layout.c (round_up, round_down): Move ...
e543e219 6104 * fold-const.c (round_up, round_down): ... here. Use
15931954
RH
6105 multiple_of_p to avoid any arithmetic at all.
6106
57d1dd87
RH
61072004-08-12 Richard Henderson <rth@redhat.com>
6108
6109 * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
6110 (gimplify_init_ctor_preeval_1): New.
6111 (gimplify_init_ctor_preeval): New.
6112 (gimplify_init_ctor_eval): New.
6113 (gimplify_init_constructor): Use them. Always gimplify the LHS
6114 object first.
6115
46e34f96
ZL
61162004-08-12 Ziemowit Laski <zlaski@apple.com>
6117
6118 (This patch is part of merge of objc-improvements-branch
6119 into mainline.)
6120
6121 * doc/frontends.texi: Mention Objective-C++ in addition to
6122 Objective-C.
6123 * doc/install.texi: Add 'obj-c++' to list of configurable
6124 languages.
6125 * doc/invoke.texi: Rename Objective-C option headings to
6126 indicate they also apply to Objective-C++. List file
6127 extensions for Objective-C++ sources. Mention that
6128 ObjC and ObjC++ compilations may also use C and C++ options,
6129 respectively. Point users to doc/standards.texi for
6130 further info on ObjC and ObjC++.
6131 * doc/sourcebuild.texi: Mention the objcp/ directory and
6132 the Objective-C++ sources it contains.
6133 * doc/standards.texi: Update link to Apple ObjC site;
6134 add link to gcc readings.html WWW doc.
6135
07f12d8b
AM
61362004-08-12 Alan Modra <amodra@bigpond.net.au>
6137
6138 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
6139 and 2004-07-14 changes.
6140
89aa5a20
PB
61412004-08-12 Paul Brook <paul@codesourcery.com>
6142
6143 * doc/invoke.texi: Fix typo.
6144
5079843a
DP
61452004-08-11 Devang Patel <dpatel@apple.com>
6146
6147 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
6148 and -no_dead_strip_inits_and_terms.
6149 (LINK_SPEC): Same.
6150 * doc/invoke.texi (Darwin Options): Document -dead_strip and
6151 -no_dead_strip_inits_and_terms.
e543e219 6152
876f13b0
PB
61532004-08-11 Paul Brook <paul@codesourcery.com>
6154
6155 * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
6156 (arm_load_pic_register): ... to this.
6157 * config/arm/arm.c (arm_finalize_pic): Rename ...
6158 (arm_load_pic_register): ... to this. Always output insns at the
6159 current location. Load via low reg in thumb mode.
6160 (arm_expand_prologue): Call arm_load_pic_register.
6161 (thumb_expand_prologue): Ditto.
6162 * config/arm/arm.h (FINALIZE_PIC): Remove.
6163 * config/arm/arm.md (builtin_setjmp_receiver): Call
6164 arm_load_pic_register.
6165
57934c39
PB
61662004-08-11 Paul Brook <paul@codesourcery.com>
6167
6168 * arm.c (thumb_force_lr_save): Add prototype.
6169 (thumb_compute_save_reg_mask): New function.
6170 (thumb_find_work_register): New function.
6171 (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
6172 (thumb_unexpanded_epilogue): Ditto. Remove redundant code.
6173 Don't clobber r3 when removing pretend args.
6174 (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
6175 (thumb_output_function_prologue): Use new functions.
6176 (thumb_set_return_address): Use thumb_compute_save_reg_mask.
6177 * arm.h (THUMB_REG_PUSHED_P): Remove.
6178
af874237
JW
61792004-08-11 James E Wilson <wilson@specifixinc.com>
6180
6181 PR rtl-optimization/16490
6182 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
6183 global_live_at_end for new basic block if already set for other blocks.
6184
c1618c0c
DE
61852004-08-11 David Edelsohn <edelsohn@gnu.org>
6186
6187 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
6188
6189 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
6190 (mfcr rlwinm rlwinm patterns): Set length to 12.
6191
1a24f92f
AM
61922004-08-11 Andrew MacLeod <amacleod@redhat.com>
6193
6194 * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
6195 get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
6196 (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
6197 (start_ssa_stmt_operands): Delete.
e543e219 6198 * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
1a24f92f
AM
6199 struct stmt_operands_d.
6200 (build_ssa_operands): New extern entry point.
e543e219 6201 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
1a24f92f
AM
6202 building code, replace with create_ssa_artficial_load_stmt().
6203 * tree-ssa-operands.c (struct voperands_d): Delete.
6204 (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
6205 (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
e543e219 6206 (free_uses, free_defs, free_vuses, free_v_may_defs,
1a24f92f
AM
6207 free_v_must_defs): Remove dealloc parameter.
6208 (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
6209 (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
6210 finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
6211 vector comparisons, ssa_name reuse, and allocations here.
6212 (verify_start_operands): Delete.
6213 (finalize_ssa_stmt_operands): Set new operands by calling finalize
6214 routines.
6215 (start_ssa_stmt_operands): Move from tree-flow-inline.h.
6216 (append_def, append_usei): Simplify to simple accumulation.
6217 (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
6218 duplicates and simple accumulation.
6219 (free_ssa_operands): Free vectors in a stmt_operand structure.
6220 (build_ssa_operands): New. Create a new stmt_operand structure from
e543e219 6221 a stmt and an old set of stmt_operands.
1a24f92f
AM
6222 (get_stmt_operands): Simplify and call build_ssa_operands.
6223 (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
6224 get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
6225 add_call_read_ops): Don't pass prev_vops around anymore.
6226 (note_addressable): Return if no stmt annotation.
6227 (copy_virtual_operands): Access v_may_def operands through a struct.
6228 (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
6229 hash tables without treating the stmt as a real stmt.
6230 * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
6231 v_may_def def and use through a struct instead of 2 array elements.
6232 (struct v_may_def_optype_d): Use v_may_def_operand_type.
6233 (struct stmt_operands_d): New. Struct for storing all operand vectors.
6234
a77655b1
NC
62352004-08-11 Nick Clifton <nickc@redhat.com>
6236
6237 * config/arm/arm.c (arm_is_longcall_p): Update comment describing
6238 this funciton's behaviour. Return true when the current function
6239 has a section attribute and -mlong-calls is in effect.
6240 * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
6241 short-call marker when -mlong-calls is in effect and the function
6242 has a section attribute.
6243
6f4a43e0
ZW
62442004-08-10 Zack Weinberg <zack@codesourcery.com>
6245
6246 * stmt.c (expand_return): If asked to return the RESULT_DECL,
6247 just call expand_value_return on result_rtl.
6248
1a186ec5
RH
62492004-08-10 Richard Henderson <rth@redhat.com>
6250
6251 * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
6252 * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
6253 * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
6254 (add_location_or_const_value_attribute): ... not here. Use
6255 loc_descriptor_from_tree if possible.
6256 (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
6257 Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
6258 values specially.
6259 (loc_descriptor_from_tree): New. Update callers.
6260 * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
6261 * gimplify.c (gimplify_decl_expr): Lower variable sized types to
6262 pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
6263 (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
6264 and BUILT_IN_STACK_RESTORE.
6265 (gimplify_expr): Lower DECL_VALUE_EXPR decls.
6266 * stmt.c (expand_stack_alloc): Remove.
6267 * tree-mudflap.c (mx_register_decls): Don't look for
6268 BUILT_IN_STACK_ALLOC.
6269 * tree-nested.c (convert_local_reference): Likewise.
6270 * tree.h (DECL_VALUE_EXPR): New.
6271
7109c195
RH
62722004-08-10 Richard Henderson <rth@redhat.com>
6273
bf4ccdd6
RH
6274 * stor-layout.c (round_up): Check for 0/1 before dividing.
6275 (round_down): Likewise.
6276
7109c195
RH
6277 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
6278
b3f8d95d
MM
62792004-08-09 Mark Mitchell <mark@codesourcery.com>
6280
6281 * config.gcc (arm*-*-eabi*): New target.
6282 * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
6283 (TARGET_LIB_INT_CMP_BIASED): Likewise.
6284 * expmed.c (expand_divmod): Try a two-valued divmod function as a
6285 last resort.
6286 * gthr.h: Remove bogus tokens at end of #pragma.
6287 * optabs.c (expand_twoval_binop_libfunc): New function.
6288 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
6289 (prepare_float_lib_cmp): Try reversing the condition.
6290 (debug_optab_libfuncs): New function.
6291 * optabs.h (expand_twoval_binop_libfunc): Declare.
6292 * config/arm/arm.c (arm_init_libfuncs): New function.
6293 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
6294 (TARGET_INIT_LIBFUNCS): Define it.
6295 * config/arm/arm.h (TARGET_BPABI): New macro.
6296 * config/arm/arm-protos.h
6297 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
6298 * config/arm/bpabi.S: New file.
6299 * config/arm/bpabi.c: Likewise.
6300 * config/arm/bpabi.h: Likewise.
6301 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
6302 (__aeabi_drsub): Likewise.
6303 (__aeabi_dsub): Likewise.
6304 (__aeabi_dadd): Likewise.
6305 (__aeabi_ui2d): Likewise.
6306 (__aeabi_i2d): Likewise.
6307 (__aeabi_f2d): Likewise.
6308 (__aeabi_dmul): Likewise.
6309 (__aeabi_ddiv): Likewise.
6310 (__aeabi_cdrcmple): Likewise.
6311 (__aeabi_cdcmpeq): Likewise.
6312 (__aeabi_cdcmple): Likewise.
6313 (__aeabi_dcmpeq): Likewise.
6314 (__aeabi_dcmplt): Likewise.
6315 (__aeabi_dcmple): Likewise.
6316 (__aeabi_dcmpge): Likewise.
6317 (__aeabi_dcmpgt): Likewise.
6318 (__aeabi_dcmpun): Likewise.
6319 (__aeabi_d2iz): Likewise.
6320 (__aeabi_d2uiz): Likewise.
6321 (__aeabi_d2f): Likewise.
6322 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
6323 (__aeabi_frsub): Likewise.
6324 (__aeabi_fsub): Likewise.
6325 (__aeabi_fadd): Likewise.
6326 (__aeabi_ui2f): Likewise.
6327 (__aeabi_i2f): Likewise.
6328 (__aeabi_fmul): Likewise.
6329 (__aeabi_fdiv): Likewise.
6330 (__aeabi_cfrcmple): Likewise.
6331 (__aeabi_cfcmpeq): Likewise.
6332 (__aeabi_cfcmple): Likewise.
6333 (__aeabi_fcmpeq): Likewise.
6334 (__aeabi_fcmplt): Likewise.
6335 (__aeabi_fcmple): Likewise.
6336 (__aeabi_fcmpge): Likewise.
6337 (__aeabi_fcmpgt): Likewise.
6338 (__aeabi_fcmpun): Likewise.
6339 (__aeabi_f2iz): Likewise.
6340 (__aeabi_f2uiz): Likewise.
6341 * config/arm/lib1funcs.asm (ARM_CALL): New macro.
6342 (__aeabi_uidivmod): New function or alias.
6343 (__aeabi_idivmod): Likewise.
6344 (__aeabi_idiv0): Likewise.
6345 (__aeabi_ldiv0): Likewise.
6346 (__aeabi_llsr): Likewise.
6347 (__aeabi_lasr): Likewise.
6348 (__aeabi_llsl): Likewise.
6349 (bpabi.S): Include it.
6350 * config/arm/libgcc-bpabi.ver: New file.
6351 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
6352 (LINK_SPEC): Remove.
6353 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
6354 __aeabi_ulcmp.
6355 * config/arm/t-bpabi: New file.
6356 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
6357 (TARGET_LIB_INT_CMP_BIASED): Likewise.
6f4a43e0 6358
fba73eb1
DE
63592004-08-10 David Edelsohn <edelsohn@gnu.org>
6360
6361 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
6362 * config/rs6000/rs6000.md (clrmemsi): New pattern.
6363 * config/rs6000/rs6000.c (expand_block_clear): New function.
6364 (expand_block_move): Convert alignment to bits. Use SImode and
6365 HImode for unaligned addresses if not STRICT_ALIGNMENT.
6366
63672004-08-10 Caroline Tice <ctice@apple.com>
c295317d
CT
6368
6369 * varasm.c (unlikely_section_label): New global variable.
6370 (unlikely_text_section_name): New global variable.
6371 (text_section): Remove alignment statement.
6f4a43e0 6372 (unlikely_text_section): Remove alignment statement; use
c295317d
CT
6373 unlikely_section_label rather than hard-coded string.
6374 (assemble_start_function): Initialize unlikely_section_label and
6375 unlikely_text_section_name; make sure cold section is properly
6376 aligned at start of function; output unlikely_section_label if
6377 appropriate.
6378
68f9c5e2
UW
63792004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
6380
6381 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
6382 * config/s390/s390.c (s390_canonicalize_comparison): New function.
6383 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
6384 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
6385 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
6386 ("*tmqi_mem"): Remove SUBREG from pattern.
6387 ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
6388 ("*andsi3_cconly"): Likewise.
6f4a43e0 6389
22116d84
L
63902004-08-10 H.J. Lu <hongjiu.lu@intel.com>
6391
6392 PR target/16909
6393 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
6394
c75095b2
JJ
63952004-08-10 Janis Johnson <janis187@us.ibm.com>
6396
6397 * doc/sourcebuild.texi (compat testing): Document available test
6398 framework commands. Use the preferred spelling of DejaGnu.
6399
98975653
DB
64002004-08-10 Daniel Berlin <dberlin@dberlin.org>
6401
6402 * lambda.h: Add matrix type, and prototypes for remainder of
6403 matrix and vector functions.
6404 (lambda_vector_mult_const): New function.
6405 (lambda_vector_negate): Ditto.
6406 (lambda_vector_add): Ditto.
6407 (lambda_vector_add_mc): Ditto.
6408 (lambda_vector_copy): Ditto.
6409 (lambda_vector_zerop): Ditto.
6410 (lambda_vector_equal): Ditto.
6411 (lambda_vector_min_nz): Ditto.
6412 (lambda_vector_first_nz): Ditto.
6413 (lambda_vector_matrix_mult): Ditto.
6414 * lambda-mat.c: New file.
6415 * Makefile.in (lambda-mat.o): New.
6416
68b9f53b
AM
64172004-08-10 Andrew MacLeod <amacleod@redhat.com>
6418
6419 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
6420 after linking stmt into the program.
6421 (bsi_remove): Don't call modify_stmt.
6f4a43e0 6422 * tree-complex.c (update_complex_assignment,
68b9f53b 6423 expand_complex_comparison): Call modify_stmt after changing the stmt.
6f4a43e0 6424 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
68b9f53b
AM
6425 removing the stmt.
6426 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
6427 the stmt, and only if needed.
6428 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
6429 expression.
6430 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
6431 (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
6432 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
6f4a43e0 6433 (eliminate_redundant_computations): Don't pass an annotation. Call
68b9f53b
AM
6434 modify_stmt rather than setting the annotation directly.
6435 (record_equivalences_from_stmt): Remove unused local 'j'.
6436 (cprop_operand): Take a stmt rather than an annotation as a parameter.
6437 Call modify_stmt.
6438 (cprop_into_stmt): Pass stmt rather than annotation.
6439 (update_rhs_and_lookup_avail_expr): Call modify_stmt.
6f4a43e0 6440 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
68b9f53b
AM
6441 modify_stmt.
6442 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
6443
01c98570
JM
64442004-08-10 Jason Merrill <jason@redhat.com>
6445
6c9c4526 6446 PR middle-end/16948
01c98570
JM
6447 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
6448 the RESULT_DECL.
6449
b2ddaebb
GK
64502004-08-10 Geoffrey Keating <geoffk@apple.com>
6451
6452 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
6453 hash function.
6454
23657388
RS
64552004-08-10 Roger Sayle <roger@eyesopen.com>
6456
6457 * config/mips/mips.md: New reciprocal square root patterns that
6458 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
6459
c9ca9b88
PB
64602004-08-10 Paul Brook <paul@codesourcery.com>
6461
6462 * config/arm/arm-protos.h (arm_set_return_address,
6463 thumb_set_return_address): Add prototypes.
6464 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
6465 * config/arm/arm.c (arm_compute_func_type,
6466 use_return_insn, arm_compute_save_reg0_reg12_mask,
6467 arm_compute_save_reg_mask, arm_output_function_prologue,
6468 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
6469 current_function_calls_eh_return.
6470 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
6471 old eh code.
6472 (arm_set_return_address, thumb_set_return_address): New functions.
6473 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
6474 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
6475 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
6476 (epilogue): Use the stackadj register.
6477 (eh_return, arm_eh_return, thumb_eh_return): New pattern.
6478
45d78e7f
JJ
64792004-08-10 Jakub Jelinek <jakub@redhat.com>
6480
6481 PR target/3144
6482 * expr.c (move_by_pieces_ninsns): Add max_size argument.
6483 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
6484 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
6485 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
6486 but using MOVE_RATIO.
6487 (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
6488 (can_store_by_pieces): Change max_size type to unsigned int.
6489 (store_by_pieces_1): Likewise. Pass max_size to
6490 move_by_pieces_ninsns.
6491 * config/s390/s390.h (STORE_BY_PIECES_P): Define.
6492 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
6493 to move_by_pieces_ninsns.
6494 (STORE_BY_PIECES_P): Define.
6495 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
6496 to move_by_pieces_ninsns.
6497 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
6498
6499 * config/i386/i386.h (CLEAR_RATIO): Define.
6500
25f3e06c
PB
65012004-08-09 Paolo Bonzini <bonzini@gnu.org>
6502
6503 * expr.c (expand_expr_real_1): Add back code that was not dead.
6504
6a3203c8
AP
65052004-08-09 Andrew Pinski <apinski@apple.com>
6506
6507 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
6508 which is found to be compatible before returning the aliasing set.
6509
b9bfca81
DJ
65102004-08-09 Daniel Jacobowitz <dan@debian.org>
6511
6512 * ggc-zone.c (struct alloc_zone): Add statistics counters.
6513 (always_collect): New flag.
6514 (ggc_alloc_zone_1): Update statistics support. Don't include
6515 overhead in allocated counter.
6516 (sweep_pages): Update allocated counter for large pages. Don'y
6517 include overhead.
6518 (ggc_collect_1): Always collect.
6519 (ggc_collect): Honor always_collect flag. Sum all zones to decide
6520 whether to collect.
6521 (SCALE, LABEL): New macros.
6522 (ggc_print_statistics): Add statistics support.
6523
fdded401
RS
65242004-08-09 Roger Sayle <roger@eyesopen.com>
6525
6526 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
6527 (init_expmed): Fix potential overrun problem with "all.reg".
6528 (expand_sdiv2_pow2): Add an alternate implementation for signed
6529 division, if the target provides a suitable conditional move insn.
6530
9d8646d7
PB
65312004-08-09 Paul Brook <paul@codesourcery.com>
6532 Richard Henderson <rth@redhat.com>
6533
6534 * unwind-dw2.c (uw_install_context_1): Update target saved stack
6535 pointer.
6536
d37e6b50
GK
65372004-08-09 Geoffrey Keating <geoffk@apple.com>
6538
6539 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
6540 Check DATA limit only if there's no AS limit. Ignore insanely
6541 low DATA limits.
6542 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
6543 but take care that the AS limit isn't overrun.
6544 * doc/invoke.texi: Update documentation of min-heapsize parameter.
6545
56b043c8
JL
65462004-08-09 Jeff Law <law@redhat.com>
6547
6548 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
6549 (tree-ssa-threadupdate.o): Add dependencies.
6550 * tree-ssa-threadupdate.c: New file.
6551 * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
6552 (rewrite_vars_out_of_ssa): Remove prototype.
6553 (cleanup_tree_cfg): Returns a bool.
6554 * tree.h (thread_through_all_blocks): Prototype.
6555 * tree-outof-ssa.c (SSANORM_*): Move into here.
6556 (remove_ssa_form): Now static.
6557 (rewrite_vars_out_of_ssa): Kill.
6558 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
6559 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
6560 (remove_ssa_form, register_partitions_for_vars): Kill declarations.
6561 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
6562 anything was changed.
6563 * tree-phinodes.c (add_phi_arg): Get the block for the PHI
6564 from the PHI's annotation rather than the edge associated with
6565 the new argument.
6566 * tree-ssa-dom.c (redirection_edges): Kill.
6567 (redirect_edges_and_update_ssa_graph): Kill.
6568 (tree_ssa_dominator_optimize): Do not reset forwardable flag
6569 for blocks anymore. Do not initialize redirection_edges.
6570 Call thread_through_all_blocks. Simplify code for cleanup
6571 of the CFG and iterating. No longer call cleanup_tree_cfg
6572 outside the iteration loop.
6573 (thread_across_edge): No longer mess with forwardable blocks.
6574
9b305d55
ZW
65752004-08-09 Zack Weinberg <zack@codesourcery.com>
6576
6577 * explow.c (memory_address): Use memory_address_p.
6578 * recog.c (general_operand): Likewise.
6579 * regrename.c: No need to define REG_OK_STRICT.
6580
27fb79ad
SB
65812004-08-09 Steven Bosscher <stevenb@suse.de>
6582
6583 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
6584 New timers.
6585 * gcse.c: Include timevar.h.
6586 (const_prop_count, copy_prop_count): Rename to global_const_prop_count
6587 and global_copy_prop_count.
6588 (local_const_prop_count, local_copy_prop_count): New static globals.
6589 (gcse_main): Set the right timevar for each pass.
6590 (cprop_jump): Increment global_const_prop_count when a constant is
6591 propagated. Add "GLOBAL" to dump output.
6592 (cprop_insn): Increment global_const_prop_count when a constant is
6593 propagated, or global_copy_prop_count when a copy is propagated.
6594 (do_local_cprop): Likewise for local_const_prop_count and
6595 local_copy_prop_count.
6596 (one_cprop_pass): Initialize const/cprop counters to zero.
6597 Print out results of local and global const/cprop separately.
6598 (bypass_block): Break over-length line.
702d4b73
SB
6599 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
6600 for bb-reorder.o and tracer.o.
27fb79ad 6601
7efcb746
PB
66022004-08-09 Paolo Bonzini <bonzini@gnu.org>
6603
6604 * Makefile.in (GTFILES): Remove stmt.c
6605 (stmt.o): Do not depend on gt-stmt.h.
6606 * emit-rtl.c (emit_line_note): Do not call
6607 set_file_and_line_for_stmt.
6608 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
6609 do everything.
6610 * function.c (free_after_parsing): Do not free STMT field.
6611 (allocate_struct_function): Do not call init_stmt_for_function.
6612 (assign_stack_temp_for_type): Do not accept values of keep
6613 other than 0 or 1.
6614 (init_temp_slots): Do not initialize removed variables.
6615 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
6616 and X_VAR_TEMP_SLOT_LEVEL fields.
6617 * rtl.h (set_file_and_line_for_stmt): Remove.
6618 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
6619 struct stmt_status, cond_stack, case_stack, nesting_stack,
6620 nesting_depth, emit_locus, set_file_and_line_for_stmt,
6621 same_case_target_p, init_stmt_for_function, emit_nop,
6622 expand_start_cond, expand_start_elseif, expand_start_else,
6623 expand_elseif, expand_end_cond): Remove.
6624 (preserve_subexpressions_p): Remove references to CFUN->STMT.
6625 (expand_start_case, expand_end_case_type): Remove, merge into...
6626 (expand_case): ... this one, including other bits from
6627 expand_expr_real_1. Inline same_case_target_p. Turn members
6628 of CASE_STACK into local variables.
6629 (emit_case_bit_tests): Inline same_case_target_p.
6630 (add_case_node): Add HEAD argument, return new head of the list,
6631 do not handle default label here.
6632 * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
6633 expand_start_elseif, current_nesting_level, expand_start_case,
6634 expand_end_case_type, expand_end_case, add_case_node,
6635 init_stmt_for_function, expand_elseif): Remove prototypes.
6636 (expand_case): Add prototype.
6637
c4d70ce3
PB
66382004-08-09 Paolo Bonzini <bonzini@gnu.org>
6639
6640 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
6641
66422004-08-09 Paolo Bonzini <bonzini@gnu.org>
e5bacf32
PB
6643
6644 * expr.c (var_rtx): Remove.
6645 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
6646 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
6647 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
6648 Abort.
6649 (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
6650 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
6651 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
6652
d72372e4
MH
66532004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
6654 Ayal Zaks <zaks@il.ibm.com>
6655
6656 * common.opt (freschedule-modulo-scheduled-loops): New flag.
6657 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
6658 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
6659 when -freschedule-modulo-scheduled-loops flag is not specified.
6660 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
6661 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
6662 More accurate placing of insn in row of partial schedule.
6663 (ps_insn_find_column): New function.
6664 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
6665 * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
6666 (schedule_region): Use sched_is_disabled_for_current_region_p.
6667 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
6668
0737fbff
L
66692004-08-07 H.J. Lu <hongjiu.lu@intel.com>
6670
6671 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
6672 change.
6673
11c4576f
L
66742004-08-07 H.J. Lu <hongjiu.lu@intel.com>
6675
6676 * config/i386/i386.c (ix86_expand_clrmem): Properly call
6677 gen_strset for 64bit target.
6678
34def210
OH
66792004-08-07 Olivier Hainque <hainque@act-europe.fr>
6680
6681 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
6682
5201931e
JM
66832004-08-07 Jason Merrill <jason@redhat.com>
6684
cc77ae10
JM
6685 Make return in memory explicit.
6686 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
6687 (assign_parm_find_data_types): Remove code for old front end
6688 invisible reference handling.
6689 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
6690 (expand_function_end): Likewise.
6691 * gimplify.c (gimplify_return_expr): Handle a dereferenced
6692 RESULT_DECL.
6693 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
6694 (declare_return_variable): Handle DECL_BY_REFERENCE.
6695 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
6696 (cp_genericize_r): Use convert_from_reference.
6697 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
6698 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
6699
5201931e
JM
6700 * c-common.c (c_warn_unused_result): Check TREE_USED before
6701 warning about a CALL_EXPR with an unused value.
6702
2ed9e527
MM
67032004-08-06 Mark Mitchell <mark@codesourcery.com>
6704
6705 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
6706 to the compiler. Use -fshort-wchar by default.
6707
12183e0f
PH
67082004-08-06 Pat Haugen <pthaugen@us.ibm.com>
6709
6710 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
6711 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
6712 threshhold.
6713 * doc/invoke.texi (param): Document min-crossjump-insns.
6714
eaac4679
RS
67152004-08-06 Richard Sandiford <rsandifo@redhat.com>
6716
6717 PR c/13282
6718 * c.opt (Wmissing-field-initializers): New option.
6719 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
6720 * c-typeck.c (pop_init_level): Guard the missing field warning with
6721 warn_missing_field_initializers rather than extra_warnings.
6722 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
6723 some of the explanation from...
6724 (-Wextra): ...here. Say that the missing field warning can be
6725 seperately controlled by -Wmissing-field-initializers.
6726
caad9f81
PB
67272004-08-06 Paolo Bonzini <bonzini@gnu.org>
6728
6729 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
6730 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
6731 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
6732 * tree.def (ENTRY_VALUE_EXPR): Remove.
6733
6b32b628
JJ
67342004-08-06 Jakub Jelinek <jakub@redhat.com>
6735
6736 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
6737 the places where it is actually needed. Don't use repz; stosb
6738 for -Os with sufficiently small constant sizes.
6739 For sufficiently small repz; stos{l,q} repeat counts use a sequence
6740 of stos{l,q} instructions instead.
6741
6797f908
ZD
67422004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6743
6744 PR tree-optimization/16807
6745 * loop-iv.c (dump_iv_info): Dump invariants correctly.
6746 (iv_subreg, iv_extend): Express value of invariant purely in
6747 base field.
6748
866cf037
MM
67492004-08-06 Mark Mitchell <mark@codesourcery.com>
6750
6751 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
6752 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
6753
9652c531 67542004-08-06 Roman Zippel <zippel@linux-m68k.org>
9b305d55 6755
27fb79ad
SB
6756 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
6757 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
6758 pre_dec_operand.
6759 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
6760 pattern until reload is finished to allow better code generation
6761 and split them completely into separate instrunctions.
6762 (*andsi3_split): New pattern.
9652c531 6763
b2ca3702
MM
67642004-08-05 Mark Mitchell <mark@codesourcery.com>
6765
6766 * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
6767 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
6768 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
6769 * tree.h (handle_dll_attribute): Declare. Test
6770 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
6771 * c-common.h (c_determine_visibility): Declare.
6772 * c-common.c (c_determine_visibility): New function.
6773 * c-decl.c (finish_decl): Use it.
6774 (finish_function): Likewise.
6775 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
6776 zero, by default. Use #if, not #ifdef, to test it.
6777 * config/arm/arm.c (arm_attribute_table): Use
6778 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
6779 #if.
6780 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
6781 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
6782 to 1.
6783 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
6784 * config/i386/i386.c (ix86_attribute_table): Use
6785 handle_dll_attribute for dllimport/dllexport. Test
6786 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
6787 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
6788 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
6789 it to 1.
6790 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
6791 with #if.
6792 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
6793 it to 1.
6794 * doc/extend.texi (dllexport): Clarify and correct documentation.
6795 (dllimport): Likewise.
6796 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
6797 handle_dll_attribute.
9b305d55 6798
c913f08a
ZD
67992004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6800
6801 * tree-ssa-loop-manip.c: New file.
6802 * Makefile.in (tree-ssa-loop-manip.o): Add.
6803 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
6804 Declare.
6805 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
6806 form.
6807 (tree_ssa_loop_done): Verify loop closed ssa form.
6808 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
6809
d4482715
JDA
68102004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6811
6812 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
6813 pa_asm_output_aligned_local): New functions.
6814 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
6815 pa_asm_output_aligned_common and pa_asm_output_aligned_local.
6816 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
6817 pa_asm_output_aligned_common.
6818 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
6819 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
6820 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
6821 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
6822 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
6823 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
6824 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
6825 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
6826 common data.
6827
21149a79
AP
68282004-08-05 Andrew Pinski <apinski@apple.com>
6829
6830 * objc/objc-act.c (build_objc_string_object): Mark the address
6831 expression as constant.
6832
d5861a7a
DE
68332004-08-05 David Edelsohn <edelsohn@gnu.org>
6834
6835 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
6836 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
6837 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
6838
0a2b72a6
JM
68392004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
6840
6841 * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
6842 Remove definitions conditioned on USE_GNULIBC_1 or conditioned
6843 out, and associated obsolete comments.
6844
ca7a3bd7
NS
68452004-08-05 Nathan Sidwell <nathan@codesourcery.com>
6846
6847 * tree.h (force_fit_type): Return a tree, take three flags.
6848 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
6849 TREE_CONSTANT_OVERFLOW here.
6850 (int_const_binop, const_binop): Adjust.
6851 (size_int_type): Do sign extension here.
6852 (fold_convert_const, optimize_bit_field_compare,
6853 decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
6854 fold_negate_const, fold_abs_const, fold_not_const): Adjust.
6855 * tree.c (size_in_bytes, int_fits_type_p): Adjust.
6856
d36837f4
ZD
68572004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6858
6859 PR tree-optimization/16864
6860 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
6861 for ssa names without default_def.
6862
ea5f7a19
RS
68632004-08-05 Richard Sandiford <rsandifo@redhat.com>
6864
6865 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
6866 frame pointer, restore eax with an ebp-relative address.
6867
0e6df31e
GK
68682004-08-04 Geoffrey Keating <geoffk@apple.com>
6869
6870 PR 14516
6871 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
6872 * c-common.h (make_rtl_for_local_static): Delete.
6873 * c-decl.c (shadow_tag_warned): Clean up comment.
6874 (finish_decl): Clean up spacing. Use set_user_assembler_name when
6875 appropriate. Don't pass asmspec to rest_of_decl_compilation.
6876 * c-semantics.c (make_rtl_for_local_static): Delete.
6877 * expr.c (init_block_move_fn): Use set_user_assembler_name.
6878 (init_block_clear_fn): Likewise.
6879 * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
6880 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
6881 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
6882 * tree.h (make_decl_rtl): Remove second parameter.
6883 (set_user_assembler_name): New.
6884 * varasm.c (set_user_assembler_name): New.
6885 (make_decl_rtl): Remove second parameter. Update callers in many
6886 files.
6887
4f587cb0
AN
68882004-08-05 Adam Nemet <anemet@lnxw.com>
6889
6890 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
6891 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
6892 to LynxOS 4.0.
6893 * gthr-lynx.h: New file.
6894 * config/lynx-ng.h: Remove file.
6895 * config/lynx.h: Update to LynxOS 4.0.
6896 * config/t-lynx: New file.
6897 * config/i386/lynx-ng.h: Remove file.
6898 * config/i386/lynx.h: Update to LynxOS 4.0.
6899 * config/rs6000/lynxbase.h: Remove file.
6900 * config/rs6000/lynx.h: Update to LynxOS 4.0.
6901 * config/rs6000/t-lynx: New file.
6902 * doc/install.texi (Options specification): Remove reference to
6903 LynxOS from systems where --with-gnu-as makes a difference.
6904
85291069
JM
69052004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
6906
6907 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
6908 __UINTMAX_TYPE__.
6909 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
6910 __INTMAX_MAX__.
6911 (c_cpp_builtins): Call it.
6912 * doc/cpp.texi: Update.
6913
30a555d9
DE
69142004-08-04 David Edelsohn <edelsohn@gnu.org>
6915
6916 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
6917 cost.
6918
878f99d2
JH
69192004-08-04 Jan Hubicka <jh@suse.cz>
6920
6921 * basic-block.h (profile_staus): New global variable.
6922 * cfg.c (profile_status): Declare.
6923 (check_bb_profile): Break out from ....; use profile_status
6924 (dump_flow_info): ... here.
6925 * cfgbuild.c (find_basic_blocks): Set profile_status.
6926 * cfgexpand.c (tree_expand_cfg): Likewise.
6927 * predict.c (estimate_probability): Likewise.
6928 * profile.c (branch_prob): Likewise.
6929 * tree-cfg.c (build_tree_cfg): Likewise.
6930 (dump_function_to_file): Use check_bb_profile.
6931 * tree-pretty-print (dump_bb_header): Likewise.
6932 * tree-profile.c (do_tree_profiling): Cleanup.
6933
7e7ec48e
ZW
69342004-08-04 Zack Weinberg <zack@codesourcery.com>
6935
6936 * Makefile.in (RTL_BASE_H, RTL_H): Correct.
6937 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
6938 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
6939 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
6940 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
6941 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
6942 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
6943 (ggc-none.o, errors.o): Move rule to generators section;
6944 correct dependencies.
6945 (min-insn-modes.o): Move rule to generators section; remove
6946 unnecessary explicit command; correct dependencies.
6947 (print-rtl.o, print-rtl1.o): Correct dependencies.
6948 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
6949 (mostlyclean): Update.
6950
6951 * errors.c: Include bconfig.h not config.h. Correct comment.
6952 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
6953 * ggc-none.c: Include bconfig.h; not config.h or tm.h.
6954 * print-rtl.c: Don't include tm_p.h.
6955
6956 * rtl.h: Move forward-decl of struct function down where it's
6957 needed. Include genrtl.h #ifndef GENERATOR_FILE, not
6958 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
6959
b0382c67
ZD
69602004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6961 Jeff Law <law@redhat.com>
6962
6963 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
6964 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
6965 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
6966 manipulate the duplicated ssa names.
6967 * tree-ssanames.c (ssa_names_to_rewrite): New variable.
6968 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
6969 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
6970 New functions.
6971 (release_ssa_name): Do not release ssa names that may have multiple
6972 definitions.
6973 * tree.h (release_ssa_name_force, mark_for_rewrite,
6974 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
6975 marked_ssa_names): Declare.
6976 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
6977 (duplicate_blocks): Remove call to mark_defs_for_rewrite.
6978 Update call to rewrite_ssa_into_ssa.
6979
63c5b495
MM
69802004-08-04 Mark Mitchell <mark@codesourcery.com>
6981
6982 * defaults.h (TARGET_DECLSPEC): New macro.
6983 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
6984 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
b2ca3702 6985 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
63c5b495
MM
6986 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
6987 __declspec support.
6988 (TARGET_DECLSPEC): Define.
6989 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
6990 __declspec support.
6991 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
6992 __declspec support.
6993 (TARGET_DECLSPEC): Define.
6994 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
6995 __declspec support.
6996 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
6997 support.
6998 * doc/tm.texi (TARGET_DECLSPEC): Document.
6999
7000 * doc/extend.texi: Fix typo in comment.
7001
44d10c10
PB
70022004-08-04 Paul Brook <paul@codesourcery.com>
7003
7004 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
7005 (TARGET_CXX): Use it.
7006 * target.h (struct gcc_target): Add cdtor_returns_this.
7007 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
7008 (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
7009 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
7010
5e9754af
NS
70112004-08-03 Nathan Sidwell <nathan@codesourcery.com>
7012
7013 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
7014 low/high pair. Do range checking directly.
7015 (interpret_integer): Adjust.
7016
2acc29bd
NC
70172004-08-04 Nick Clifton <nickc@redhat.com>
7018
7019 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
7020 GCC ABI.
7021 * doc/invoke.texi: Document this new switch and also the -mrenesas
7022 switch.
7023
2496942a
NS
70242004-08-04 Nathan Sidwell <nathan@codesourcery.com>
7025
7026 * cfglayout.c (insn_locators_initialize): Update the current
7027 location before initializing a location.
7028
7e2e8179
ZW
70292004-08-03 Zack Weinberg <zack@codesourcery.com>
7030
403f8503
ZW
7031 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
7032 (dbxout_function_end): Return after emitting the "Lscope" symbol
7033 under the same conditions that this function formerly wasn't called.
7034 Add explanatory comments.
7035
bcc7f708 7036 PR 14860
ca043393
ZW
7037 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
7038 on the new decl.
7039
bcc7f708 7040 PR 13956
7e2e8179
ZW
7041 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
7042 functions, broken out of dbxout_block.
7043 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
7044 stabs too, if it contains symbols. Use the begin_label and
7045 the Lscope label (emitted by dbxout_function_end) for the
7046 range of this block.
7047
5d75ba94
NN
70482004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
7049
7050 * doc/install.texi: Update autoconf version requirements.
7051
2e4e72b1
ZW
70522004-08-03 Zack Weinberg <zack@codesourcery.com>
7053
7054 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
7055 * recog.c (general_operand, immediate_operand, nonmemory_operand)
7056 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
7057 * regclass.c (record_reg_classes): Likewise.
7058 * reload.c (find_reloads): Likewise.
7059 * reload1.c (reload): Likewise.
7060
f9942f4e
ZW
70612004-08-03 Zack Weinberg <zack@codesourcery.com>
7062
7063 * gensupport.c (init_md_reader_args_cb): Renamed from
7064 init_md_reader_args. Add third option, callback function for
7065 parsing program-specific options. Add diagnosis of incorrect
7066 number of input files.
7067 (init_md_reader): Fold into init_md_reader_args_cb.
7068 (init_md_reader_args): Now a thin wrapper around
7069 init_md_reader_args_cb.
7070 * gensupport.h: Update prototypes.
7071
7072 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
7073 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
7074 * genrecog.c: No need to diagnose lack of an input file;
7075 init_md_reader_args will handle it.
7076 * genconditions.c: Likewise, and use init_md_reader_args.
7077 * genconstants.c: Likewise, and no need to call read_md_rtx.
7078
9cbe78fb
JM
70792004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
7080
7081 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
7082 declarations.
7083
3e558e80
MS
70842004-08-03 Mike Stump <mrs@apple.com>
7085
7086 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
7087 for frameworks.
7088 * doc/invoke.texi (Darwin Options): Update to reflect above.
7089
a0fac73d
RS
70902004-08-03 Roger Sayle <roger@eyesopen.com>
7091
7092 PR middle-end/16790
7093 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
7094 truncations, not just global truncations.
7095
cddbddb7
AP
70962004-08-03 Andrew Pinski <apinski@apple.com>
7097
7098 PR bootstrap/16865
7099 * loop-iv.c (simplify_using_assignment): Initialize lhs.
7100
bebf829d
PB
71012004-08-03 Paul Brook <paul@codesourcery.com>
7102
7103 * gcc/doc/install.texi: Document MPFR requirement.
7104
cddbddb7 71052004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
3b0727a0 7106
f9942f4e
ZW
7107 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
7108 and mmap() explicitly instead of relying on preset autoconf cache
3b0727a0
MR
7109 variables.
7110 * configure: Regenerate.
7111
f6bc51cb
L
71122004-08-03 H.J. Lu <hongjiu.lu@intel.com>
7113
7114 PR target/16570
7115 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
7116 to tmake_file.
7117 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
7118 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
7119 to tmake_file.
7120
7121 * config/i386/t-gmm_malloc: New file.
7122 * config/i386/t-pmm_malloc: Likewise.
f9942f4e 7123
f6bc51cb
L
7124 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
7125
71262004-08-03 H.J. Lu <hongjiu.lu@intel.com>
0ddcd94f 7127