1 2005-12-19 Ben Elliston <bje@au.ibm.com>
3 * doc/install.texi (Configuration): Typo in Fortran subheading.
5 2005-12-19 Nathan Sidwell <nathan@codesourcery.com>
7 * config/mt/mt.md (decrement_and_branch_until_zero): Add another
8 scratch. Correct its reload split. Adjust its peephole.
9 (doloop_end): Add additional scratch.
11 * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
12 (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
13 (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
14 (mt_builtin_saveregs): Replace with ...
15 (mt_setup_incoming_varargs): ... here. Save just the varadic
17 (mt_va_start): Remove.
18 (mt_reorg_hazard): Ignore USE insns. Don't call set_noop_p.
19 (mt_machine_reorg): Split all insns here.
20 (TARGET_SETUP_INCOMING_VARARGS): Override.
21 * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
23 (EXPAND_BUILTIN_VA_START): Remove.
25 2005-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
27 * flow.c (update_life_info, count_or_remove_death_notes): Fixed
28 latent bug that could happen if update_life_info was called with a
29 blocks parameter and the call to cleanup_cfg actually deleted one
32 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
34 * tree-ssa-structalias.c (update_alias_info): Remove handling
35 of may_be_aliased (SSA_NAME_VAR (op)) case.
37 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
39 * tree-flow.h (struct stmt_ann_d): Remove
40 makes_aliased_loads and makes_aliased_stores fields.
41 * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
42 and makes_aliased_loads fields.
43 * tree-ssa-dom.c (eliminate_redundant_computations): Do not
44 use makes_aliased_stores.
45 * tree-ssa-operands.c (clobbered_aliased_loads,
46 clobbered_aliased_stores, ro_call_aliased_loads): Removed.
47 (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
48 add_call_read_ops): Do not set makes_aliased_stores and
49 makes_aliased_loads fields.
50 * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
53 2005-12-18 Geoffrey Keating <geoffk@apple.com>
55 * config/darwin.h: Don't include darwin-sections.def to declare
56 global variables; instead create darwin_section_enum.
57 (darwin_section_enum): New.
58 (darwin_sections): New.
59 * config/darwin.c: Don't include darwin-sections.def to define
61 (darwin_sections): New.
62 (output_objc_section_asm_op): Rewrite to take advantage of
64 (darwin_init_sections): Rewrite to use darwin_sections.
65 (machopic_output_indirection): Update for darwin_sections array.
66 (machopic_select_section): Likewise.
67 (machopic_select_rtx_section): Likewise.
68 (machopic_asm_out_constructor): Likewise.
69 (machopic_asm_out_destructor): Likewise.
70 (darwin_file_end): Likewise.
71 * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
72 * config/i386/i386.c (machopic_output_stub): Likewise.
74 2005-12-18 Richard Guenther <rguenther@suse.de>
76 PR tree-optimization/25481
77 * tree-ssa-structalias.c (handle_ptr_arith): Handle
78 accesses we don't have a varinfo for.
80 2005-12-17 Jon Grimm <jgrimm2@us.ibm.com>
81 Janis Johnson <janis187@us.ibm.com>
82 Ben Elliston <bje@au.ibm.com>
84 * optabs.c (init_floating_libfuncs): Handle decimal float modes.
85 (init_optabs): Handle libfuncs for decimal float.
86 * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
87 * stor-layout.c (int_mode_for_mode): Likewise.
88 * simplify-rtx.c (simplify_immed_subreg): Likewise.
89 (simplify_unary_operation_1): Skip optimisations for decimal float
91 * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
92 * emit-rtl.c (gen_const_vector): Add assertion check.
93 (init_emit_once): Populate const_tiny_rtx with constants in each
95 * expmed.c (extract_high_half, expand_mult_highpart_optab,
96 expand_mult_highpart): Assert that mode is not a scalar float
98 * expr.c (convert_move): Handle conversion between decimal and
99 binary floats of the same size.
100 * convert.c (convert_to_real): Consider decimal float types when
102 * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
103 describe decimal floating point types.
105 2005-12-18 Ulrich Weigand <uweigand@de.ibm.com>
107 PR rtl-optimization/21041
108 * reload.c (find_reloads_subreg_address): Replace paradoxical
109 subreg of MEM by widened access only if the resulting memory
110 is properly aligned, even on !STRICT_ALIGNMENT targets.
112 2005-12-18 Andreas Krebbel <krebbel1@de.ibm.com>
114 * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
116 2005-12-18 Steven Bosscher <stevenb@suse.de>
118 * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
119 the 2005-12-17 patch to renumber the entry and exit blocks.
121 2005-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
123 * doc/objc.texi (Type encoding): Fix typo.
125 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
127 * tree-tailcall.c (find_tail_calls): Use XNEW.
128 * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
129 (free_all_edge_infos): Use explicit cast to convert from void *.
130 (vrp_free): Likewise.
131 (dom_opt_finalize_block): Likewise.
132 (record_equivalences_from_incoming_edge): Likewise.
133 (thread_across_edge): Likewise. Use XCNEWVEC.
134 (record_cond): Use XCNEW.
135 (record_conditions): Use XNEWVEC.
136 (record_edge_info): Use XCNEWVEC.
137 (lookup_avail_expr): Use XNEW.
138 (record_range): Likewise. Use GGC_NEW.
139 * tree-nested.c (var_map_hash): Use explicit cast to convert from
141 (var_map_eq): Likewise.
142 (lookup_field_for_decl): Likewise.
143 (convert_nonlocal_reference): Likewise.
144 (convert_local_reference): Likewise.
145 (convert_nl_goto_reference): Likewise.
146 (convert_nl_goto_receiver): Likewise.
147 (convert_call_expr): Likewise.
148 (convert_tramp_reference): Likewise.
149 (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
150 (convert_nl_goto_reference): Likewise.
151 (lookup_field_for_decl): Use GGC_NEW.
152 (create_nesting_tree): Use GGC_CNEW.
153 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
154 * tree-ssa-alias.c (init_alias_info): Use XCNEW.
155 (create_alias_map_for): Likewise.
156 (setup_pointers_and_addressables): Use XCNEWVEC.
157 (get_ptr_info): Use GGC_NEW.
158 (used_part_map_eq): Use explicit cast to convert from void *.
159 (up_lookup): Likewise.
160 (up_insert): Use XNEW.
161 (get_or_create_used_part_for): Use XCNEW.
162 (get_tmt_for): Likewise.
163 * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
164 * tree-ssa-pre.c (phi_trans_add): Use XNEW.
165 (bitmap_set_new): Use explicit cast to convert from void *.
167 (insert_into_set): Likewise.
168 (pool_copy_list): Likewise.
169 (phi_translate): Likewise.
170 (create_value_expr_from): Likewise.
171 (insert_aux): Use XCNEWVEC.
172 (compute_avail): Use XNEWVEC.
173 * tree-ssa-live.c (calculate_live_on_entry): Likewise.
174 (sort_coalesce_list): Likewise.
175 (build_tree_conflict_graph): Use XCNEWVEC.
176 * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
177 * tree-ssa-copy.c (init_copy_prop): Likewise.
178 (fini_copy_prop): Likewise.
179 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
181 (record_equiv): Use XNEW.
182 (uncprop_into_successor_phis): Use explicit cast to convert from
184 (uncprop_initialize_block): Likewise.
186 2005-12-18 Dorit Nuzman <dorit@il.ibm.com>
188 PR tree-optimization/24378
189 * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
190 basic-block after loop-versioning.
192 2005-12-18 Jeff Law <law@redhat.com>
194 * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
195 to simplify SWITCH_EXPR_CODE moved from here to ...
196 * tree-ssa-forwprop.c (simplify_switch_expr): Here.
197 (tree-ssa-forward_propagate_single_use_vars): Call
198 simplify_switch_expr when appropriate.
200 2005-12-17 Andrew Pinski <pinskia@physics.uc.edu>
202 * doc/objc.texi (Type encoding): Add documentation about encoding
203 complex types and _Bool.
205 2005-12-17 Paul Brook <paul@codesourcery.com>
207 * config/m68k/m68k.md (m68k_output_function_prologue): Always call
208 dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
209 when frame_pointer_needed.
211 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
213 * tree-vn.c (vn_add): Use XNEW.
214 * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
215 (ccp_fold): Likewise.
216 (fold_stmt_r): Use explicit cast to convert from void *.
217 * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
218 (new_temp_expr_table): Likewise.
219 * gimplify.c (lookup_tmp_var): Use XNEW.
220 (gimplify_asm_expr): Use explcit cast to convert from void *.
221 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
222 (get_def_blocks_for): Use XNEW.
223 (add_to_repl_tbl): Likewise.
224 (mark_def_sites): Use explicit cast to convert from void *.
225 (def_blocks_free): Likewise.
226 (mark_def_sites_initialize_block): Likewise.
227 (update_ssa): Use XNEWVEC.
228 * tree-dfa.c (create_var_ann): Use GGC_NEW.
229 (create_stmt_ann): Likewise.
230 (create_tree_ann): Likewise.
231 (referenced_var_insert): Likewise.
232 (set_default_def): Likewise.
233 (referenced_var_lookup_if_exists): Use explicit cast to convert
235 (referenced_var_lookup): Likewise.
236 (default_def): Likewise.
237 (set_default_def): Likewise.
238 * tree-cfg.c (create_bb): Likewise.
239 (edge_to_cases_cleanup): Likewise.
240 (verify_node_sharing): Likewise.
241 (record_switch_edge): Use XNEW.
242 (cleanup_dead_labels): Use XCNEWVEC.
243 (tree_duplicate_sese_region): Use XNEWVEC.
244 * tree-scalar-evolution.c (get_instantiated_value): Likewise.
245 * tree-ssa.c (verify_ssa): Use XCNEWVEC.
246 (int_tree_map_eq): Use explicit cast to convert from void *.
247 * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
248 (__gcov_execl): Likewise.
249 (__gcov_execlp): Likewise.
250 (__gcov_execle): Likewise.
251 * tree-eh.c (struct_ptr_eq): Likewise.
252 (struct_ptr_hash): Likewise.
253 (lookup_stmt_eh_region_fn): Likewise.
254 (outside_finally_tree): Likewise.
255 (find_goto_replacement): Likewise.
256 (make_eh_edge): Likewise.
257 (mark_eh_edge): Likewise.
258 (add_stmt_to_eh_region_fn): Use GGC_NEW.
259 (record_in_finally_tree): Use XNEW.
260 (maybe_record_in_goto_queue): Use XRESIZEVEC.
261 (lower_try_finally_copy): Use XCNEWVEC.
263 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
265 * tree-inline.c (copy_body_r): Use explicit cast when converting
268 (copy_edges_for_bb): Likewise.
269 (remap_decl_1): Likewise.
270 (estimate_num_insns_1): Likewise.
271 * cgraph.c (hash_node): Use explicit cast when converting from
274 (cgraph_create_node): Use GGC_CNEW.
275 (cgraph_create_edge): Use GGC_NEW.
276 (cgraph_remove_node): Use explicit cast when converting from void *.
277 (hash_varpool_node): Likewise.
278 (eq_varpool_node): Likewise.
279 (cgraph_varpool_node): Use GGC_CNEW.
280 * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
281 * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
282 (eq_scev_info): Use explicit cast when converting from void *.
283 (find_var_scev_info): Likewise.
284 (set_instantiated_value): Likewise.
285 (gather_stats_on_scev_database_1): Likewise.
286 * cfgloop.h (simple_loop_desc): Use explicit cast when converting
288 * c-pch.c (c_common_write_pch): Use XNEWVEC.
289 (c_common_read_pch): Likewise.
290 * prefix.c (save_string): Use XNEWVEC.
291 (translate_name): Use explicit cast when converting from void *.
292 * c-ppoutput.c (print_line): Use explicit cast when converting
294 (pp_dir_change): Likewise.
295 * c-cppbuiltin.c (builtin_define_std): Likewise.
296 (builtin_define_with_value): Likewise.
297 (builtin_define_with_value_n): Likewise.
298 (builtin_define_with_int_value): Likewise.
299 (builtin_define_type_max): Likewise.
300 * c-incpath.c (add_env_var_paths): Use XNEWVEC.
301 (add_path): Use XNEW.
302 * c-format.c (check_format_info_main): Use GGC_NEW.
303 (format_type_warning): Use explicit cast when converting from void *.
304 * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
306 (start_init): Likewise.
307 * tree-flow-inline.h (first_referenced_var): Use explicit cast
308 when converting from void *.
309 (next_referenced_var): Likewise.
310 * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
311 * gensupport.c (lookup_predicate): Use explicit cast to convert
313 (init_predicate_table): Use XCNEW instead of xcalloc.
314 * genpreds.c (process_define_predicate): Likewise.
316 2005-12-17 Danny Berlin <dberlin@dberlin.org>
317 Kenneth Zadeck <zadeck@naturalbridge.com>
319 * basic-block.h: Changed basic block numbering so that the entry
320 block is 0 and the exit block is 1. Changed insn iterators so
321 that they are tolerant of blocks with no insns.
322 * regrename.c (copyprop_hardreg_forward): Changed basic block
323 numbering so that the entry block is 0 and the exit block is 1.
324 * sched-ebb.c (sehedule_ebbs): Ditto.
325 * tracer.c (branch_ratio_cutoff): Ditto.
326 * cfgloopmanip.c (fix_loop_structure): Ditto.
327 * cfghooks.c (verify_flow_info): Ditto.
328 * cfg.c (compact_blocks): Ditto.
329 * reorg.c (dbr_schedule): Ditto.
330 * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
331 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
332 calculate_dominance_info): Ditto.
333 * cfganal.c (create_edge_list, print_edge_list,
334 flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
335 flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
336 dfs_enumerate_from): Ditto.
337 * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
338 * ifcvt.c (find_if_case_2): Ditto.
339 * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
340 find_basic_blocks): Ditto.
341 * predict.c (predict_loops, tree_bb_level_predictions,
342 predict_paths_leading_to, propagate_freq): Ditto.
343 * lcm.c (compute_antinout_edge, compute_laterin,
344 compute_available): Ditto.
345 * function.c (thread_prologue_and_epilogue_insns): Ditto.
346 * gcse.c (gcse_main, bypass_jumps): Ditto.
347 * profile.c (compute_branch_probabilities,
348 compute_value_histograms, branch_prob): Ditto.
349 * tree-flow-inline.h (bsi_start, bsi_after_labels,
351 * tree-ssa-phiopt.c (tree_ssa_phiopt,
352 blocks_in_phiopt_order): Ditto.
353 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
354 compute_out, link_btr_uses, migrate_btr_defs): Ditto.
355 * tree-dfa.c (collect_dfa_stats): Ditto.
356 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
357 * cfglayout.c (fixup_reorder_chain): Ditto.
358 * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
359 partition_hot_cold_basic_blocks): Ditto.
360 * var-tracking.c (vt_find_locations): Ditto.
361 * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
362 * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
363 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
364 label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
365 * tree-ssa-reassoc.c (init_reassoc): Ditto.
366 * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
367 rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
368 * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
369 and removed unused reverse orders.
371 * combine.c: Fix document typo.
373 2005-12-17 Jan Hubicka <jh@suse.cz>
375 * tree-flow-inline.h (set_default_def, default_def): Kill.
376 * tree-dfa.c (default_defs): New global variable.
377 (default_def, set_default_def): New functions.
378 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
379 * tree-flow.h (struct var_ann_d): Kill default_def field.
380 (set_default_def, default_def): Update prototype.
381 (default_defs): Declare.
383 2005-12-16 Jeff Law <law@redhat.com>
385 * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
386 (simplify_rhs_and_lookup_avail_expr): Kill. Remnants moved
387 into tree-ssa-forwprop.c.
388 (eliminate_redundant_computations): Do not call
389 simplify_rhs_and_lookup_avail_expr anymore.
390 * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
391 extracted from remnants of simplify_rhs_and_lookup_avail_expr.
392 (tree_ssa_forward_propagate_single_use_vars): Call
393 simplify_not_neg_expr appropriately.
395 2005-12-16 Bernd Trog <berndtrog@yahoo.com>
398 * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
400 2005-12-17 Kazu Hirata <kazu@codesourcery.com>
402 PR rtl-optimization/25456
403 * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
404 info->x_start with p->x_start.
406 2005-12-17 Alan Modra <amodra@bigpond.net.au>
408 * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
409 introduced 2005-12-16.
411 2005-12-16 Steven Bosscher <stevenb@suse.de>
413 PR rtl-optimization/23837
414 * optabs.c (expand_binop): For a multi-word rotate, never emit
415 a REG_NO_CONFLICT block.
417 2005-12-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
420 * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
423 * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
426 2005-12-16 Steven Bosscher <stevenb@suse.de>
428 * loop-invariant.c (move_loop_invariants): Add missing hunk from
429 the previous patch, to nullify df.
431 2005-12-16 Steven Bosscher <stevenb@suse.de>
433 * reorg.c (mostly_true_jump): Clean up code depending on
434 LABEL_OUTSIDE_LOOP_P and loop notes. Remove code doing
435 poor man's branch prediction, instead rely on REG_BR_PROB
436 notes to be available.
438 2005-12-16 Jakub Jelinek <jakub@redhat.com>
440 PR rtl-optimization/24899
441 * loop.c (strength_reduce): Don't reduce giv that is not always
442 computable and where add_val or mult_val can trap.
444 * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
446 2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
448 * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
449 names of ms1-16-002 files.
451 2005-12-16 Alan Modra <amodra@bigpond.net.au>
454 * gcc.c (for_each_path): New function.
455 (add_to_obstack, file_at_path): New functions.
456 (struct file_at_path_info, struct add_to_obstack_info): New.
457 (build_search_list): Rewrite using for_each_path. Constify struct
458 path_prefix pointer. Add do_multi param. Adjust all callers.
459 (find_a_file): Similarly, but just change existing param to bool.
460 (putenv_from_prefixes): Add do_multi param, make "paths" const.
461 (do_spec_path): Delete.
462 (struct spec_path_info): New.
463 (spec_path): New function.
464 (do_spec_1): Use for_each_path for %D and %I.
465 (find_file): Adjust for find_a_file changes.
466 (main): Search multilibs for specs. Print multilib lib path for
467 -print-search-dirs. Likewise add multilibs to LIBRARY_PATH_ENV.
468 (read_specs): Search multilibs for %include and %include_noerr.
469 (is_directory): Remove second string param. Change last param
470 to a bool. Don't use concat. Remove SMALL_ARG_MAX test, always
471 check path is a dir. Update all callers.
472 * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
473 * system.h (SMALL_ARG_MAX): Poison.
474 * config.gcc: Don't define SMALL_ARG_MAX.
475 * config.host: Likewise.
476 * config.build: Likewise.
478 2005-12-16 Paolo Bonzini <bonzini@gnu.org>
480 * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
481 FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
482 ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
483 simplify_logical): Move simplifications that do not require
484 additional infrastructure...
485 * simplify-rtx.c (simplify_unary_operation_1,
486 simplify_binary_operation_1): ... here.
488 2005-12-16 Andreas Krebbel <krebbel1@de.ibm.com>
491 * flow.c (mark_used_dest_regs): New function.
492 (mark_used_regs): Call mark_used_dest_regs.
494 2005-12-16 Jeff Law <law@redhat.com>
496 * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
497 represent a use and definition of the same SSA_NAME.
499 2005-12-16 Jon Grimm <jgrimm2@us.ibm.com>
500 Janis Johnson <janis187@us.ibm.com>
501 Ben Elliston <bje@au.ibm.com>
503 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
504 (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
505 * target.h (struct gcc_target): Add decimal_float_supported_p.
506 * targhooks.c (default_scalar_mode_supported_p): Handle
508 * builtins.def: Add new builtins for 32, 64 and 128 bit variants
509 of inf, nan, finite, isinf and isnan.
510 * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
511 BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
512 BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
513 BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
514 BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
515 BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
516 BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
517 * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
518 Pedwarn if decimal floating point types are used. Error if
519 decimal floating point is not supported by the target.
520 (finish_declspecs): Return type from DFP typespec_word.
521 * c-typeck.c (c_common_type): Choose the decimal floating point
522 type with the greater precision when determining a common type.
523 (convert_arguments): Warn if there is a mismatch between argument
524 and prototype for decimal float types. Warn of conversions with
525 binary float types and of precision narrowing due to prototype.
526 * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
527 (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
528 (c_token_starts_declspecs): Likewise.
529 (c_parser_attributes): Likewise.
530 * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
531 RID_DFLOAT64, RID_DFLOAT128.
532 (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
533 * c-common.c (c_common_type_for_mode): Handle decimal float modes.
534 (shorten_compare): Convert DFP/BFP operands to a common type.
535 (c_common_modes_and_builtins): Register built-in decimal float
536 types if the target supports them.
537 (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
538 * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
539 inf, nan, finite, isinf and isnan builtins.
540 * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
541 (builtin_define_float_constants): Assert non-decimal radix.
542 (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
543 Call builtin_define_decimal_float_constants for each type.
544 * c-lex.c (interpret_float): Decode decimal float types from CPP_N
545 flags. Use real_from_string3, which can handle binary or decimal
547 * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
548 cts_dfloat64, cts_dfloat128.
549 * tree.c (build_common_tree_nodes_2): Add decimal float types.
550 * tree.h (enum tree_index): Add new enumeration values
551 TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
552 TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
553 (dfloat32_type_node): New macro.
554 (dfloat64_type_node, dfloat128_type_node): Likewise.
555 (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
556 (dfloat128_ptr_type_node): Likewise.
557 * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
558 bit decimal floating point types with "df", "dd" and "dl".
559 * c-format.h (enum format_lengths): Add new enumeration values
560 FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
561 * c-format.c (printf_length_specs, scanf_length_specs): Add
562 entries for H, D, DD.
563 (print_char_table, scan_char_table): Use new entries.
564 (asm_fprintf_char_table, gcc_diag_char_table,
565 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
567 * defaults.h (DECIMAL32_TYPE_SIZE): Define.
568 (DECIMAL64_TYPE_SIZE): Likewise.
569 (DECIMAL128_TYPE_SIZE): Likewise.
570 (TARGET_DEC_EVAL_METHOD): Likewise.
571 * doc/extend.texi (Decimal Float): New node.
572 (Constructing Calls): Document decimal float built-ins.
573 * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
574 * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
575 * ginclude/decfloat.h: New file.
577 2005-12-16 Alan Modra <amodra@bigpond.net.au>
579 * reload.c (find_reloads): Fix comment typo.
580 * recog.h (recog_memoized): Correct comment.
582 2005-12-16 Kazu Hirata <kazu@codesourcery.com>
584 * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
585 config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
586 reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
587 tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
588 * doc/invoke.texi, doc/tm.texi: Fix typos.
590 2005-12-16 Ben Elliston <bje@au.ibm.com>
592 * real.c (decimal_quad_format): Correct values for emin, emax.
594 2005-12-15 DJ Delorie <dj@redhat.com>
596 * config/m32c/predicates.md (m32c_psi_scale): New.
597 * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
598 * config/m32c/muldiv.md (mulpsi3): Support negative constants.
600 2005-12-16 Jan Hubicka <jh@suse.cz>
602 PR rtl-optimization/25224
603 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
606 2005-12-15 Zdenek Dvorak <dvorakz@suse.cz>
607 Steven Bosscher <stevenb@suse.de>
609 * loop-invariant.c (df): New global variable.
610 (find_defs, check_dependencies, find_invariant_insn, record_uses,
611 find_invariants_bb, find_invariants_body, find_invariants,
612 find_invariants_to_move, move_invariants, free_inv_motion_data,
613 move_single_loop_invariants, move_loop_invariants): Do not pass df in
616 2005-12-15 Jakub Jelinek <jakub@redhat.com>
618 * varasm.c (default_unique_section_1): Use special section
619 names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
621 2005-12-16 Ben Elliston <bje@au.ibm.com>
623 * doc/invoke.texi (Warning Options): Document -Walways-true being
626 2005-12-15 Joseph S. Myers <joseph@codesourcery.com>
629 * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
630 * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
631 __floatunditf): Use #error if type sizes don't match requirements
633 (__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode
634 as wider floating-point type. Use #error if type sizes don't
635 match requirements of implementation. Avoid overflow in computing
636 Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion,
637 shift one more bit. Cast 1 to DWtype or UDWtype for shifting.
638 (__floatundisf, __floatundidf): Likewise.
639 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
640 * config/ia64/ia64.c (ia64_init_libfuncs): Use
641 _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
642 TFmode-TImode conversions.
643 * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
645 2005-12-14 Craig Rodrigues <rodrigc@gcc.gnu.org>
647 * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
648 Use builtin_define_with_int_value() instead of
649 adding a new check for every new major FreeBSD version.
651 2005-12-14 Andrew Pinski <pinskia@physics.uc.edu>
653 * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
655 2005-12-15 Richard Sandiford <richard@codesourcery.com>
657 * config/arm/predicates.md (call_memory_operand): New.
658 * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
660 2005-12-15 Andrew Haley <aph@redhat.com>
662 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
663 against prev_cache_entry == NULL when moving a cache entry to the
666 2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
668 * config/mt/mt.c (mt_override_options): Require lower case
669 architectures. Revert accidental default to ms2.
670 * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
671 ENDFILE_SPEC): Require lower case architectures. Revert default
674 * doc/invoke.texi (MT Options): Rename and update.
675 * doc/md.texi (MorphoTech family): Rename and update.
677 2005-12-15 Olivier Hainque <hainque@adacore.com>
679 * stor-layout.c (layout_type): Don't complain about a too small
680 an array element type size compared to its alignment when the
683 2005-12-15 Jan Hubicka <jh@suse.cz>
686 * i386.c (classify_argument): Properly adjust offset of bitfield for
689 2005-12-15 Richard Sandiford <richard@codesourcery.com>
691 * final.c (final_scan_insn): Flip in_cold_section_p when changing
692 between the hot and cold sections. Use current_function_section
693 to get the new section.
694 * dwarf2out.c (output_line_info): Use in_cold_section_p to
695 determine whether we are assembling hot or cold code.
696 (secname_for_decl, dwarf2out_var_location): Likewise.
697 (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
698 * varasm.c (last_text_section): Delete.
699 (in_cold_section_p): New variable.
700 (hot_function_section): New function.
701 (current_function_section): Pass in_cold_section_p as the
702 reloc argument to select_section. Use it to decide between
703 unlikely_function_section and hot_function_section.
704 (assemble_start_function): Use switch_to_section. Set
705 in_cold_section_p instead of last_text_section.
706 (assemble_end_function): Use switch_to_section.
707 (switch_to_section): Don't set last_text_section.
708 * config/darwin/darwin.c (machopic_select_section): Trust the reloc
709 argument to make the right choice between hot and cold sections.
711 2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
713 Second part of MS1->MT renaming
714 * config/mt/mt.md (doloop_end): Call mt_add_loop.
715 (movqi, movhi): Call mt_set_memflags.
716 (*movdf_internal): Call mt_split_words.
717 (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
719 (cmpsi): Store to mt_compare_op[01].
720 (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
721 bungt, bunle, bunlt): Call mt_emit_cbranch.
722 (prologue): Call mt_expand_prologue.
723 (epilogu): Call mt_expend_epilogue.
724 (eh_return): Call mt_expand_eh_return.
725 (eh_epilogue): Call me_emit_eh_epilogue.
726 (conditional_trap): Store to mt_compare_op[01].
727 * config/mt/crti.asm: Adjust comment.
728 * config/mt/crtn.asm: Adjust comment.
729 * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
730 (mt_compare_op0, mt_compare_op1): Renamed.
731 (current_frame_info, zero_frame_info): Adjust type.
732 (mt_ucmpsi3_libcall): Renamed.
733 (mt_flag_delayed_branch): Renamed.
734 (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
735 (mt_nops_required, mt_nop_reasons): Renamed.
736 (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
737 mt_debug_stack, mt_print_operand_simple_address,
738 mt_print_operand_address, mt_print_operand): Renamed, adjusted.
739 (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
740 mt_function_arg_advance, mt_arg_partial_bytes,
741 mt_pass_by_reference, mt_function_arg_boundary,
742 mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
743 mt_legitimate_address_p): Renamed, adjusted.
745 (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
746 mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
747 mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p,
748 mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
749 mt_expand_eh_return, mt_emit_eh_prologue,
750 mt_handl_interrupt_attribute): Renamed, adjusted.
751 (mt_attribute_table): Renamed, adjusted.
752 (mt_initial_elimination_offset, mt_generate_compare,
753 mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
754 mt_secondary_reload_class, mt_function_value, mt_split_words,
755 mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
756 mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
757 (mt_labels): Renamed.
758 (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
759 mt_machine_reorg): Renamed, adjusted.
760 (mt_attribute_table: Renamed.
761 (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
762 TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
763 TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
764 * config/mt/mt.opt (march): Set mt_cpu_string.
765 * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
766 (TARGET_CPU_CPP_BUILTINS): Adjust.
767 (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
769 (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
770 (MT_MIN_INT): Renamed.
771 (RETURN_ADDR_RTX): Adjust.
772 (struct mt_frame_info): Renamed.
773 (current_frame_info): Adjust type.
774 (INITIAL_ELIMINATION_OFFSET): Adjust.
775 (MT_NUM_ARG_REGS): Renamed.
776 (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
777 FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
778 LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
779 GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
780 FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
781 (mt_compare_op0, mt_compare_op1): Renamed.
782 * config/mt/mt-protos.h: Rename prototypes.
784 2005-12-15 Richard Guenther <rguenther@suse.de>
786 * tree-flow.h (okay_component_ref_for_subvars): Remove.
787 (get_ref_base_and_extent): Declare.
788 * tree-dfa.c (okay_component_ref_for_subvars): Remove.
789 (get_ref_base_and_extent): New function.
790 * tree-ssa-alias.c (find_used_portions): Use it.
791 * tree-ssa-structalias.c (get_constraint_for_component_ref):
793 * tree-ssa-operands.c (get_expr_operands): Likewise.
795 2005-12-15 Paolo Bonzini <bonzini@gnu.org>
797 * combine.c: Remove force_to_mode's fourth parameter.
798 (force_to_mode): Do not handle REG.
799 (canon_reg_for_combine): New.
800 (make_field_assignment): Use it where the removed argument was non-NULL.
802 2005-12-15 Alan Modra <amodra@bigpond.net.au>
805 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
806 error_mark_node. Make alignment params unsigned.
807 * config/rs6000/rs6000-protos.h
808 (rs6000_special_round_type_align): Update prototype.
809 (rs6000_machopic_legitimize_pic_address): Remove arg names.
811 2005-12-14 Ulrich Weigand <uweigand@de.ibm.com>
813 PR rtl-optimization/25310
814 * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
815 of the eliminable register when substituting into a PLUS.
817 2005-12-14 Jakub Jelinek <jakub@redhat.com>
820 * config/i386/i386.c (ix86_force_to_memory): Always use
821 SImode push for HImode in -m32.
822 (ix86_free_from_memory): Likewise.
824 2005-12-14 Richard Sandiford <richard@codesourcery.com>
826 * gcc/config/arm/arm.md: Provide a big-endian version of the
827 (zero_extend:SI (subreg:QI ...)) splitter.
829 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
831 * struct-equiv.c (note_local_live): Handle hard regs with different
834 2005-12-14 Jeff Law <law@redhat.com>
836 * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
837 to a structure containing state rather than a pointer to bool.
838 (case ARRAY_REF): New code to handle folding some array references.
839 (case ADDR_EXPR): Note when we are processing expressions found
840 within an ADDRE_EXPR.
841 (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
842 for state variables rather than just a pointer to a boolean.
843 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
844 handling of constant string references.
846 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
848 * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
849 ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
850 ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
851 Move other tst* patterns to retain partial order.
853 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
855 * config/s390/s390.md ("d0", "1"): New mode attributes.
856 ("<shift>di3", "<shift>si3"): Merge.
857 ("*<shift>di3_and", "*<shift>si3_and"): Merge.
858 ("ashrdi3", "ashrsi3"): Merge.
859 ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
860 ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
861 ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
862 ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
863 ("*ashrdi3", "*ashrsi3"): Merge.
864 ("*ashrdi3_and", "*ashrsi3_and"): Merge.
866 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
868 * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
869 ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
870 ("*extendqidi2", "*extendqisi2") Merge.
871 ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
872 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
873 ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
874 Move some patterns to retain partial ordering.
876 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
878 * config/s390/s390.md ("atype", "length"): Rewrite.
879 ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
881 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
883 * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
885 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
887 * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
888 PARALLELs with a mode.
890 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
892 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
895 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
897 * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
899 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
903 * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
906 * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
908 2005-12-14 Jakub Jelinek <jakub@redhat.com>
912 * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
913 DECL_P, call get_section rather than get_named_section. Supply
916 2005-12-14 Ben Elliston <bje@au.ibm.com>
918 * c-common.c (c_common_truthvalue_conversion): Generalise warning
919 for addresses converted to booleans; not just function addresses.
920 * c-typeck.c (build_binary_op): Warn for address comparisons which
921 can never be NULL (eg. func == NULL or &var == NULL).
922 * common.opt (Walways-true): New option.
923 * c-opts.c (c_common_handle_option): Set it with -Wall.
924 * doc/invoke.texi: Document it.
926 2005-12-13 Paul Brook <paul@codesourcery.com>
928 * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
929 __floatunsidf, __floatunsisf, __floatunsixf): New functions.
931 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
933 * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
934 (EXTRA_MULTILIB_PARTS): Define.
936 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
938 PR rtl-optimization/20070 / part1
939 * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
940 count_or_remove_death_notes with kill == -1.
941 (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
942 registers if PROP_POST_REGSTACK is set.
943 (mark_used_reg): Likewise.
944 (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
945 REG_UNUSED notes for stack regs.
946 * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
947 to match rtx_equiv_p machinery. Change caller.
948 (outgoing_edges_match): Likewise.
949 (try_crossjump_to_edge): Use struct_equiv_block_eq
950 instead of flow_find_cross_jump.
951 * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
952 (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
953 (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
954 (STRUCT_EQUIV_MAX_LOCAL): Likewise.
955 (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
956 (insns_match_p): Update prototype.
957 (flow_find_cross_jump): Remove prototype.
958 (struct_equiv_block_eq, struct_equiv_init): Declare.
959 (rtx_equiv_p, condjump_equiv_p): Likewise.
960 * struct-equiv.c: Include reload.h.
961 (IMPOSSIBLE_MOVE_FACTOR): Define.
962 (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
963 (struct_equiv_improve_checkpoint): Likewise.
964 (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
965 (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
966 (struct_equiv_merge, find_dying_input): Likewise.
967 (resolve_input_conflict, note_local_live): Likewise.
968 (death_notes_match_p): Change parameters and processing
969 to match rtx_equiv_p machinery. Change caller.
970 (insns_match_p): Likewise.
971 (flow_find_cross_jump): Replace with:
972 (struct_equiv_block_eq).
974 Back out this change:
975 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
976 * recog.c (verify_changes): Make it static.
977 * recog.h: Remove the corresponding prototype.
979 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
981 * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
984 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
986 * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
987 (MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'.
988 * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
989 TARGET_MS1_64_001 appropriately.
990 (ms1_machine_reorg): Use TARGET_MS2.
992 2005-12-13 Jakub Jelinek <jakub@redhat.com>
996 * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
997 and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
998 Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
999 * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
1000 Set mode to SI, adjust constraints.
1001 (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
1002 * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
1005 2005-12-13 Carlos O'Donell <carlos@codesourcery.com>
1007 * c-cppbuiltin.c (builtin_define_float_constants): Add
1008 fp_cast parameter, pass to builtin_define_with_hex_fp_value.
1009 Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
1010 (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
1011 (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
1012 to "((double)%sL)" otherwise "%s".
1014 2005-12-13 Paul Brook <paul@codesourcery.com>
1016 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
1019 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
1021 * tree-flow.h: Allow compilation with a C++ compiler.
1022 (struct edge_prediction): Prefix all field names with "ep_".
1023 * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
1024 (tree_predict_edge, combine_predictions_for_bb): Likewise.
1025 (remove_predictions_associated_with_edge): Likewise.
1027 2005-12-12 Jeff Law <law@redhat.com>
1029 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1031 * passes.c (init_optimization_passes): Run reassociation again
1032 after loop optimizations.
1034 2005-12-12 Daniel Berlin <dberlin@dberlin.org>
1036 * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
1038 (optimize_stmt): Ditto.
1039 (canonicalize_comparison): New function.
1040 * tree-ssa-operands.c (swap_tree_operands): Make external.
1041 (get_expr_operands): Stop auto-canonicalization.
1042 * tree-ssa-reassoc.c: Rewrite.
1043 (init_optimization_passes):
1044 * tree-flow.h (swap_tree_operands): Prototype.
1045 * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
1047 2005-12-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1049 * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
1050 indicate function epilogue has been output.
1051 (pa_asm_output_mi_thunk): Likewise.
1052 (output_deferred_plabels): Put plabels in readonly data section when
1053 not generating PIC code.
1054 (som_output_text_section_asm_op): Use .NSUBSPA to output debug
1055 information. Add assert.
1056 (som_output_comdat_data_section_asm_op): New function.
1057 (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
1058 instead of output_section_asm_op for COMDAT sections.
1060 2005-12-12 J"orn Rennecke <joern.rennecke@st.com>
1062 * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
1063 Fix whitespace in vincinity of to-be-installed changes.
1064 * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
1065 (insns_match_p): Likewise.
1067 2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
1069 * config.gcc (ms1): Replace with ...
1071 * config/ms1: Rename to ...
1072 * config/mt: ... here. Rename ms1 files to mt.
1073 * config/mt/mt.c: Adjust gt-mt.h #include.
1074 * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
1075 (crti.o, crtn.o): Adjust file names.
1077 2005-12-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
1079 * varray.h: Allow compilation with a C++ compiler.
1080 (union varray_data_tag): Prefix all field names with "vdt_".
1081 (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
1082 VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
1083 VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
1084 VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
1085 VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
1086 VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
1087 (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
1088 VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT,
1089 VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT,
1090 VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR,
1091 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR,
1092 VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE,
1093 VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB,
1094 VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
1095 (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT,
1096 VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT,
1097 VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT,
1098 VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR,
1099 VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX,
1100 VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP,
1101 VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE,
1102 VARRAY_TOP_TREE_PTR): Likewise.
1103 * varray.c (varray_grow): Likewise.
1104 (varray_clear): Likewise.
1106 2005-12-12 Alan Modra <amodra@bigpond.net.au>
1109 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
1110 alignment to doubleword if the first field is a double array.
1111 * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
1113 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1115 * tree-ssa-structalias.c (process_constraint): Remove code to
1116 transform addressofs into scalar.
1117 (create_variable_info_for): In whole-program IPA, globals don't
1118 point to ANYTHING by default.
1120 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1122 * timevar.def (TV_IPA_PTA): New.
1123 * tree-pass.h (pass_ipa_pta): New
1124 * tree-ssa-structalias.c: Include cgraph.h
1126 (predbitmap_obstack): New.
1127 (EXECUTE_IF_IN_NONNULL_BITMAP): New.
1128 (struct constraint_stats): Add num_edges.
1129 (new_var_info): Don't call bitmap_clear.
1130 (struct constraint_edge): Update docs.
1131 (new_constraint_edge): Remove src param.
1132 (struct constraint_graph): Add zero_weight_succs,
1133 zero_weight_preds. Update docs.
1134 (constraint_expr_equal): Reformat.
1135 (constraint_edge_equal): Update for removal of src.
1136 (constraint_edge_less): Ditto.
1137 (constraint_edge_vec_find): Ditto.
1138 (erase_graph_self_edge): Update for removal of src and and zero
1140 (clear_edges_for_node): Ditto.
1141 (add_graph_edge): Ditto.
1142 (get_graph_weights): Ditto.
1143 (allocate_graph_weights): Ditto.
1144 (merge_graph_nodes): Ditto.
1145 (int_add_graph_edge): Ditto.
1146 (valid_graph_edge): Ditto.
1147 (valid_weighted_graph_edge): Ditto.
1148 (build_constraint_graph): Ditto.
1150 (collapse_nodes): Ditto.
1151 (process_unification_queue): Ditto.
1152 (topo_visit): Ditto.
1153 (solve_graph): Ditto.
1154 (do_structure_copy): Ditto.
1155 (perform_var_substitution): Ditto.
1156 Init and release obstack.
1157 (handle_ptr_arith): Try to resolve directly.
1158 (find_func_aliases): Don't call update_alias_info here
1159 Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
1160 (do_sd_constraint): Add code for propagating faster.
1162 (do_ds_constraint): Ditto.
1163 (count_num_arguments): New function.
1164 (create_function_info_for): Ditto.
1165 (create_variable_info_for): Handle FUNCTION_DECL.
1166 (intra_create_variable_infos): Use make_constraint_to_anything.
1167 (init_alias_vars): Init obstacks here.
1168 (need_to_solve): Handle zero weight graph changes.
1169 (compute_points_to_sets): Call update_alias_info here.
1170 (delete_points_to_sets): Free zero weight preds/succs here.
1171 (gate_ipa_pta): New.
1172 (ipa_pta_execute): New
1174 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1176 * tree-ssa-structalias.c (var_anyoffset): Removed.
1177 (anyoffset_tree): Ditto.
1178 (anyoffset_id): Ditto.
1179 (do_deref): Take vector of constraints, no return value.
1180 Update to work on vector.
1181 (get_constraint_for): Ditto.
1182 (get_constraint_for_component_ref): Ditto.
1183 (do_structure_copy): Ditto.
1184 (handle_ptr_arith): Ditto.
1185 (find_func_aliases): Ditto.
1186 (set_uids_in_ptset): Remove anyoffset handling.
1187 (init_base_vars): Ditto.
1189 2005-12-10 Mark Mitchell <mark@codesourcery.com>
1192 * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
1193 DECL_EXTERNAL functions have no bodies. Tidy.
1195 2005-12-10 Andreas Schwab <schwab@suse.de>
1197 * except.c (switch_to_exception_section): Only define if
1198 TARGET_UNWIND_INFO is not defined.
1200 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1202 * config/darwin.h (HAS_INIT_SECTION): Remove definition.
1203 (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
1205 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1207 * output.h (init_section, fini_section): Delete.
1208 * varasm.c (init_section, fini_section): Delete.
1209 (init_varasm_once): Don't initialize them.
1210 * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
1211 there are no corresponding varasm.c variables.
1213 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1215 * dwarf2out.c (default_eh_frame_section): Delete, moving handling
1216 of EH_FRAME_SECTION_NAME into...
1217 (switch_to_eh_frame_section): ...here. Try to set eh_frame_section
1218 if it is still null.
1219 * except.c (default_exception_section): Delete, moving most
1221 (switch_to_exception_section): ...this new function. Set
1222 exception_section if it is still null, then switch to it.
1223 (output_function_exception_table): Use switch_to_exception_section.
1224 * varasm.c (exception_section, eh_frame_section): Update comments.
1225 (get_section): Hoist use of SECTION_NAMED.
1226 (init_varasm_once): Don't set exception_section and eh_frame_section.
1227 * output.h (default_exception_section): Delete.
1228 (default_eh_frame_section): Delete.
1230 2005-12-09 Bernd Schmidt <bernd.schmidt@analog.com>
1232 * config/bfin/bfin.c: Include "cgraph.h".
1233 (bfin_load_pic_reg): Omit loading pic reg if in a local function.
1234 Return the reg that holds the pointer to the GOT.
1235 (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
1236 doing stack checking.
1238 2005-12-09 Diego Novillo <dnovillo@redhat.com>
1240 * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
1241 recompute_tree_invarant_for_addr_expr.
1242 Update uses everywhere.
1244 2005-12-09 Aldy Hernandez <aldyh@redhat.com>
1246 * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
1247 (MULTILIB_DIRNAMES): Define.
1249 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
1252 * config/s390/s390.c (struct s390_address): New field literal_pool.
1253 (s390_decompose_address): Compute literal_pool field. Do not
1254 assume register %r13 is always (and solely) used as pool base.
1255 (s390_extra_constraint_str): Use literal_pool field.
1257 2005-12-09 Thiemo Seufer <ths@networkno.de>
1259 * config/mips/mips.c (override_options): Don't allow too small
1260 integers in FP registers.
1262 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
1264 * config/s390/s390.c (s390_function_ok_for_sibcall): Use
1265 targetm.binds_local_p to check for local function calls.
1267 2005-12-09 Alan Modra <amodra@bigpond.net.au>
1270 * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
1271 call_used_regs can't be used to save reg in another reg.
1273 2005-12-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1274 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
1276 * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
1278 * except.c (output_ttype): Likewise.
1279 * tree-object-size.c (collect_object_sizes_for): Likewise.
1280 (check_for_plus_in_loops_1): Likewise.
1281 (check_for_plus_in_loops): Likewise.
1282 (compute_object_sizes): Use gcc_unreachable instead of abort.
1284 2005-12-08 Nathan Sidwell <nathan@codesourcery.com>
1286 * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
1287 (loop_end, loop_init, doloop_end): New insns.
1288 * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
1289 (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
1290 (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1291 (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
1292 * config/ms1/ms1.c: #include basic-block.h
1293 (struct machine_function): Add has_loops field.
1294 (ms1_add_loop): New.
1295 (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
1296 (struct loop_info, struct loop_work): New.
1297 (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
1298 (ms1_reorg_loops): New loop optimization.
1299 (ms1_machine_reorg): Call it.
1300 * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
1302 2005-12-08 Zdenek Dvorak <dvorakz@suse.cz>
1304 PR tree-optimization/25248
1305 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
1306 evolution_of_loop from the failed attempt. Remove handling
1309 2005-12-08 Gabriel Dos Reis <gdr@integrable-solutions.net>
1311 * tree.h (DECL_EXTERNAL): Clarify documentation.
1313 2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com>
1314 Jakub Jelinek <jakub@redhat.com>
1317 * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
1318 argument. Don't drop outer ANDs.
1319 (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
1320 * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
1322 * config/s390/predicates.md (setmem_operand): Remove.
1323 (shift_count_operand): Rename to...
1324 (shift_count_or_setmem_operand): ... this. Adjust
1325 s390_decompose_shift_count caller.
1326 * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
1327 ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
1328 ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
1329 <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
1330 rotl<mode>3_and, setmem_long_and): New insns.
1331 (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
1332 ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
1333 <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
1334 <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
1335 of shift_count_operand.
1336 (setmem_long): Use shift_count_or_setmem_operand instead of
1339 2005-12-08 Daniel Jacobowitz <dan@codesourcery.com>
1340 Andreas Tobler <a.tobler@schweiz.ch>
1342 * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
1345 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1347 * expr.c (force_operand): Use convert_to_mode for conversions.
1349 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1351 * reload.h (reg_equiv_invariant): Declare.
1352 * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
1353 register also when reg_equiv_invariant[R] is set.
1355 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1356 Andreas Tobler <a.tobler@schweiz.ch>
1358 * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
1360 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
1362 * tree-ssa-pre.c (bitmap_set_and): New function.
1363 (bitmap_set_and_compl): New function.
1364 (bitmap_set_empty_p): New function.
1365 (insert_extra_phis): New function.
1366 (compute_avail): Use insert_extra_phis.
1368 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
1370 * config/s390/s390.c (s390_expand_atomic): New function.
1371 Adjust comment of helper functions.
1372 * config/s390/s390-protos.h (s390_expand_atomic): Declare.
1373 * config/s390/s390.md ("ATOMIC"): New code macro.
1374 ("atomic"): Corresponding new code attribute.
1375 ("sync_lock_test_and_set[hq]i",
1376 "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
1378 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
1380 * config/s390/s390.c (s390_expand_mask_and_shift,
1381 struct alignment_context, init_alignment_context,
1382 s390_expand_cs_hqi): New.
1383 * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
1384 * config/s390/s390.md ("sync_compare_and_swaphi",
1385 "sync_compare_and_swapqi"): New pattern.
1387 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
1389 Fix PR tree-optimization/25291
1390 * tree-ssa-operands.c (add_call_clobber_ops): Remove
1391 redundant and crashing check.
1393 2005-12-08 Alan Modra <amodra@bigpond.net.au>
1396 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
1397 tests further when !strict && reload_in_progress.
1398 (print_operand): Check that both operands of indexed address are regs.
1399 (print_operand_address): Likewise.
1400 * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
1401 (INT_REG_OK_FOR_BASE_P): Correct.
1403 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1405 Preparation for PR rtl-optimization/20070 / part1
1406 * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1407 * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1408 outgoing_edges_match.
1409 (outgoing_edges_match): Use condjump_equiv_p.
1410 (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
1412 * struct-equiv.c: New file.
1413 (death_notes_match_p) New function, broken out of insns_match_p.
1414 * Makefile.in (OBJS-common): Add struct-equiv.o.
1415 (struct-equiv.o): New target.
1417 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1419 * coretypes.h: Revert previous change.
1420 * config/darwin.h: Revert previous reversion.
1421 * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
1423 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1425 * coretypes.h (section): Provide dummy definition for target files.
1426 * config/darwin.h: Revert previous change.
1428 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1430 * doc/sourcebuild.texi (all.build, install-normal): Remove.
1431 * configure.ac: Remove all.build and install-normal from target_list
1432 * configure: Regenerate.
1433 * Makefile.in (install): Don't depend on install-normal.
1435 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1437 * Makefile.in: Document the use of stamps.
1439 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1441 * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1442 * Makefile.in: Add code to compute some dependencies on s-gtype
1443 automatically. Remove the declaration of those dependencies.
1445 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1447 * gcc/reload.c (push_secondary_reload): Fix typo:
1448 s/insn_constraint/scratch_constraint/.
1450 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1452 * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1454 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1456 * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1457 (alpha_elf_select_rtx_section): Return the selected section rather
1458 than emitting assembly code.
1459 (alpha_write_linkage): Emit a ".link" directive directly and then
1460 set in_section to NULL.
1461 (vms_asm_out_constructor): Use switch_to_section.
1462 (vms_asm_out_destructor): Likewise.
1463 (unicosmk_output_common): Set in_section to NULL instead of calling
1464 the dummy common_section function.
1465 (unicosmk_text_section): Delete in favor of...
1466 (unicosmk_output_text_section_asm_op): ...this new function.
1467 (unicosmk_data_section): Delete in favor of...
1468 (unicosmk_output_data_section_asm_op): ...this new function.
1469 (unicosmk_init_sections): New function.
1470 (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1471 (unicosmk_output_ssib): Set in_section to NULL instead of calling
1472 the dummy ssib_section function.
1473 (unicosmk_section_buf): Delete.
1474 * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1475 (unicosmk_data_section): Delete.
1476 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1477 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1478 (SECTION_FUNCTION_TEMPLATE): Delete.
1479 * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1480 (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1481 (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1482 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1483 (TARGET_ASM_INIT_SECTIONS): Define.
1484 * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1485 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1486 (link_section, literals_section): Delete.
1487 (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1488 set in_section to NULL.
1490 * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1491 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1492 (COMMON_SECTION): Delete.
1493 (TARGET_ASM_INIT_SECTIONS): Define.
1494 (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1495 the dummy common_section function.
1496 * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1497 * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1498 between readonly_data_section and text_section to check whether
1499 read-only data is being put in the text section.
1500 (arm_output_function_epilogue): Use switch_to_section.
1501 (arm_elf_asm_constructor): Likewise.
1502 (thumb_call_via_reg): Replace call to in_text_section with
1503 a comparison between in_section and text_section.
1504 (arm_file_end): Use switch_to_section.
1505 (aof_text_section): Delete in favor of...
1506 (aof_output_text_section_asm_op): ...this new function.
1507 (aof_data_section): Delete in favor of...
1508 (aof_output_data_section_asm_op): ...this new function.
1509 (aof_asm_init_sections): New function.
1510 (zero_init_section): Moved from config/arm/aof.h.
1511 (aof_dump_imports, aof_file_start): Use switch_to_section.
1512 * config/arm/arm.h (thumb_call_via_label): Update comment.
1513 * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1514 (common_section): Delete.
1515 * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1516 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1517 global switch_to_section function instead of the old port-local one.
1518 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1519 (SWITCH_TO_SECTION_FUNCTION): Delete.
1520 (drectve_section): Redefine as a macro.
1521 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1522 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1525 * config/avr/avr.c (progmem_section): New variable.
1526 (avr_output_progmem_section_asm_op): New function.
1527 (avr_asm_init_sections): New function.
1528 (avr_output_addr_vec_elt): Use switch_to_section.
1529 * config/avr/avr.h (progmem_section): Declare.
1530 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1531 (READONLY_DATA_SECTION): Delete.
1532 (TARGET_ASM_INIT_SECTIONS): Define.
1533 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1534 * config/avr/avr-protos.h (progmem_section): Delete.
1536 * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1538 * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1539 (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
1541 * config/darwin-sections.def: New file.
1542 * config/darwin.c: Define all sections in darwin-sections.def.
1543 (output_objc_section_asm_op, darwin_init_sections): New functions.
1544 (machopic_output_indirection): Use switch_to_section.
1545 (machopic_select_section): Return the selected section rather than
1546 emitting assembly code. Replace the static function table with
1547 inline conditional expressions. Update the tests of last_text_section
1548 and move them into the FUNCTION_DECL block.
1549 (machopic_select_rtx_section): Return the selected section rather than
1550 emitting assembly code.
1551 (machopic_asm_out_constructor, machopic_asm_out_destructor)
1552 (darwin_file_end): Use switch_to_section.
1553 * config/darwin.h: Use darwin-sections.def to declare sections.
1554 (INIT_SECTION_ASM_OP): Remove empty definition.
1555 (HAS_INIT_SECTION): Define this instead.
1556 (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1557 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1558 (TARGET_ASM_EH_FRAME_SECTION): Delete.
1559 (TARGET_ASM_INIT_SECTIONS): Define.
1560 * config/darwin-protos.h (darwin_init_sections): Declare.
1561 (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
1562 (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
1563 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1564 (constructor_section, destructor_section, mod_init_section): Delete.
1565 (mod_term_section): Delete.
1566 (darwin_exception_section, darwin_eh_frame_section): Delete.
1567 (machopic_select_section): Return a section.
1568 (machopic_select_rtx_section): Likewise.
1569 (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
1570 (const_section, const_coal_section, const_data_section): Delete.
1571 (const_data_coal_section, data_coal_section, cstring_section): Delete.
1572 (literal4_section, literal8_section, constructor_section): Delete.
1573 (mod_init_section, mod_term_section, destructor_section): Delete.
1574 (objc_class_section, objc_meta_class_section, objc_category_section)
1575 (objc_class_vars_section, objc_instance_vars_section): Delete.
1576 (objc_cls_meth_section, objc_inst_meth_section): Delete.
1577 (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
1578 (objc_selector_refs_section, objc_selector_fixup_section): Delete.
1579 (objc_symbols_section, objc_module_info_section): Delete.
1580 (objc_image_info_section, objc_protocol_section): Delete.
1581 (objc_string_object_section, objc_constant_string_object_section)
1582 (objc_class_names_section, objc_meth_var_names_section): Delete.
1583 (objc_meth_var_types_section, objc_cls_refs_section): Delete.
1584 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1585 (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
1586 (darwin_exception_section, darwin_eh_frame_section): Delete.
1587 * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
1589 * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
1590 (frv_asm_out_destructor): Likewise.
1591 * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1592 (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
1593 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
1595 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1596 * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
1597 (data_section): Delete.
1599 * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1600 (DRECTVE_SECTION_FUNCTION): Delete.
1601 (drectve_section): Redefine as a macro that sets in_section after
1602 emitting the directive.
1603 (SWITCH_TO_SECTION_FUNCTION): Delete.
1604 * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
1605 in_text_section with comparison between in_section and text_section.
1606 * config/i386/i386.c (x86_64_elf_select_section): Return the section
1607 rather than emitting assembly code. Use get_named_section.
1608 (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
1610 (machopic_output_stub): Use switch_to_section.
1611 * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
1612 (nwld_named_section_asm_out_destructor): Use get_section and
1615 * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
1616 rather than emitting assembly code.
1617 (ia64_rwreloc_select_section): Likewise.
1618 (ia64_rwreloc_select_rtx_section): Likewise.
1619 * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
1620 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
1622 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1623 (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
1625 * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
1626 section rather than emitting assembly code.
1627 (iq2000_select_section): Likewise.
1628 * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
1629 (sbss_section): Delete.
1631 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
1632 and get_named_section.
1633 * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
1635 * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
1636 (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
1637 (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
1638 (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
1640 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1641 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1642 global switch_to_section function instead of the old port-local one.
1643 * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1644 (SWITCH_SECTION_FUNCTION): Delete.
1645 * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
1646 (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
1647 (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
1648 (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
1650 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1651 global switch_to_section function instead of the old port-local one.
1652 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1654 * config/mips/mips.c (mips_file_start): Update comment.
1655 (mips_output_aligned_bss): Use switch_to_section and get_named_section.
1656 (mips_output_aligned_decl_common): Use switch_to_section.
1657 (mips_select_rtx_section): Return the section rather than emitting
1658 assembly code. Use get_named_section.
1659 (mips_function_rodata_section: Likewise get_section.
1660 (build_mips16_function_stub): Use switch_to_section.
1661 * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
1662 (SDATA_SECTION_ASM_OP): Delete.
1663 * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
1664 (EXTRA_SECTION_FUNCTIONS): Delete.
1666 * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
1667 (mmix_asm_output_aligned_local): Use switch_to_section.
1669 * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
1670 (som_one_only_readonly_data_section): New variables.
1671 (pa_output_function_epilogue): Set in_section to NULL instead of
1672 calling forget_section.
1673 (output_deferred_plabels): Use select_section.
1674 (pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead
1675 of calling forget_section.
1676 (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
1677 (pa_asm_output_aligned_local): Use select_section.
1678 (som_text_section_asm_op): Delete in favor of...
1679 (som_output_text_section_asm_op): ...this new function.
1680 (pa_som_asm_init_sections): New function.
1681 (pa_select_section): Return the section rather than emitting
1683 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1684 (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
1685 (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
1686 (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
1687 * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
1688 (som_readonly_data_section, som_one_only_readonly_data_section)
1689 (som_one_only_data_section, forget_section): Delete.
1690 * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
1691 (TARGET_ASM_INIT_SECTIONS): Define.
1692 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1694 * config/rs6000/rs6000.c (read_only_data_section): New variable.
1695 (private_data_section, read_only_private_data_section): New variables.
1696 (sdata2_section, toc_section): New variables.
1697 (rs6000_file_start): Use switch_to_section.
1698 (rs6000_assemble_integer): Use comparisons against in_section
1699 instead of calling in_toc_section and in_text_section. Use
1700 unlikely_text_section_p.
1701 (rs6000_elf_output_toc_section_asm_op): New function, derived
1702 from the old rs6000/sysv4.h toc_section function.
1703 (rs6000_elf_asm_init_sections): New function.
1704 (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
1705 the section rather than emitting assembly code.
1706 (machopic_output_stub): Use switch_to_section.
1707 (toc_section): Delete dummy function.
1708 (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
1709 switch_to_section and get_section.
1710 (rs6000_xcoff_output_readonly_section_asm_op): New function.
1711 (rs6000_xcoff_output_readwrite_section_asm_op): New function.
1712 (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
1713 the old rs6000/xcoff.h toc_section function.
1714 (rs6000_xcoff_asm_init_sections): New function.
1715 (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
1716 the section rather than emitting assembly code.
1717 (rs6000_xcoff_file_start): Use switch_to_section.
1718 (rs6000_xcoff_file_end): Likewise.
1719 * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
1720 (sdata2_section, sbss_section, private_data_section): Delete.
1721 (read_only_data_section, read_only_private_data_section): Delete.
1722 * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1723 (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
1724 (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
1725 (FINI_SECTION_FUNCTION): Delete.
1726 (TARGET_ASM_INIT_SECTIONS): Define.
1727 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1728 * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1729 (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
1730 (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
1731 (READONLY_DATA_SECTION): Delete.
1732 (TARGET_ASM_INIT_SECTIONS): Define.
1733 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section
1734 to NULL rather than no_section.
1735 (TARGET_ASM_EXCEPTION_SECTION): Delete.
1737 * config/sh/sh.c (sh_file_start): Use switch_to_section.
1739 * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
1740 (sparc_output_deferred_case_vectors): Likewise. Remove argument
1741 from call to current_function_section.
1743 * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
1744 (bss100_section): New variable.
1745 (xstormy16_asm_output_aligned_common): Use switch_to_section.
1746 (xstormy16_asm_init_sections): New function.
1747 (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
1748 switch_to_section and get_section.
1749 (xstormy16_output_addr_vec): Use switch_to_section. Remove argument
1750 from calls to current_function_section.
1751 * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
1752 (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
1753 (TARGET_ASM_INIT_SECTIONS): Define.
1754 * config/stormy16/stormy16-protos.h (bss100_section): Delete.
1756 * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1757 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
1758 (FINI_SECTION_FUNCTION): Delete.
1760 * config/v850/v850.c: Include gt-v850.h.
1761 (rosdata_section, rozdata_section, tdata_section, zdata_section)
1762 (zbss_section): New variables.
1763 (v850_output_aligned_bss): Use switch_to_section.
1764 (v850_asm_init_sections): New function.
1765 (v850_select_section): Return the section rather than emitting
1767 * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1768 (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
1769 (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
1770 (TARGET_ASM_INIT_SECTIONS): Define.
1771 * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
1772 (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
1773 (zbss_section): Delete.
1775 * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1777 * config/vx-common.h (vxworks_exception_section): Delete.
1778 (TARGET_ASM_EXCEPTION_SECTION): Delete.
1780 * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
1781 section rather than emitting assembly code.
1782 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
1785 * Makefile.in (GTFILES): Add $(srcdir)/output.h.
1786 * coretypes.h (section): New union and typedef.
1787 * dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument
1788 from call to current_function_section.
1789 (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
1790 (dbxout_symbol_location): Use switch_to_section.
1791 * dwarf2out.c (named_section_eh_frame_section): Delete, moving
1792 most of the code into...
1793 (default_eh_frame_section): ...here. Return a section.
1794 (collect2_eh_frame_section): Delete, moving most of the code into..
1795 (switch_to_eh_frame_section): ...this new function.
1796 (debug_info_section, debug_abbrev_section, debug_aranges_section)
1797 (debug_macinfo_section, debug_line_section, debug_loc_section)
1798 (debug_pubnames_section, debug_str_section, debug_ranges_section): New
1800 (output_call_frame_info): Call switch_to_eh_frame_section instead of
1801 eh_frame_section. Use switch_to_section and get_section.
1802 (dwarf2out_begin_prologue): Use switch_to_section.
1803 (AT_string_form): Check the flags in debug_str_section instead of
1804 DEBUG_STR_SECTION_FLAGS.
1805 (output_comp_unit): Use switch_to_section, get_section, and
1807 (output_line_info, secname_for_decl): Use unlikely_text_section_p.
1808 (dwarf2out_begin_block): Use switch_to_section. Remove argument
1809 from call to current_function_section.
1810 (dwarf2out_var_location): Use unlikely_text_section_p.
1811 (dwarf2out_source_line): Use switch_to_section. Remove argument
1812 from call to current_function_section.
1813 (dwarf2out_start_source_file, dwarf2out_end_source_file)
1814 (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
1815 debug_macinfo_section.
1816 (dwarf2out_init): Initialize the new section variables. Use them
1817 instead of calls to named_section_flags. Use switch_to_section.
1818 (output_indirect_string): Use switch_to_section and debug_str_section.
1819 (dwarf2out_finish): Use switch_to_section and the new section
1821 * except.c (default_exception_section): Return the section instead
1822 of emitting assembly code.
1823 (output_function_exception_table): Use the global exception_section
1824 variable instead of the target hook. Use switch_to_section. Remove
1825 argument from call to current_function_section.
1826 * final.c (HAVE_READONLY_DATA_SECTION): Delete.
1827 (shorten_branches): Use pointer comparisons to detect whether the
1828 text section is the same as readonly_data_section.
1829 (profile_function): Use switch_to_section. Remove argument from
1830 call to current_function_section.
1831 (final_scan_insn): Likewise. Update use of last_text_section.
1832 * gengtype.c (open_base_files): Add an include of output.h.
1833 * output.h (text_section, data_section, readonly_data_section)
1834 (ctors_section, dtors_section, bss_section, init_section)
1835 (fini_section, sdata_section): Turn into section pointers.
1836 (in_text_section, in_unlikely_text_section, exports_section)
1837 (drectve_section, named_section, mergeable_string_section)
1838 (last_text_section_name): Delete.
1839 (default_exception_section, default_eh_frame_section): Return sections.
1840 (SECTION_DECLARED, SECTION_NAMED): New macros.
1841 (SECTION_MACH_DEP): Bump value.
1842 (section_common, named_section, unnamed_section): New structures.
1843 (unnamed_section_callback): New typedef.
1844 (section): New union.
1845 (sbss_section, exception_section, eh_frame_section): New variables.
1846 (in_section, last_text_section): Turn into section pointers.
1847 (get_unnamed_section, get_section, get_named_section): New functions.
1848 (mergeable_constant_section, function_section): Return a section.
1849 (unlikely_text_section): Likewise.
1850 (current_function_section): Likewise. Remove the decl argument.
1851 (unlikely_text_section_p, switch_to_section): New functions.
1852 (output_section_asm_op): New function.
1853 (set_named_section_flags, named_section_flags, named_section_real)
1854 (named_section_first_declaration): Delete.
1855 (default_select_section, default_elf_select_section): Return a section.
1856 (default_elf_select_section_1, default_function_rodata_section)
1857 (default_no_function_rodata_section, default_select_rtx_section)
1858 (default_elf_select_rtx_section): Likewise.
1859 * rtl.h (in_data_section): Delete.
1860 * sdbout.c (sdbout_one_type): Use switch_to_section.
1861 * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
1862 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
1863 (TARGET_ASM_EH_FRAME_SECTION): Poison.
1864 * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
1865 (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
1866 (TARGET_ASM_OUT): Update after above changes.
1867 * target.h (init_sections): New hook.
1868 (exception_section, eh_frame_section): Delete.
1869 (select_section, select_rtx_section, function_rodata_section): Return
1870 a section rather than emitting assembly code.
1871 * varasm.c (text_section, data_section, readonly_data_section)
1872 (ctors_section, dtors_section, bss_section, init_section)
1873 (fini_section): Turn into section pointers.
1874 (sdata_section, sbss_section, exception_section): New variables.
1875 (eh_frame_section): New variable.
1876 (in_section): Make global and turn into a section pointer.
1877 (last_text_section): Turn into a section pointer.
1878 (unnamed_sections): New variable.
1879 (in_named_name, last_text_section_name): Delete.
1880 (EXTRA_SECTION_FUNCTIONS): Delete.
1881 (in_named_entry): Delete.
1882 (section_htab): New variable, replacing...
1883 (in_named_htab): ...this deleted variable.
1884 (section_entry_eq, section_entry_hash): New functions, based on...
1885 (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
1886 (get_unnamed_section, get_section): New functions.
1887 (unlikely_text_section): Return a section instead of emitting
1889 (in_text_section, in_unlikely_text_section, in_data_section): Delete.
1890 (get_named_section_flags, named_section_first_declaration): Delete.
1891 (unlikely_text_section_p): New function.
1892 (named_section_real, named_section): Delete.
1893 (get_named_section): New function.
1894 (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
1895 (function_section): Return a section rather than emitting
1897 (current_function_section): Likewise. Remove argument. Use
1898 last_text_section if nonnull, otherwise use function_section.
1899 (default_function_rodata_section): Return a section rather than
1900 emitting assembly code. Use get_section.
1901 (default_no_function_rodata_section): Return a section rather than
1902 emitting assembly code.
1903 (variable_section): Use switch_to_section and get_named_section.
1904 (mergeable_string_section): Return a section rather than emitting
1905 assembly code. Use get_section. Make static. Don't take special
1906 countermeasures for empty strings.
1907 (mergeable_constant_section): Return a section rather than emitting
1908 assembly code. Use get_section.
1909 (default_named_section_asm_out_destructor): Use switch_to_section
1911 (default_dtor_section_asm_out_destructor): Use switch_to_section.
1912 (default_named_section_asm_out_constructor): Use switch_to_section
1914 (default_ctor_section_asm_out_constructor): Use switch_to_section.
1915 (assemble_start_function): Likewise. Set last_text_section to
1916 NULL rather than no_section. Change the type of save_section.
1917 (assemble_zeros, assemble_variable): Use the section flags to detect
1918 whether or not a section is text.
1919 (assemble_static_space): Use switch_to_section.
1920 (assemble_trampoline_template): Likewise.
1921 (output_constant_def_contents): Use switch_to_section and
1923 (output_constant_pool_1): Use switch_to_section. Use the section
1924 flags to see whether sections contain mergeable data.
1925 (init_varasm_once): Initialize section_htab instead of in_named_htab.
1926 Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS.
1927 (default_elf_asm_named_section): Use SECTION_DECLARED to detect
1928 whether a section has already been declared.
1929 (default_select_section, default_elf_select_section): Return a
1930 section rather than emitting assembly code.
1931 (default_elf_select_section_1): Likewise. Use bss_section for
1932 SECCAT_BSS if nonnull. Use get_named_section.
1933 (default_select_rtx_section): Return a section rather than
1934 emitting assembly code.
1935 (default_elf_select_rtx_section): Likewise. Use get_named_section.
1936 (file_end_indicate_exec_stack): Use switch_to_section and get_section.
1937 (output_section_asm_op, switch_to_section): New functions.
1938 * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
1941 * doc/tm.texi: Expand the introduction to the sections documentation.
1942 (TRAMPOLINE_SECTION): Document new interface.
1943 (SDATA_SECTION_ASM_OP): Document new macro.
1944 (READONLY_DATA_SECTION): Delete.
1945 (SDATA_SECTION_ASM_OP): Document new macro.
1946 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1947 (TARGET_ASM_INIT_SECTIONS): Document new hook.
1948 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
1949 (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
1950 (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
1952 2005-12-07 Alan Modra <amodra@bigpond.net.au>
1954 * gcc.c (init_gcc_specs): Match braces inside conditionally
1957 2005-12-06 Geoffrey Keating <geoffk@apple.com>
1959 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
1961 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
1964 * tree.c (integer_all_onesp): Always return true if all bits on.
1966 * testsuite/g++.dg/init/array0.C: New.
1968 2005-12-06 Adrian Straetling <straetling@de.ibm.com>
1970 * doc/md.texi: Adapt to implementation.
1972 2005-12-06 Andreas Schwab <schwab@suse.de>
1974 * opts.c (decode_options): Fix typo in message.
1976 2005-12-06 Alan Modra <amodra@bigpond.net.au>
1979 * longlong.h: Merge PPC tests from upstream.
1981 2005-12-06 Richard Guenther <rguenther@suse.de>
1983 * fold-const.c (fold_convert): Do not build and fold
1984 CONVERT_EXPR, but always use NOP_EXPR.
1986 2005-12-06 Jan Beulich <jbeulich@novell.com>
1988 * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
1989 __builtin_ia32_paddq and __builtin_ia32_subq.
1990 (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
1991 __builtin_ia32_pshufw.
1992 * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
1994 2005-12-05 James E Wilson <wilson@specifix.com>
1997 * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
2000 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
2002 * print-tree.c (print_node): Ditto.
2003 * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
2004 * tree-dump.c (dequeue_and_dump): Check for decl_common structure
2005 before accessing DECL_ARTIFICIAL.
2006 Handle new tag tree codes.
2007 * tree-flow-inline.h (clear_call_clobbered): Update for tag
2009 (unmodifiable_var_p): Ditto.
2010 * tree-flow.h (mem_tag_kind): Remove.
2011 (struct var_ann_d): Remove mem_tag_kind member.
2012 * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
2013 * tree-pretty-print.c (dump_generic_node): Handle memory tags.
2014 * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
2015 (group_aliases): Ditto.
2016 (setup_pointers_and_addressables): Ditto.
2017 (is_escape_site): Ditto.
2018 (may_alias_p): Ditto.
2019 (create_tag_raw): New function.
2020 (create_memory_tag): Use it.
2021 (dump_alias_info): Update for tags.
2022 (may_be_aliased): Ditto.
2023 (add_type_alias): Ditto.
2024 (new_type_alias): Ditto.
2025 (create_sft): Ditto.
2026 (create_structure_vars): Ditto.
2027 * tree-ssa-ccp.c (get_default_value): Ditto.
2028 * tree-ssa-operands.c (get_expr_operands): Ditto.
2029 (add_stmt_operand): Ditto.
2030 (add_call_clobber_ops): Remove duplicated condition.
2031 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
2033 * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
2034 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2035 * tree.c (init_ttree): Update structures for new tree codes.
2036 (tree_code_size): Update sizes for new tree codes.
2037 (make_node_stat): Don't try to set common things on minimal
2039 (tree_node_structure): Update for tags.
2040 (is_global_var): Ditto.
2041 * tree.def: Add new tree codes.
2042 * tree.h (MTAG_P): New macro.
2043 (TREE_MEMORY_TAG_CHECK): Ditto.
2044 (SSA_VAR_P): Update for tags.
2045 (struct tree_memory_tag): New structure.
2046 (MTAG_GLOBAL): New macro.
2047 (union tree_node): Add memory tag member.
2048 * treestruct.def (TS_MEMORY_TAG): New.
2050 2005-12-05 Dale Johannesen <dalej@apple.com>
2052 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
2053 what was approved (PR 24323).
2055 2005-12-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
2057 * doc/c-tree.texi (Function Bodies): Remove description of
2060 2005-12-05 Joseph S. Myers <joseph@codesourcery.com>
2062 * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
2063 __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
2064 __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
2065 __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
2066 __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
2067 __divxc3): Document.
2069 2005-12-05 Geoffrey Keating <geoffk@apple.com>
2071 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
2073 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
2074 hook_bool_void_false.
2075 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2076 * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
2078 * config/darwin.c (machopic_select_section): It's not defined
2079 as weak if it's only marked as weak_import.
2081 * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
2084 * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
2085 A hidden weak object does bind locally. Strong linkonce data
2086 counts like any other strong symbol for binding.
2087 (weak_finish_1): Don't specially handle weakrefs, they no longer
2089 (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
2090 * c-common.c (handle_alias_attribute): Allow static aliases
2092 (handle_weakref_attribute): Don't call declare_weak on weakrefs.
2093 * gthr-dce.h: Make weakrefs static.
2094 * gthr-tpf.h: Likewise.
2095 * gthr-solaris.h: Likewise.
2096 * gthr-posix.h: Likewise.
2097 * gthr-posix95.h: Likewise.
2098 * config/darwin.c (darwin_encode_section_info): static weakref
2099 variables are not necessarily defined in this translation unit.
2100 * doc/extend.texi (Function Attributes): Mention that an alias
2101 attribute creates a definition for the thing it's attached to.
2102 Change the documentation for weakref to say that the thing
2103 it's attached to must be static.
2105 * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
2106 we don't go into an infinite loop.
2108 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
2110 * config/rs6000/predicates.md (logical_const_operand): Split
2111 out of logical_operand.
2112 (logical_operand): Use it.
2113 * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
2114 logical_const_operand.
2116 2005-12-05 Jan Beulich <jbeulich@novell.com>
2118 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
2119 and IX86_BUILTIN_CMPNESS.
2120 (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
2121 * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
2122 * config/i386/i386.md (movti_internal): Correct type attribute.
2123 Simplify mode attribute.
2124 (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
2125 Correct type attribute.
2126 (absxf2): Correct operator.
2127 * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
2128 movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
2129 * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
2131 (sse2_vmsqrtv2df2): Correct mode attribute.
2133 2005-12-05 Jan Beulich <jbeulich@novell.com>
2135 * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
2136 16 bits. Provide insn pattern for this case.
2138 2005-12-05 Jan Beulich <jbeulich@novell.com>
2140 * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
2142 (__popcountDI2): Likewise.
2144 2005-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2147 * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
2148 _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
2149 * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
2152 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
2154 * c-typeck.c (null_pointer_constant_p): New function.
2155 (build_conditional_expr, build_c_cast, convert_for_assignment,
2156 build_binary_op): Use it.
2158 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
2160 * c-common.c (binary_op_error): Do not allow NOP_EXPR.
2161 (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
2163 (check_function_arguments_recurse): Allow both NOP_EXPR and
2164 CONVERT_EXPR but check conversions preserve precision.
2165 * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
2166 but check conversions preserve precision.
2167 (build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in
2170 2005-12-04 Roger Sayle <roger@eyesopen.com>
2173 * common.opt (Wstring-literal-comparison): New command line option.
2174 * c-opts.c (c_common_handle_option): Set it with -Wall.
2175 * c-typeck.c (parser_build_binary_op): Issue warning if either
2176 operand of a comparison operator is a string literal, except for
2177 testing equality or inequality against NULL.
2179 * doc/invoke.texi: Document new -Wstring-literal-comparison option.
2181 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
2183 * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
2184 of building a NOP_EXPR.
2185 (c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as
2187 * c-convert.c (convert): Use fold_convert instead of building
2188 NOP_EXPRs and CONVERT_EXPRs directly. Don't special case
2189 c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove
2191 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
2192 NOP_EXPR the same as CONVERT_EXPR.
2193 * c-typeck.c (build_function_call): Use fold_convert instead of
2194 building a NOP_EXPR directly.
2195 (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2197 2005-12-03 Alan Modra <amodra@bigpond.net.au>
2199 PR rtl-optimization/25197
2200 * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
2203 2005-12-02 Stuart Hastings <stuart@apple.com>
2205 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
2208 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
2210 * c-typeck.c (default_function_array_conversion,
2211 build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
2212 (build_conditional_expr): Apply integer_zerop to orig_op1 and
2213 orig_op2. Don't check them for NOP_EXPR.
2214 (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
2215 around integer zero.
2217 2005-12-03 Alan Modra <amodra@bigpond.net.au>
2219 * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
2220 toc_save_offset, toc_size, lr_size.
2221 (rs6000_stack_info): Use memset rather than bss struct copy to init.
2222 Test rs6000_ra_ever_killed last in condition setting lr_save_p.
2223 Adjust for removal of unused rs6000_stack_t fields.
2224 (debug_stack_info): Adjust.
2225 (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls
2226 first, and don't bother checking for set/inc of lr on sibcalls.
2227 (rs6000_emit_epilogue): Tidy code restoring stack pointer.
2229 2005-12-02 Jakub Jelinek <jakub@redhat.com>
2232 * config/i386/i386.md (movqi_1): Only force imovx for alternative
2233 5 if operand 1 is not aligned. Undo previous constraint change.
2234 * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2236 2005-12-02 Richard Guenther <rguenther@suse.de>
2238 * tree.h (build): Remove prototype.
2239 (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
2240 * tree.c (build): Remove.
2241 (build0_stat): Update comment.
2243 2005-12-02 Richard Guenther <rguenther@suse.de>
2245 * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
2246 * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
2248 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
2249 maybe_fold_offset_to_component_ref): Likewise.
2250 * tree-ssa-dom.c (thread_across_edge,
2251 simplify_rhs_and_lookup_avail_expr,
2252 find_equivalent_equality_comparison, record_equivalences_from_stmt):
2254 * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
2255 * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
2256 lower_try_finally_switch): Likewise.
2257 * tree-if-conv.c (add_to_dst_predicate_list,
2258 replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
2259 * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
2260 voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
2261 gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
2262 gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
2263 shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
2264 gimplify_init_ctor_eval, gimplify_init_constructor,
2265 gimplify_variable_sized_compare, gimplify_boolean_expr,
2266 gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
2267 gimplify_expr, gimplify_body, gimplify_function_tree,
2268 force_gimple_operand): Likewise.
2269 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2270 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
2271 mx_register_decls): Likewise.
2272 * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
2273 get_frame_field, finalize_nesting_tree_1): Likewise.
2274 * tree-inline.c (setup_one_parameter): Likewise.
2275 * tree-vect-transform.c (vectorizable_condition): Likewise.
2276 * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
2278 * tree-profile.c (tree_gen_edge_profiler): Likewise.
2279 * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
2280 * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
2281 * tree-chrec.h (build_polynomial_chrec): Likewise.
2283 2005-12-02 Richard Guenther <rguenther@suse.de>
2285 * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
2286 alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
2287 * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
2288 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
2289 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2290 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2291 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
2293 * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
2294 sh_adjust_unroll_max): Likewise.
2295 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2296 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2297 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
2299 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2301 * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
2304 2005-12-02 Richard Guenther <rguenther@suse.de>
2306 * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
2307 simplify_cond_using_ranges): Use buildN instead of build.
2308 * tree-tailcall.c (adjust_accumulator_values,
2309 adjust_return_value): Likewise.
2310 * tree-sra.c (generate_one_element_ref, generate_copy_inout,
2311 generate_element_copy, generate_element_zero,
2312 generate_one_element_init): Likewise.
2313 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
2314 * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
2315 lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
2316 perfect_nestify): Likewise.
2318 2005-12-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2320 * pa.c (pa_secondary_reload): Revise initialization of variable regno.
2322 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
2324 * ggc.h (GGC_RESIZEVEC): New.
2326 2005-12-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2328 * gcc.c (execute): Improve readability.
2330 2005-12-02 Richard Guenther <rguenther@suse.de>
2332 * tree-cfg.c (mark_used_vars): New function.
2333 (dump_function_to_file): Dump only used VAR_DECLs.
2335 2005-12-02 Richard Guenther <rguenther@suse.de>
2337 * convert.c (convert_to_integer): Fix compare for nonpositive
2338 constant to use tree_int_cst_sgn <= 0.
2340 2005-12-02 Richard Guenther <rguenther@suse.de>
2342 * convert.c (convert_to_integer): Use fold_convert instead
2343 of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0
2344 instead of comparing against 0. Use build_int_cst instead
2345 of converting integer_zero_node.
2347 2005-12-02 Richard Guenther <rguenther@suse.de>
2349 * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
2352 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2355 * combine.c (simplify_logical <IOR>): Simplify more patterns to
2358 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2361 * function.c (expand_function_end): Emit blockage for unwinder
2364 2005-12-01 Roger Sayle <roger@eyesopen.com>
2366 * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
2367 constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
2368 * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
2369 integer constant comparisons.
2371 2005-12-02 Jon Grimm <jgrimm2@us.ibm.com>
2372 Janis Johnson <janis187@us.ibm.com>
2373 David Edelsohn <dje@watson.ibm.com>
2374 Ben Elliston <bje@au.ibm.com>
2376 * dfp.h, dfp.c: New files.
2377 * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
2378 (DECNUM_H): Likewise.
2379 (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
2380 (INCLUDES): Append $(DECNUMINC).
2381 (OBJS-common): Add dfp.o.
2383 * real.h (EXP_BITS): Pinch one bit to ..
2384 (struct real_value): Add decimal field.
2385 (real_format): Change table size, update documentation.
2386 (REAL_MODE_FORMAT): Update for to handle float, decimal float.
2387 (real_from_string3): Declare.
2388 (decimal_single_format): Declare.
2389 (decimal_double_format): Declare.
2390 (decimal_quad_format): Declare.
2391 (REAL_VALUE_TO_TARGET_DECIMAL32): New.
2392 (REAL_VALUE_TO_TARGET_DECIMAL64): New.
2393 (REAL_VALUE_TO_TARGET_DECIMAL128): New.
2394 * real.c: Include dfp.h.
2395 (normalize): Early return for decimal floats.
2396 (do_add): Zero decimal field.
2397 (do_compare): Call do_decimal_compare for decimal floats.
2398 (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
2399 (real_arithmetic): Call decimal_real_arithmetic for decimal
2400 floating point operands.
2401 (real_identical): If a and b are of differing radix, return false.
2402 (real_to_integer): Call decimal_real_to_integer if the value is a
2404 (real_to_integer2): Likewise, call decimal_real_to_integer2.
2405 (real_to_decimal): Likewise, call decimal_real_to_decimal.
2406 (real_to_hexadecimal): Place "N/A" in the return string for
2408 (real_from_string3): New variant, given a mode.
2409 (real_maxval): Use decimal_real_maxval for decimal floats.
2410 (round_for_format): Use decimal_round_for_format for decimals.
2411 (real_convert): Use decimal_real_convert where appropriate.
2412 (significand_size): Handle base 10.
2413 (encode_decimal_single, decode_decimal_single,
2414 encode_decimal_double, decode_decimal_double, encode_decimal_quad,
2415 decode_decimal_quad): New functions.
2416 (decimal_single_format): New.
2417 (decimal_double_format): New.
2418 (decimal_quad_format): New.
2419 * machmode.def: Add SD, DD and TD decimal floating point modes.
2420 * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
2421 Include MODE_DECIMAL_FLOAT.
2422 (DECIMAL_FLOAT_MODE_P): New.
2423 * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
2424 * genmodes.c (struct mode_data): Add counter field.
2425 (struct mode_data): Update comment for format.
2426 (blank_mode): Initialise counter field.
2427 (new_mode): Increment counter field for each mode defined.
2428 (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
2430 (make_complex_modes): Handle modes containing `D'.
2431 (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
2432 (make_decimal_float_mode): New.
2433 (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2434 (cmp_modes): Compare counter field if other characteristics
2436 (emit_real_format_for_mode): Support formats for decimal floats.
2437 * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2438 Document MODE_DECIMAL_FLOAT.
2440 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2442 * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2445 2005-12-01 Richard Henderson <rth@redhat.com>
2447 * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2449 2005-12-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2451 * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2453 * config/pa/pa.c (pa_init_builtins): If we detect
2454 DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2457 2005-12-01 Richard Guenther <rguenther@suse.de>
2459 * fold-const.c (fold_binary): Use fold_build2, not
2462 2005-12-01 Nathan Sidwell <nathan@codesourcery.com>
2464 * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2466 * vec.h (VEC_block_remove): New.
2468 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
2471 * c-common.c (lvalue_error): Fix wording.
2473 2005-12-01 Richard Guenther <rguenther@suse.de>
2475 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2476 thinko in last patch.
2478 2005-12-01 Geoffrey Keating <geoffk@apple.com>
2480 * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2481 than -flat_namespace.
2483 2005-12-01 Ben Elliston <bje@au.ibm.com>
2485 * mklibgcc.in: Parameterise the script to build soft float
2486 functions by iterating over each type, rather than cloning the
2489 2005-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2492 * builtins.c (fold_builtin_fputs): Defer check for missing
2493 replacement functions.
2495 2005-11-30 Kean Johnston <jkj@sco.com>
2497 * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2498 simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2500 2005-11-30 Richard Guenther <rguenther@suse.de>
2502 PR tree-optimization/22501
2503 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2504 function split out from ...
2505 (forward_propagate_addr_expr): ... here. Use it to propagate
2506 ADDR_EXPRs to all uses.
2508 2005-11-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2510 * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2511 * builtins.c (expand_builtin_mathfn): Use them.
2512 (expand_builtin_mathfn_2): Likewise.
2513 (expand_builtin_mathfn_3): Likewise.
2514 (expand_builtin_int_roundingfn): Likewise.
2515 (expand_builtin): Likewise.
2516 (integer_valued_real_p): Likewise.
2517 (fold_builtin_int_roundingfn): Likewise.
2518 (fold_builtin_bitop): Likewise.
2519 (fold_builtin_logarithm): Likewise.
2520 (fold_builtin_1): Likewise.
2521 * convert.c (convert_to_integer): Likewise.
2522 * fold-const.c (negate_mathfn_p): Likewise.
2523 (tree_expr_nonnegative_p): Likewise.
2525 2005-11-30 Dale Johannesen <dalej@apple.com>
2526 Andrew Pinski <pinskia@physics.uc.edu>
2528 * combine.c (find_split_point): Sign extend bitmask
2529 when changing bitfield assignment to IOR of AND.
2531 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
2533 * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
2534 clobber to scratch reg.
2535 (*decrement_and_branch_until_zero_no_clobber): Remove.
2536 (decrement_and_branch peephole): Add dummy scratch reg to pattern.
2537 (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
2538 * config/ms1/ms1.opt (mmul): Remove.
2539 * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
2540 (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
2542 2005-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2543 Bernd Schmidt <bernd.schmidt@analog.com>
2545 * pa/predicates.md (symbolic_operand): Add comment.
2546 * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
2547 * pa/pa-protos.h (pa_secondary_reload_class): Delete.
2548 * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
2549 (pa_secondary_reload_class): Delete.
2550 (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
2551 and pa_secondary_reload_class. Reorder some checks. Update inline
2552 copy of symbolic operand.
2553 * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
2555 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
2557 * loop-doloop.c (add_test): Only add jump notes if we did emit a
2560 2005-11-30 Jeff Law <law@redhat.com>
2562 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
2563 handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2565 2005-11-30 Jakub Jelinek <jakub@redhat.com>
2567 * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
2568 Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
2569 (ia64_expand_move): Adjust caller.
2571 * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
2572 fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
2575 2005-11-30 Paolo Bonzini <bonzini@gnu.org>
2577 * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
2578 Always produce an output if we can remove NEGs or canonicalize
2579 (minus (minus ...)) expressions. Provide a fast path for the
2581 (simplify_gen_binary): Do not call simplify_plus_minus.
2582 (simplify_binary_operation_1): Reassociate at the end of the
2585 2005-11-29 Evan Cheng <evan.cheng@apple.com>
2587 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
2588 moves and unpack to speed up.
2590 2005-11-29 David S. Miller <davem@sunset.davemloft.net>
2592 * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
2593 argument, they are always sparc_compare_op0 and sparc_compare_op1.
2594 (gen_v9_scc): Update callers.
2595 * config/sparc/sparc.md: Likewise.
2596 * config/sparc/sparc-protos.h: Update extern declaration.
2598 * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
2600 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
2602 * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
2605 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
2607 * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
2608 (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
2609 (negate_expr): Here.
2611 2005-11-29 Ben Elliston <bje@au.ibm.com>
2613 * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
2614 Fix typo in comment.
2616 2005-11-29 Ben Elliston <bje@au.ibm.com>
2618 * Makefile.in (clean-target): Depend on clean-target-libgcc.
2619 (clean-target-libgcc): Import rule from the top-level Makefile.in.
2621 2005-11-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2625 * builtins.c (init_target_chars): New.
2626 (expand_builtin_printf, expand_builtin_fprintf,
2627 expand_builtin_sprintf, fold_builtin_sprintf,
2628 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
2629 fold_builtin_snprintf_chk, fold_builtin_printf,
2630 fold_builtin_fprintf): Check for matching format strings using
2633 2005-11-29 Paul Brook <paul@codesourcery.com>
2635 * config.gcc: Do not use fixproto on m68k-elf.
2637 2005-11-28 Roger Sayle <roger@eyesopen.com>
2639 * expmed.c (div_cost): Replace with...
2640 (sdiv_cost, udiv_cost): New.
2641 (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
2642 Rename the div and mod fields, used to initialize sdiv_pow2_cheap
2643 and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
2644 (expand_divmod): Replace use of div_cost with either sdiv_cost
2645 or udiv_cost depending upon the signedness of the operation.
2647 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
2650 * config/darwin.c (machopic_indirection_name,
2651 machopic_output_indirection): Follow transparent alias chain.
2653 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
2655 * varasm.c (ultimate_transparent_alias_target): Add comment.
2657 2005-11-28 Kazu Hirata <kazu@codesourcery.com>
2659 * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
2660 SET_SRC instead of XEXP where appropriate.
2662 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
2664 * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
2667 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
2669 * config/fp-bit.h (LSHIFT): Take shift count parameter.
2670 * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
2673 2005-11-28 Bernd Schmidt <bernd.schmidt@analog.com>
2675 * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
2676 secondary_input_reload_class, made static. Adapt to new
2678 (secondary_output_reload_class): Delete.
2679 (TARGET_SECONDARY_RELOAD): New macro.
2680 * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
2681 SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2683 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
2686 * c-decl.c (finish_struct): Only set DECL_PACKED on a field
2687 when its natural alignment is > BITS_PER_UNIT.
2688 * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
2689 * c-common.c (handle_packed_attribute): Ignore packing on a field
2690 whose type is naturally char aligned.
2692 2005-11-28 Richard Guenther <rguenther@suse.de>
2694 * c-common.c (strict_aliasing_warning): Handle all
2695 component-ref like accesses.
2697 2005-11-28 Roger Sayle <roger@eyesopen.com>
2698 Uros Bizjak <uros@kss-loka.si>
2701 * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
2702 sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
2703 when flag_unsafe_math_optimizations is set and
2704 we don't care about NaNs or Infinities.
2706 Move x/expN(y) and x/pow(y,z) transformation into common
2707 flag_unsafe_math_optimizations section.
2709 2005-11-27 Mark Mitchell <mark@codesourcery.com>
2711 * gcc.c (main): Change type of argv to "char **".
2713 2005-11-28 Alan Modra <amodra@bigpond.net.au>
2715 * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
2716 small data sections.
2717 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
2718 * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
2719 * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
2720 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't
2721 output locals to sbss if !rs6000_elf_in_small_data_p.
2722 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
2724 2005-11-28 Alan Modra <amodra@bigpond.net.au>
2727 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
2728 generated by reload.
2729 * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
2730 indexed_or_indirect_address.
2731 (indexed_or_indirect_address): Don't test for base reg. Call
2732 address_operand last. Make it a special predicate.
2734 2005-11-27 Kazu Hirata <kazu@codesourcery.com>
2736 * config/m68k/m68k.c (notice_update_cc): Remove useless code.
2738 2005-11-27 Andrew Pinski <pinskia@physics.uc.edu>
2741 * fold-const.c (negate_expr_p): Add case for signed divides if overflow
2743 (negate_expr): Likewise.
2745 2005-11-27 Andreas Schwab <schwab@suse.de>
2747 * config/m68k/m68k.c: Reindent and fix whitespace, remove
2750 2005-11-27 Steven Bosscher <stevenb@suse.de>
2752 * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
2753 has EH predecessor edges.
2755 2005-11-26 Eric Christopher <echristo@apple.com>
2757 * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
2758 register stalls by zero extending to the full register.
2760 2005-11-27 Joseph S. Myers <joseph@codesourcery.com>
2762 * config/floatunsisf.c, config/floatunsidf.c,
2763 config/floatunsixf.c, config/floatunsitf.c: New files.
2764 * config/ia64/t-hpux: Add floatunsitf.c.
2765 * config/ia64/ia64.c (ia64_init_libfuncs): Use
2766 _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
2768 2005-11-26 Richard Henderson <rth@redhat.com>
2770 * c-lex.c (pragma_lex): Rename from c_lex.
2771 * c-pch.c: Update for pragma_lex rename.
2772 * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
2773 * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
2774 * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
2775 * config/sol2-c.c, config/v850/v850-c.c: Likewise.
2776 * doc/tm.texi: Likewise.
2778 2005-11-26 Andrew Pinski <pinskia@physics.uc.edu>
2781 * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
2782 when overflow is undefined.
2784 2005-11-26 Hans-Peter Nilsson <hp@axis.com>
2786 * doc/md.texi (Insn Canonicalizations): Refer to the
2787 function commutative_operand_precedence for further rules.
2789 2005-11-25 Roger Sayle <roger@eyesopen.com>
2792 * expmed.c (choose_mult_variant): Return immediately when mult_cost
2793 is less than zero. Limit mult_cost to a reasonable upper bound for
2794 the synthetic multiplication sequence.
2796 2005-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2799 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
2800 fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
2801 Lookup the explicit replacement functions for any unlocked
2802 stdio builtin transformations.
2804 2005-11-25 Hans-Peter Nilsson <hp@axis.com>
2806 * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
2808 * targhooks.c (default_secondary_reload): Don't require operand 2
2809 for an input reload to be earlyclobber.
2811 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2813 * fold-const.c (negate_mathfn_p): Fix comment and add support
2814 for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
2817 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
2820 * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
2821 _Q_ulltoq for unsigned conversions from SImode and DImode to
2824 2005-11-25 Alan Modra <amodra@bigpond.net.au>
2826 * config/rs6000/ppc64-fp.c (__floatunditf): New function.
2827 (__floatundidf, __floatundisf): Likewise.
2829 2005-11-25 David Edelsohn <edelsohn@gnu.org>
2831 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
2832 (rs6000_override_options): Remove initialization of
2833 rs6000_sr_alias_set.
2834 (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
2835 (rs6000_emit_stack_tie): Same.
2836 (emit_frame_save): Same.
2837 (gen_frame_mem_offset): Same.
2838 (rs6000_emit_prologue): Same.
2839 (rs6000_emit_epilogue): Same.
2841 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
2844 * fold-const.c (fold_build): Convert bool_var != 1 and
2845 bool_var == 0 to !bool_var.
2847 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
2850 * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
2851 for C being INTEGER_CST. Likewise for !=.
2853 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
2856 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
2857 unsigned conversions from SImode to TFmode.
2859 2005-11-24 Bernd Schmidt <bernd.schmidt@analog.com>
2861 * expr.c (expand_expr_real_1): Fix error in last change.
2863 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
2865 * caller-save.c: (this_insn_sets): Move into:
2866 (save_call_clobbered_regs).
2867 (mark_set_regs): Get this_insn_sets from data.
2869 (save_call_clobbered_regs): Take sets of the return value by
2870 sibcalls into account.
2872 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
2875 * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
2876 SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
2877 (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
2878 (memory_move_secondary_cost, init_reg_autoinc): Remove
2879 SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
2880 Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
2881 secondary_reload_class call.
2882 (copy_cost): Likewise. Add new parameter prev_sri. Changed all
2884 * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
2885 (push_secondary_reload): Use secondary_reload target hook.
2886 (secondary_reload_class, scratch_reload_class): New functions.
2887 (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
2888 SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace
2889 SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
2890 * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
2891 (secondary_reload_class, scratch_reload_class): Declare.
2892 * reload1.c: Include target.h.
2893 (reload_adjust_reg_for_temp): New function.
2894 (reload_adjust_reg_for_icode): Likewise.
2895 (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
2896 Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
2898 (emit_input_reload_insns): Likewise. Rewrite secondary reload checks
2899 for inheritance. Support case when both secondary & tertiary reloads
2900 are for intermediate registers.
2901 (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
2902 with secondary_reload_class call. Support case when both secondary
2903 & tertiary reloads are for intermediate registers.
2904 * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
2905 (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
2906 * target.h (secondary_reload_info): New struct / typedef.
2907 (struct gcc_target): New member secondary_reload.
2908 * targhooks.c Include reload.h, optabs.h and recog.h.
2909 (default_secondary_reload): New function.
2910 * targhooks.h (default_secondary_reload): Declare.
2911 * doc/tm.texi: Document secondary_reload target hook. Update
2912 description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
2913 * doc/md.texi: Likewise.
2915 * sh-protos.h (sh_secondary_reload): Declare.
2916 * sh.c (TARGET_SECONDARY_RELOAD): Override.
2917 (sh_secondary_reload): New function.
2918 * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
2919 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2920 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2921 (HAVE_SECONDARY_RELOADS): Define.
2922 * sh.md (reload_indf): Rename to:
2924 (reload_outdf): Rename to:
2925 (reload_outdf__RnFRm).
2926 (reload_insf): Rename to:
2928 (reload_insi): Rename to:
2929 (reload_insi__i_fpul).
2931 2005-11-24 Uros Bizjak <uros@kss-loka.si>
2933 * configure.ac: Require at least texinfo 4.4.
2934 * configure: Regenerate.
2936 * doc/install.texi (Tools/packages necessary for building GCC):
2937 Update required version of texinfo to at least 4.4.
2938 (Installing GCC: Building): Update required version of texinfo
2940 (Installing GCC: Final installation): Update required version
2941 of texi2dvi to at least 4.4.
2942 (Host/target specific installation notes for GCC): Update required
2943 version of texinfo to at least 4.4.
2945 2005-11-24 Richard Guenther <rguenther@suse.de>
2946 Dirk Mueller <dmueller@suse.de>
2949 * c-common.h (strict_aliasing_warning): Declare.
2950 * c-common.c (strict_aliasing_warning): New function,
2952 * c-typeck.c (build_c_cast): ... here.
2954 2005-11-24 Paolo Bonzini <bonzini@gnu.org>
2956 * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2958 (swap_commutative_operands_with_target): New.
2960 2005-11-24 Paolo Bonzini <bonzini@gnu.org>
2962 * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
2963 also when doing PRE, rather than only for global CPROP.
2965 2005-11-24 Ben Elliston <bje@au.ibm.com>
2967 * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
2968 * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
2970 (expand_twoval_unop): Likewise.
2971 (widen_clz): Likewise.
2972 (expand_parity): Likewise.
2973 (expand_unop): Likewise.
2974 (emit_cmp_and_jmp_insn_1): Likewise.
2975 (prepare_float_lib_cmp): Likewise.
2977 2005-11-24 Ben Elliston <bje@au.ibm.com>
2979 * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
2980 Remove unused `class' variable.
2982 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2985 * c-typeck.c (build_array_ref): Avoid code duplicate. Use common
2986 C/C++ diagnostic function warn_array_subscript_with_type_char.
2987 * c-common.h (warn_array_subscript_with_type_char): Declare.
2988 * c-common.c (warn_array_subscript_with_type_char): Define.
2990 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2993 * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
2994 compiling at the intersection of C and C++.
2996 2005-11-23 Mark Mitchell <mark@codesourcery.com>
2998 * doc/invoke.texi: For man pages, include gcc-vers.texi.
2999 List @file in the option summary. Include the libiberty
3000 documentation for @file.
3001 * gcc.c (main): Call expandargv.
3002 * Makefile.in (gcc-vers.texi): Define srcdir.
3004 2005-11-23 Diego Novillo <dnovillo@redhat.com>
3006 * passes.c (init_optimization_passes): Document
3007 sequencing of passes.
3009 2005-11-23 Kazu Hirata <kazu@codesourcery.com>
3011 * config/m68k/predicates.md (pcrel_address, extend_operator,
3012 post_inc_operand, pre_dec_operand): Remove redundant
3014 (const_uint32_operand, const_sint32_operand): Use gcc_assert
3016 (valid_dbcc_comparison_p): Rewrite in the lisp style.
3018 2005-11-23 Ben Elliston <bje@au.ibm.com>
3020 * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
3022 2005-11-22 J"orn Rennecke <joern.rennecke@st.com>
3024 Preparatory work for PR target/21623:
3025 * alpha.c (secondary_reload_class): Rename to:
3026 (alpha_secondary_reload_class).
3027 * alpha.h, alpha-protos.h: Likewise.
3028 * mn10300.c (secondary_reload_class): Rename to:
3029 (mn10300_secondary_reload_class).
3030 * mn10300.h, mn10300-protos.h: Likewise.
3031 * pa.c (secondary_reload_class): Rename to:
3032 (pa_secondary_reload_class).
3033 * pa.h, pa-protos.h: Likewise.
3034 * rs6000.c (secondary_reload_class): Rename to:
3035 rs6000_secondary_reload_class.
3036 * rs6000.h, rs6000-protos.h: Likewise.
3038 2005-11-22 Eric Botcazou <ebotcazou@adacore.com>
3041 * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
3043 2005-11-22 Ian Lance Taylor <ian@airs.com>
3045 * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
3047 (prepare_cmp_insn): Likewise.
3049 2005-11-22 Kazu Hirata <kazu@codesourcery.com>
3052 * m68k.md (zero_extendsidi2): Force operands[1] to a register
3053 if both operands[0] and operands[1] are memory.
3055 2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
3058 * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
3059 COMPARISON_CLASS_P and an integral types create create a new
3060 expression with the new type and fold that.
3062 2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
3065 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
3066 to SUBTARGET_OS_CPP_BUILTINS.
3068 2005-11-22 Richard Earnshaw <richard.earnshaw@arm.com>
3070 * arm.c (emit_set_insn): New function.
3071 (arm_split_constant): Call it.
3072 (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
3073 (arm_legitimize_address): Likewise. Use plus_constant.
3074 (arm_expand_prologue): Likewise. Use VOIDmode in SET.
3075 (thumb_expand_prologue): Likewise.
3076 (arm_gen_load_multiple): Use VOIDmode in SET.
3077 (arm_gen_store_multiple): Likewise.
3078 (vfp_emit_fstmx): Likewise. Use plus_constant.
3079 (emit_multi_reg_push): Likewise.
3080 (emit_sfm): Use plus_constant.
3082 2005-11-23 Alan Modra <amodra@bigpond.net.au>
3085 * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
3088 2005-11-22 Alan Modra <amodra@bigpond.net.au>
3091 * expmed.c (store_bit_field): Don't attempt to insv a field
3092 larger than the reg.
3094 2005-11-22 Alan Modra <amodra@bigpond.net.au>
3097 * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
3098 explicit sign extension, not a (char) cast.
3100 2005-11-22 Ben Elliston <bje@au.ibm.com>
3102 * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
3103 GET_MODE_CLASS (x) == MODE_FLOAT.
3104 * config/i386/i386.c: Likewise.
3105 * config/rs6000/xcoff.h: Likewise.
3106 * config/rs6000/linux64.h: Likewise.
3107 * config/rs6000/rs6000.c: Likewise.
3108 * config/rs6000/rs6000.h: Likewise.
3109 * config/rs6000/predicates.md: Likewise.
3110 * config/rs6000/sysv4.h: Likewise.
3112 2005-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3114 * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
3117 * config/alpha/freebsd.h, config/alpha/linux.h,
3118 config/arm/linux-elf.h, config/bfin/bfin.h,
3119 config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
3120 config/i386/beos-elf.h, config/i386/gnu.h,
3121 config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
3122 config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
3123 config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
3124 config/rs6000/linux64.h, config/rs6000/sysv4.h,
3125 config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
3126 config/sh/linux.h, config/sh/sh.h, config/sol2.h,
3127 config/sparc/linux.h, config/sparc/linux64.h,
3128 config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
3130 * doc/invoke.texi: Document that the macros __pic__ and __PIC__
3131 are both defined when either flag -fpic or -fPIC are used.
3133 2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
3135 * config/fp-bit.c (clzusi): New function.
3136 (si_to_float, usi_to_float): Use it to compute proper shift.
3137 (usi_to_float): Preserve guard bits when shifting right.
3138 * libgcc-std.ver (GCC_4.2.0): New version.
3139 * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
3140 __floatundisf): New functions.
3141 * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
3142 __floatundisf): Declare.
3143 * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
3144 _floatundixf, and _floatunditf.
3145 * optabs.c (expand_float): If target does not define a pattern for
3146 signed or unsigned conversion, use an unsigned libcall instead of
3148 (init_optabs): Initialize ufloat_optab.
3150 2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
3152 * config/rs6000/rs6000.opt (mmulhw): New option.
3153 * doc/invoke.texi (-mmulhw): Document.
3154 * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
3156 * config/rs6000/rs6000.md: Add half-word multiply and
3157 multiply-accumulate instructions for 405 and 440.
3159 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
3161 * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
3162 which matches behavior of gcc 4.0 and older for RTEMS targets. The
3163 default now includes a linker group which makes the RTEMS one nest.
3165 2005-11-22 Ben Elliston <bje@au.ibm.com>
3167 * cse.c (fold_rtx): Typo fix.
3168 (find_comparison_args): Pass the mode of arg1, not arg1 itself.
3170 2005-11-21 Richard Henderson <rth@redhat.com>
3172 * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
3173 langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
3175 * c-tree.h (lookup_name): Move declaration ...
3176 * c-common.h (lookup_name): ... here.
3177 * config/darwin-c.c: Include c-common.h.
3178 * config/t-darwin: Update dependencies.
3180 2005-11-22 Ben Elliston <bje@au.ibm.com>
3182 * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
3183 explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
3184 * genopinit.c (gen_insn): Likewise.
3185 * reload.c (find_equiv_reg): Likewise.
3186 * loop.c (load_mems): Likewise.
3187 * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
3188 * cse.c (find_comparison_args, fold_rtx): Likewise.
3189 * dwarf2out.c (add_const_value_attribute): Likewise.
3190 * expr.c (convert_move): Likewise.
3191 * recog.c (general_operand, register_operand): Likewise.
3192 * reg-stack.c (replace_reg): Likewise.
3193 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
3194 * c-common.c (handle_vector_size_attribute): Likewise.
3195 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3196 (simplify_binary_operation_1): Likewise.
3197 (simplify_const_binary_operation): Likewise.
3198 (simplify_relational_operation): Likewise.
3199 (simplify_const_relational_operation): Likewise.
3200 (simplify_immed_subreg): Likewise.
3201 * emit-rtl.c (gen_lowpart_common): Likewise.
3202 * expmed.c (expand_mult): Likewise.
3203 * stor-layout.c (layout_type): Likewise.
3205 2005-11-21 Paolo Bonzini <bonzini@gnu.org>
3208 * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
3209 cst2 only for SPE vectors.
3211 2005-11-21 David Edelsohn <edelsohn@gnu.org>
3214 * config/rs6000/predicates.md (vrsave_operation): Check
3215 UNSPEC_VOLATILE value.
3217 2005-11-21 Jan Hubicka <jh@suse.cz>
3219 PR tree-optimization/24653
3220 * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
3222 2005-11-21 Uros Bizjak <uros@kss-loka.si>
3224 * config/i386/predicates.md (ax_reg_operand): New predicate.
3225 (memory_displacement_only_operand): New predicate.
3226 * config/i386/i386.md ("modrm" attribute): Return 0 if one
3227 operand is AX register and the other operand is memory operand
3228 with displacement only.
3230 2005-11-21 Uros Bizjak <uros@kss-loka.si>
3232 * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
3233 if we don't care about NaNs or Infinities.
3235 2005-11-20 Ian Lance Taylor <ian@airs.com>
3237 PR rtl-optimization/24883
3238 * combine.c (combinable_i3pat): When checking whether the
3239 destination of i3 is used in i3, consider paradoxical subregs.
3241 2005-11-21 Kazu Hirata <kazu@codesourcery.com>
3244 * cse.c (cse_insn): Reject invalid forms of CONST earlier.
3246 2005-11-20 Joseph S. Myers <joseph@codesourcery.com>
3248 * combine.c (try_combine): Do not run subst on i1src and i2src in
3249 the case of generating a PARALLEL for a comparison.
3251 2005-11-20 Richard Henderson <rth@redhat.com>
3254 * tree-sra.c (struct sra_elt): Add all_no_warning.
3255 (struct sra_walk_fns) <use>: Add use_all argument.
3256 (sra_walk_expr): Pass it.
3257 (sra_walk_modify_expr): Likewise.
3258 (scalarize_ldst): Likewise.
3259 (scan_use): Update for new argument.
3260 (mark_no_warning): New.
3261 (scalarize_use): Use it.
3263 2005-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
3265 * expr.c (expand_expr_real): Use usmul_optab for widening
3266 signed * unsigned multiplies.
3267 * genopinit.c (optabs): Add usmul_widen_optab.
3268 * optabs.c (init_optabs): Likewise.
3269 * optabs.h (enum optab_index): Add OTI_usmul_widen.
3270 (usmul_widen_optab): Define.
3271 * config/bfin/bfin.md (usmulhisi3): New pattern.
3273 * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
3275 2005-11-20 Graham Stott <btinternet.com>
3277 * gensupport.c (std_preds): Fixed extraneous `false` in last change.
3279 2005-11-20 Andreas Schwab <schwab@suse.de>
3282 * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
3285 2005-11-19 Richard Henderson <rth@redhat.com>
3288 * tree-gimple.c (is_gimple_id): Export.
3289 * tree-gimple.h (is_gimple_id): Declare.
3290 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
3291 (get_default_value): Use it.
3292 (maybe_fold_stmt_indirect): Likewise.
3294 2005-11-19 James A. Morrison <phython@gcc.gnu.org>
3296 * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
3297 than VR1 or vice-versa.
3299 2005-11-19 Hans-Peter Nilsson <hp@axis.com>
3303 * reload.c (find_reloads_address_1): Mention dependency on
3305 * reload1.c (gen_reload): For IN with an unary operation, try
3306 moving inner expression to OUT if trivial SET is not valid.
3307 Confirm that the result is valid. Move common code block into...
3308 (emit_insn_if_valid_for_reload): New function.
3310 2005-11-19 Richard Guenther <rguenther@suse.de>
3312 * fold-const.c (fold_indirect_ref_1): Make sure we fold
3313 ARRAY_REFs of constant strings.
3315 2005-11-19 Jakub Jelinek <jakub@redhat.com>
3317 * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
3318 fatal format string.
3320 2005-11-19 Joseph S. Myers <joseph@codesourcery.com>
3322 * combine.c (make_compound_operation): Swap operands of
3323 commutative operation if necessary before returning.
3325 2005-11-19 Richard Guenther <rguenther@suse.de>
3328 * fold-const.c (fold_plusminus_mult_expr): New function.
3329 (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
3330 cases, remove now unnecessary code.
3332 2005-11-19 Paolo Bonzini <bonzini@gcc.gnu.org>
3334 * gensupport.c (old_preds): Rename to std_preds, add special field.
3335 (struct old_pred_table): Rename to struct std_pred_table, add special
3337 (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
3338 (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
3339 (init_predicate_table): Adjust, and set along the way whether a
3340 predicate is special.
3342 2005-11-18 Mark Mitchell <mark@codesourcery.com>
3344 * BASE-VER: Change to 4.2.0.
3346 2005-11-18 James E Wilson <wilson@specifix.com>
3348 * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
3351 2005-11-18 Mike Stump <mrs@apple.com>
3353 * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
3354 * config/darwin-c.c (darwin_pragma_unused): Likewise.
3355 * c-decl.c (lookup_name_two) Remove.
3356 * c-tree.h (lookup_name_two): Remove.
3357 * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
3358 * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
3359 (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
3360 * langhooks.h (lang_hooks_for_decls): Add lookup_name.
3362 2005-11-18 Richard Earnshaw <richard.earnshaw@arm.com>
3365 * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
3366 when not generating code to use that co-processor.
3368 2005-11-18 James A. Morrison <phython@gcc.gnu.org>
3370 * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
3371 add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
3372 these functions are now in tree-phinodes.c.
3374 2005-11-18 Jie Zhang <jie.zhang@analog.com>
3376 * config/bfin/bfin.md (trap): New pattern.
3378 2005-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3380 * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
3383 * expr.c (expand_expr_real): Don't call record_block_change unless
3384 ib_boundaries_block is non-null
3386 * postreload.c (reload_cse_move2add): Don't try to work with BImode.
3388 * fold-const.c (build_range_check): Use proper type for subtraction
3389 when merging lower bound.
3391 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
3393 PR rtl-optimization/24497
3394 * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
3397 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
3399 * tree-scalar-evolution.c (expression_expensive_p): New function.
3400 (scev_const_prop): Use compute_overall_effect_of_inner_loop.
3402 2005-11-18 Bernd Schmidt <bernd.schmidt@analog.com>
3404 * config/bfin/crtlibid.s: New file.
3406 2005-11-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3409 * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
3410 when not using sjlj exceptions.
3411 * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
3412 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3413 * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
3414 * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
3415 DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
3416 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
3417 * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
3418 DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
3419 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
3420 * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
3421 (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
3422 DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
3423 ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
3425 * config/pa/hpux-unwind.h: New file.
3427 2005-11-17 Alexandre Oliva <aoliva@redhat.com>
3429 * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
3430 * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
3431 * varasm.c (do_assemble_alias): Adjust call.
3432 (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
3434 * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
3436 2005-11-17 James E Wilson <wilson@specifix.com>
3438 * tree.def (FUNCTION_DECL): Correct typo in comment.
3440 2005-11-17 Richard Henderson <rth@redhat.com>
3442 * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
3443 (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
3444 and DW_CFA_def_cfa_sf.
3445 (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
3446 (dbx_reg_number): Don't assert particular registers here.
3447 (based_loc_descr): ... do it here instead. Fold in ...
3448 (eliminate_reg_to_offset): ... this function.
3449 (compute_frame_pointer_to_cfa_displacement): Fold in the effects
3450 of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
3451 * unwind-dw2.c (execute_cfa_program): Apply data align factor
3452 to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
3453 * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
3454 (instantiate_virtual_regs): Likewise.
3455 * var-tracking.c (adjust_stack_reference): Likewise.
3456 * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
3458 2005-11-17 Bernd Schmidt <bernd.schmidt@analog.com>
3460 * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
3461 * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
3462 * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
3464 ($(T)crtlibid.o): New rule.
3466 2005-11-16 Richard Guenther <rguenther@suse.de>
3469 * fold-const.c (extract_array_ref): Return byte offset
3471 (fold_binary): Fold &x[a] CMP &x[b] to
3472 a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
3475 2005-11-16 Richard Henderson <rth@redhat.com>
3478 * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
3479 parts of an SSA_NAME.
3481 2005-11-16 Richard Earnshaw <richard.earnshaw@arm.com>
3484 * arm.md (split for movsf with immediate): Restrict split to insns
3485 that set a general register.
3487 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3489 * config/ia64/unwind-ia64.c (uw_advance_context): New. Call
3491 * unwind-dw2.c (uw_advance_context): Likewise.
3492 * unwind-sjlj.c (uw_advance_context): Likewise. Also call
3493 _Unwind_SjLj_Unregister.
3494 * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
3496 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3498 * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
3500 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3502 * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
3503 langhook to get a DImode integer type.
3505 2005-11-16 Richard Henderson <rth@redhat.com>
3506 J"orn Rennecke <joern.rennecke@st.com>
3507 Ulrich Weigand <uweigand@de.ibm.com>
3511 * reload1.c (reg_equiv_invariant): New.
3512 (reload): Allocate, initialize, and free it.
3513 (calculate_needs_all_insns): Check it when skipping equivalence
3515 (alter_reg): Likewise.
3516 (eliminate_regs_1): Rename from eliminate_regs. Add new
3517 may_use_invariant argument; only use reg_equiv_invariant when true.
3518 (eliminate_regs): New.
3519 (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
3520 a context for which may_use_invariant may be true.
3522 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3524 * fold-const.c (const_binop): Don't constant fold the operation
3525 if the result has overflowed and flag_trapping_math.
3526 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3528 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3530 * config/arm/unwind-arm.c (abort): Add prototype here.
3531 (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
3532 (struct phase1_vrs): Add prev_sp.
3533 (unwind_phase2_forced): Save the original core registers instead of
3534 modifying entry_vrs. Take a new flag argument for resuming unwinding
3535 and set action flags accordingly. Always set _US_END_OF_STACK when
3536 get_eit_entry fails. Unwind before calling the stop function.
3537 (_Unwind_GetCFA): New function.
3538 (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
3539 (__gnu_Unwind_Resume_or_Rethrow): Likewise.
3540 (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
3541 just call unwind_phase2_forced.
3542 (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
3543 * config/arm/unwind-arm.h (abort): Remove prototype.
3544 (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
3546 (_Unwind_GetCFA): New prototype.
3547 * config/arm/pr-support.c (abort): Add prototype here.
3548 * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
3550 * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
3551 not schedule the prologue with non-call exceptions and EABI.
3553 2005-11-16 Nathan Sidwell <nathan@codesourcery.com>
3555 * config/arm/unwind-arm.h: Reorder interface function declarations.
3556 (_URC_END_OF_STACK): New enumeration value.
3557 (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
3558 (struct _Unwind_Control_Block): Document reserved field use.
3559 (_Unwind_Stop_Fn): New typedef.
3560 (_Unwind_ForcedUnwind): Declare.
3561 (_Unwind_Resume_or_Rethrow): Declare.
3562 * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
3564 (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
3565 * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
3566 (UCB_FORCED_STOP_ARG): New.
3567 (search_EIT_table): Update boundary condition checks.
3568 (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
3569 (unwind_phase2): Replace for with do..while.
3570 (unwind_phase2_forced): New.
3571 (__gnu_Unwind_RaiseException): Replace for with do..while.
3572 (__gnu_Unwind_ForcedUnwind): New.
3573 (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
3574 Use appropriate phase2 unwinder.
3575 (__gnu_Unwind_Resume_or_Rethrow): New.
3576 (__gnu_unwind_pr_common): Cope with forced unwinding.
3578 2005-11-16 David Edelsohn <edelsohn@gnu.org>
3581 * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
3583 * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
3584 roundsf2): Remove "s" from mnemonic.
3586 2005-11-16 Bernd Schmidt <bernd.schmidt@analog.com>
3588 * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
3590 * config/bfin/crtn.s: Change epilogues to match.
3591 * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
3592 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
3593 __PIC__ and __pic__.
3595 2005-11-16 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
3598 * doc/invoke.texi: Distinguish between free and fixed form instead of
3599 Fortran and Fortran 90/95. Remove ratfor from the list of supported
3601 * gcc.c (default_compilers): Remove double entries, add entries for
3602 suffixes '.F90' and '.F95'.
3604 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3606 * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
3607 in the stack probing loop.
3609 2005-11-15 David Edelsohn <edelsohn@gnu.org>
3611 * configure.ac: Use .machine power5 not power5x.
3612 * configure: Regenerate.
3614 2005-11-15 Mike Stump <mrs@apple.com>
3616 * c-decl.c (lookup_name_two): Add.
3617 * c-tree.h (lookup_name_two): Likewise.
3618 * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
3619 * config/darwin-c.c (darwin_pragma_unused): Likewise.
3621 2005-11-16 Alan Modra <amodra@bigpond.net.au>
3623 PR rtl-optimization/23392
3624 * regrename.c (enum scan_actions) Add mark_access.
3625 (scan_actions_name): Ditto.
3626 (scan_rtx_reg): Handle mark_access.
3627 (scan_rtx_address): Do nothing for mark_access.
3628 (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
3629 and regs in REG_INC notes before closing chains for dead regs.
3630 Mark destination regs in REG_FRAME_RELATED_EXPR notes after
3631 opening chains for new writes.
3633 2005-11-15 David Edelsohn <edelsohn@gnu.org>
3635 * c.opt (ffixed-line-length-none): New.
3637 2005-11-15 Steve Ellcey <sje@cup.hp.com>
3639 * mklibgcc.in: Change contents of eh_dummy.c.
3641 2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
3643 * loop.c (scan_loop): Do not insert temporaries for hard registers.
3645 2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
3647 * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
3649 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also.
3651 2005-11-15 Jan Hubicka <jh@suse.cz>
3653 * invoke.texi (large-unit-insns): Document.
3654 * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
3655 * params.def (large-unit-insns): New param.
3657 2005-11-15 Hans-Peter Nilsson <hp@axis.com>
3660 * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
3661 special register for operand 3. Reindent constraints to align
3664 2005-11-14 David Edelsohn <edelsohn@gnu.org>
3666 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
3667 -mpopcntb, -mfprnd. Add -mcpu=power5+.
3668 * configure.ac: Add test for FP rounding instructions.
3669 * configure: Regenerate.
3670 * config.in: Regenerate.
3671 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3672 _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
3674 * config/rs6000/rs6000.opt (mfprnd): New.
3675 * config/rs6000/rs6000.c (processor_target_table): Add power5+.
3676 (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
3677 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
3678 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
3679 (TARGET_FPRND): New.
3680 * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
3682 (btrunc<mode>2): New.
3684 (floor<mode>2): New.
3685 (round<mode>2): New.
3687 2005-11-14 Geoffrey Keating <geoffk@apple.com>
3689 * gcc.c (version_compare_spec_function): Use fatal() rather than
3692 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
3693 (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
3694 * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
3696 * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
3699 * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
3700 on -mmacosx-version-min setting.
3702 2005-11-14 Diego Novillo <dnovillo@redhat.com>
3705 * tree-vrp.c (infer_value_range): Return false if STMT is a
3706 block terminator and its basic block has no successors.
3708 2005-11-14 Mike Stump <mrs@apple.com>
3710 * config/i386/i386.c (override_options): -masm=intel isn't
3711 supported on darwin.
3712 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
3714 2005-11-15 Joseph S. Myers <joseph@codesourcery.com>
3716 * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
3717 vfork after including auto-host.h.
3719 2005-11-15 Alan Modra <amodra@bigpond.net.au>
3721 PR rtl-optimization/22002
3722 * combine.c (distribute_notes): Detect cases where a reg dies
3723 two or more times in a bb, including on the insn we are combining,
3724 and place the death note on the correct range.
3726 2005-11-14 Dale Johannesen <dalej@apple.com>
3728 * expmed.c (store_bit_field): Add offset unconditionally for
3730 (extract_bit_field): Don't force extzv or extv operand into
3731 a register if field is too big.
3733 2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
3735 * config/arm/arm.c (pic_labelno): New.
3736 (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
3737 LABEL_REF. Pass only the labelno to PIC insns.
3738 (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3739 (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
3740 * arm.md (UNSPEC_PIC_LABEL): New constant.
3741 (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3742 (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
3743 Use the correct label prefix.
3745 2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
3747 * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
3750 2005-11-14 Richard Earnshaw <richard.earnshaw@arm.com>
3752 * loop-invariant.c: Include tm_p.h.
3753 * Makefile.in: Updated.
3755 2005-11-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3757 * pa.c (store_reg): Revise generation of frame notes in large frames.
3758 (set_reg_plus_d): Likewise.
3760 2005-11-13 Andrew MacLeod <amacleod@redhat.com>
3762 PR tree-optimization/24709
3763 * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
3766 2005-11-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3768 * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
3769 and duplicate declaration of pthread_self.
3771 2005-11-13 Eric Botcazou <ebotcazou@adacore.com>
3772 Ian Lance Taylor <ian@airs.com>
3775 * calls.c (expand_call): If TARGET is a MEM and some part of the
3776 argument area has been saved, force TARGET to a register.
3778 2005-11-13 Razya Ladelsky <razya@il.ibm.com>
3780 * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
3783 2005-11-13 Jason Merrill <jason@redhat.com>
3786 * dwarf2out.c (gen_subprogram_die): Force a declaration die for
3787 lazily declared methods.
3788 (force_decl_die): Stop if forcing out the context already make a
3790 (force_type_die): Likewise.
3792 2005-11-13 Andrew Pinski <pinskia@physics.uc.edu>
3795 * builtins.c (integer_valued_real_p): Add break in
3796 REAL_CST having TREE_OVERFLOW set.
3798 2005-11-13 Zdenek Dvorak <dvorakz@suse.cz>
3800 * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
3801 addressing modes during calculation of costs.
3803 2005-11-12 Eric Botcazou <ebotcazou@adacore.com>
3805 * function.c (assign_stack_local_1): Restrict sanity check
3806 on frame size overflow to 32-bit and above platforms.
3808 2005-11-12 Hans-Peter Nilsson <hp@axis.com>
3810 * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
3811 * config/cris/cris.c: Include reload.h.
3812 (cris_initial_elimination_offset): New function.
3813 * config/cris/cris-protos.h: (cris_initial_elimination_offset):
3816 2005-11-12 Richard Guenther <rguenther@suse.de>
3818 * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
3820 2005-11-12 Jan Hubicka <jh@suse.cz>
3822 * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
3823 to compare against 0 when possible.
3825 2005-11-12 Jie Zhang <jie.zhang@analog.com>
3827 * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
3828 HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3829 REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
3830 * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
3833 2005-11-12 Hans-Peter Nilsson <hp@axis.com>
3835 * recog.c (constrain_operands) <case 'g'>: For a match, require
3836 that a non-register matches general_operand when strict >= 0.
3838 2005-11-11 Steven Bosscher <stevenb@suse.de>
3840 * loop-invariant.c (move_loop_invariants): Fix a thinko in the
3843 2005-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3845 * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
3846 (memory_address_same): New.
3847 (dse_optimize_stmt): Call memory_address_same.
3849 2005-11-12 Hans-Peter Nilsson <hp@axis.com>
3852 * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
3853 ZERO_EXTEND>: New cases.
3855 2005-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3857 * longlong.h (__clz_tab): Always provide.
3859 2005-11-11 Steven Bosscher <stevenb@suse.de>
3862 * loop-invariant.c (may_assign_reg_p): Make sure a hard register
3864 (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
3865 before check_maybe_invariant.
3866 (move_invariant_reg): Use gen_move_insn instead of replacing
3867 SET_DEST with the temporary for the invariant.
3868 (move_loop_invariants): If checking is enabled, do internal
3869 consistency checks after completing the pass.
3871 2005-11-11 David Edelsohn <edelsohn@gnu.org>
3874 * common.opt (Wvolatile-register-var): New.
3875 * varasm.c (make_decl_rtl): Only emit warning when option
3876 specified. Clarify warning message.
3877 * doc/invoke.texi (Wvolatile-register-var): Document new option.
3879 * doc/md.texi (copysign): Document standard named pattern.
3881 2005-11-11 Jie Zhang <jie.zhang@analog.com>
3883 * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
3884 bytes when align is 2.
3885 * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
3886 by the first instruction of the loop.
3888 2005-11-11 Jason Merrill <jason@redhat.com>
3891 * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
3894 2005-11-11 Zdenek Dvorak <dvorakz@suse.cz>
3896 PR rtl-optimization/22509
3897 * local-alloc.c (memref_used_between_p): Check whether a function call
3898 could not reference the memref.
3900 2005-11-11 Ulrich Weigand <uweigand@de.ibm.com>
3902 * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
3903 algorithm so as to choose the best, not the worst, alternative.
3904 Reset accumulated register class before processing next alternative.
3906 2005-11-11 Kaz Kojima <kkojima@gcc.gnu.org>
3909 * calls.c (expand_call): Copy a return value to a plain register
3912 2005-11-10 Alexandre Oliva <aoliva@redhat.com>
3915 * varasm.c (assemble_name): Recompute name only for transparent
3918 2005-11-10 Hans-Peter Nilsson <hp@axis.com>
3920 * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
3922 2005-11-04 Jeff Law <law@redhat.com>
3925 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
3926 perform reassociation if the parent statement will not die as
3927 a result of the optimization.
3929 2005-11-10 Daniel Berlin <dberlin@dberlin.org>
3931 * tree-ssa-alias.c (compute_may_aliases): Remove call to
3932 delete_old_heap_vars.
3933 * tree-dfa.c (referenced_var_remove): Remove function.
3934 * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
3935 (delete_tree_ssa): Remove call to delete_old_heapvars.
3936 Add call to delete_alias_heapvars.
3937 * tree-flow.h (referenced_var_remove): Remove prototype
3938 (init_alias_heapvars): New prototype.
3939 (delete_alias_heapvars): Ditto.
3940 * Makefile.in (tree-ssa-structalias.o): Add
3941 gt-tree-ssa-structalias.o
3942 (GTFILES): Add tree-ssa-structalias.h and
3943 tree-ssa-structalias.c.
3944 (s-gtype): Add gt-tree-ssa-structalias.h.
3945 * tree-ssa-structalias.c (heapvars): Remove.
3946 (oldheapvars): Remove.
3947 (heapvar_for_stmt): New variable.
3948 (heapvar_lookup): New function.
3949 (heapvar_insert): Ditto.
3950 (get_constraint_for): See if we have an old heapvar
3952 (init_alias_heapvars): New function.
3953 (delete_alias_heapvars): Ditto.
3954 Add include of gt-tree-ssa-structalias.h.
3956 2005-11-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3959 * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
3961 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
3963 * tree.c (int_fits_type_p): Only look at the base type
3964 if it has the same precision as the original type.
3966 2005-11-10 Jakub Jelinek <jakub@redhat.com>
3969 * varasm.c (assemble_alias): Use %q+D in the error
3970 message instead of %J and %qD.
3972 2005-11-10 Richard Guenther <rguenther@suse.de>
3974 * gcse.c (free_ldst_entry): Only free hashtable if
3977 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
3979 * function.c (assign_stack_local_1): Issue an error message if
3980 the frame size overflows in the signed target arithmetics.
3982 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
3984 * tree.c (build_qualified_type): Chain the new type to the original
3985 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
3986 a POINTER_TYPE or a REFERENCE_TYPE respectively.
3987 (build_pointer_type_for_mode): Only return unqualified types.
3988 (build_reference_type_for_mode): Likewise.
3990 2005-11-09 Jakub Jelinek <jakub@redhat.com>