1 2005-12-29 Mike Stump <mrs@apple.com>
3 * doc/invoke.texi (Objective-C and Objective-C++ Dialect Options
4 -fobjc-exceptions): Don't imply this doesn't work with the GNU
7 2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
9 * varasm.c (get_section): Use gcc_assert.
11 2005-12-29 Paul Brook <paul@codesourcery.com>
13 * config/m68k/m68k.h (RETURN_ADDR_RTX): Define.
14 * config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME.
15 Include offset due to FIRST_PARM_OFFSET.
17 2005-12-29 Paul Brook <paul@codesourcery.com>
19 * config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask.
20 Create wrapper and rename body...
21 (__cmpdf2_internal): ... to this. Return correct value for unordered
23 (__cmpsf2): Create wrapper and rename body...
24 (__cmpsf2_internal): ... to this. Return corerct value for unordered
26 (__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use
28 (__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use
31 2005-12-29 Paul Brook <paul@codesourcery.com>
33 * config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero.
34 (__truncdfsf2): Ditto.
35 (__extenddfxf2): Ditto.
36 (__truncxfdf2): Ditto.
37 * config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0.
40 2005-12-29 Daniel Jacobowitz <dan@codesourcery.com>
41 Paul Brook <paul@codesourcery.com>
43 * config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for
45 * config/m68k/t-m68kelf (EXTRA_PARTS): Remove.
46 (EXTRA_MULTILIB_PARTS): Set.
47 * config/m68k/t-uclinux (EXTRA_PARTS): Remove.
48 (EXTRA_MULTILIB_PARTS): Set.
50 2005-12-29 Alan Modra <amodra@bigpond.net.au>
53 * config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live.
55 2005-12-28 Nathan Sidwell <nathan@codesourcery.com>
57 * config.gcc (mt-*-*): Add --with-arch support.
58 (--with): Print accepted options on error.
59 * config/mt/mt.h (OPTION_DEFAULT_SPECS): Define.
61 * config/mt/mt.c (DEF_VEC_P(basic_block),
62 DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here.
64 2005-12-28 Daniel Berlin <dberlin@dberlin.org>
66 Fix PR tree-optimization/25394
67 * fold-const.c (fold_checksum_tree): Guard
68 portions of checksumming with correct structure checks.
70 2005-12-27 Kazu Hirata <kazu@codesourcery.com>
72 * global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and
73 DEF_VEC_ALLOC_P(basic_block,{gc,heap}) to ...
74 * basic-block.h: ... here.
76 2005-12-27 Roger Sayle <roger@eyesopen.com>
78 * fold-const.c (int_const_binop): Return NULL_TREE when an expression
79 can't be evaluated at compile-time (instead of calling abort).
80 Return NULL_TREE for division (and modulus) by zero.
81 (const_binop): Return NULL_TREE for floating point operators that
82 aren't handled by real_arithmetic.
83 (fold_binary): Eliminate "wins" variable, and "binary" label, by
84 folding operators with constant operands early. Assert that
85 operands are non-NULL.
87 2005-12-27 Kazu Hirata <kazu@codesourcery.com>
89 * tree-vrp.c (extract_range_from_binary_expr): Use
90 build_int_cst instead of fold_convert.
92 2005-12-26 Mark Mitchell <mark@codesourcery.com>
94 PR c++/23171, c++/23172, c++/25417.
95 * c-decl.c (compound_literal_number): Remove.
96 (build_compound_literal): Use set_compound_literal_name.
97 * c-common.c (compound_literal_number): New variable.
98 (set_compound_literal_name): New function.
99 * c-common.h (set_compound_literal_name): Declare.
101 2005-12-26 Kazu Hirata <kazu@codesourcery.com>
103 PR tree-optimization/25125
104 * convert.c (convert_to_integer): Don't narrow the type of a
105 PLUX_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type
108 2005-12-26 Graham Stott <graham.stott@btinternet.com>
111 * combine.c (simplify_shift_const_1 <case PLUS>):Fix enable-checking
112 rtl bootstrap failure.
114 2005-12-25 Kazu Hirata <kazu@codesourcery.com>
116 * final.c (compute_alignments): Make it static.
117 * gcse.c (gcse_main, bypass_jumps): Likewise.
118 * web.c (web_main): Likewise.
119 * output.h: Remove the prototype for compute_alignments.
120 * rtl.h: Remove the prototypes for web_main, gcse_main, and
123 2005-12-24 Roger Sayle <roger@eyesopen.com>
125 * expr.c (force_operand): Use expand_fix and expand_float to
126 implement integer <-> FP conversions instead of convert_to_mode.
128 2005-12-24 Mark Mitchell <mark@codesourcery.com>
131 * varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a
132 CONSTRUCTOR is invalid.
134 2005-12-23 Daniel Berlin <dberlin@dberlin.org>
136 * tree-pass.h (pass_eliminate_useless_stores): Remove.
137 * tree-ssa-pre.c (is_copy_stmt): Ditto.
138 (follow_copies_till_vuse): Ditto.
140 (gate_eustores): Ditto.
141 (pass_eliminate_useless_stores): Ditto.
142 * passes.c (init_optimization_passes): Ditto.
144 2005-12-23 Paolo Bonzini <bonzini@gnu.org>
146 * combine.c (simplify_shift_const): Fix typo. Use, whenever
147 applicable, simplify_const_binary_operation.
149 (simplify_shift_const): Leave only the fallback
150 case when no simplification is possible. Extract to...
151 (simplify_shift_const_1): ... here. Always create a new
152 RTX instead of substituting. Remove the signed_count variable.
153 Return NULL_RTX if no substitution is possible.
155 (simplify_and_const_int): Leave only the fallback
156 case when no simplification is possible. Extract to...
157 (simplify_and_const_int_1): ... here. Always create a new
158 RTX instead of substituting. Return NULL_RTX if no substitution
161 (force_to_mode, simplify_comparison): Don't pass a non-NULL first
162 parameter to simplify_and_const_int and simplify_shift_const,
163 unless it is equal to the expected non-simplified result.
165 2005-12-23 Jakub Jelinek <jakub@redhat.com>
168 * regrename.c (replace_oldest_value_reg): Use validate_change with
169 IN_GROUP set to 1 instead of doing direct modifications.
170 (copyprop_hardreg_forward_1): Likewise. If any replace_oldest_*
171 replacements have been performed on an instruction, use
172 apply_change_group ().
174 2005-12-23 Hans-Peter Nilsson <hp@axis.com>
176 * config/cris/arit.c (do_31div): Clarify what "31" refers to.
177 [L_divsi3] (__Udiv): Don't use as inline function.
178 [L_modsi3] (__Umod): Ditto.
179 (__Div): Rearrange to call do_31div directly instead of __Udiv.
180 (__Mod): Similarly regarding __Umod.
183 * config/cris/cris.c (cris_split_movdx): Add REG_INC notes for
184 emitted insns with post-increments.
185 (cris_expand_epilogue): Ditto.
187 2005-12-22 Jakub Jelinek <jakub@redhat.com>
188 Richard Henderson <rth@redhat.com>
190 Merge from gomp-branch.
191 * builtins.def: Move all DEF_SYNC_BUILTIN to ...
192 * sync-builtins.def: ... new file.
193 (BUILT_IN_FETCH_AND_ADD_16,
194 BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16,
195 BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16,
196 BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16,
197 BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16,
198 BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16,
199 BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
200 BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16,
201 BUILT_IN_LOCK_RELEASE_16): New builtins.
202 * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
203 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
204 * builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
205 * c-common.c (enum c_builtin_type): Move to top-level from
206 c_common_nodes_and_builtins enum builtin_type.
207 (builtin_types): Move from c_common_nodes_and_builtins.
209 (c_common_nodes_and_builtins): Use it.
210 (def_builtin_1): Check for error_mark_node.
211 (sync_resolve_size): Handle also 128 bit sync builtins.
212 * Makefile.in (BUILTINS_DEF): New. Use it instead of builtins.def.
214 * config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls.
215 (TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define.
216 * config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables.
217 * config/i386/sync.md (CASMODE, DCASMODE): New mode macros.
218 (doublemodesuffix, DCASHMODE): New mode attrs.
219 (sync_compare_and_swap<mode>): Change into expand, use CASMODE
220 instead of IMODE, if mode is wider than a word, expand into
221 sync_double_compare_and_swap*.
222 (*sync_compare_and_swap<mode>): New insn.
223 (sync_double_compare_and_swap<mode>): Likewise.
224 (*sync_double_compare_and_swapdi_pic): Likewise.
225 (sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if
226 mode is wider than a word, expand into
227 sync_double_compare_and_swap_cc*.
228 (sync_double_compare_and_swap_cc<mode>): New insn.
229 (*sync_double_compare_and_swap_ccdi_pic): Likewise.
231 2005-12-22 Richard Henderson <rth@redhat.com>
233 * config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2.
234 (_mm_sub_si64): Likewise.
235 * config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise.
237 2005-12-23 Alan Modra <amodra@bigpond.net.au>
239 PR rtl-optimization/25432
240 * reload1.c (eliminate_regs_in_insn): Update insn code on
241 successfully re-recognizing modified insn.
243 2005-12-22 Richard Guenther <rguenther@suse.de>
245 * tree.c (tree_fold_gcd): Use build_int_cst where appropriate.
246 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
247 * varasm.c (array_size_for_constructor): Likewise.
248 * fold-const.c (size_diffop, invert_truthvalue,
249 optimize_bit_field_compare, make_range, build_range_check,
250 fold_cond_expr_with_comparison, fold_truthop,
251 fold_single_bit_test_into_sign_test, fold_binary): Likewise.
253 2005-12-22 Dale Johannesen <dalej@apple.com>
255 * config/i386/sse.md (sse_movhlps): Reverse operands for
256 2nd and 3rd alternatives.
258 2005-12-22 Andrew Pinski <pinskia@physics.uc.edu>
261 * tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex
264 2005-12-22 Zdenek Dvorak <dvorakz@suse.cz>
265 Steven Bosscher <stevenb@suse.de>
267 * df.c (df_bitmaps_free): Only work for bbs for that structures are
269 (df_bb_modify): Realloc tables to the new index.
270 (df_find_use): New function.
271 (df_find_def, df_reg_used): Handle subregs.
272 * df.h (df_find_use): Declare.
274 * loop-invariant.c: Include hashtab.h.
275 (struct invariant): Remove processed field, add eqto and reg fields.
276 (struct invariant_expr_entry): New.
277 (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
278 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
279 find_identical_invariants, merge_identical_invariants): New functions.
280 (create_new_invariant): Return the new invariant. Initialize new
282 (find_invariants): Call merge_identical_invariants.
283 (get_inv_cost, best_gain_for_invariant, set_move_mark,
284 move_invariant_reg): Handle equivalent invariants.
285 * Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.
287 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
290 * c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
291 number is a single digit '0'.
293 2005-12-22 Kazu Hirata <kazu@codesourcery.com>
295 PR tree-optimization/23518
296 * fold-const.c (make_range): Don't move a constant to the
297 other side of the comparison if the type is signed and -fwrapv
300 2005-12-22 Kazu Hirata <kazu@codesourcery.com>
302 * tree-vrp.c (extract_range_from_binary_expr): Clean up uses
305 2005-12-21 Joseph S. Myers <joseph@codesourcery.com>
308 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
311 2005-12-21 Andrew Haley <aph@redhat.com>
314 * recog.c (peephole2_optimize): Don't peephole any
315 RTX_FRAME_RELATED_P insns.
317 2005-12-21 Kazu Hirata <kazu@codesourcery.com>
319 * tree-data-ref.c (estimate_niter_from_size_of_data): Replace
320 fold_build2 with fold_binary.
321 * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
322 Replace fold_build1 with fold_unary.
323 * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
326 2005-12-21 Steven Bosscher <stevenb@suse.de>
328 PR rtl-optimization/25196
329 * postreload-gcse.c (record_last_set_info): Notice stack pointer
330 changes in push insns without REG_INC notes.
332 2005-12-21 Kazu Hirata <kazu@codesourcery.com>
334 PR tree-optimization/25382.
335 * tree-vrp.c (extract_range_from_binary_expr): Extract a range
338 2005-12-21 Janis Johnson <janis187@us.ibm.com>
339 Ben Elliston <bje@au.ibm.com>
341 * configure.ac: Enable C extension for decimal float if invoked
342 with --enable-decimal-float.
343 * doc/install.texi (Configuration): Document it.
344 * configure, config.in: Regenerate.
346 2005-12-20 Mike Stump <mrs@apple.com>
348 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
349 ambiguity between -seg_addr_table and -seg_addr_table_filename.
350 (WORD_SWITCH_TAKES_ARG): Likewise.
351 (LINK_SPEC): Likewise.
353 2005-12-20 Kenneth Zadeck <zadeck@naturalbridge.com>
355 * cfganal.c (flow_reverse_top_sort_order_compute):
356 Renamed to post_order_compute and additional parameter added which
357 allows the inclusion of entry and exit blocks into list.
358 (mark_dfs_back_edges): Fixed comment.
359 (flow_depth_first_order_compute): Renamed to
360 pre_and_rev_post_order_compute additional parameter added which
361 allows the inclusion of entry and exit blocks into list.
362 * global.c (set_up_bb_rts_numbers): Call to
363 flow_reverse_top_sort_order_compute renamed to
365 * var-tracking.c (vt_stack_adjustments): Fixed comment.
366 (vt_find_locations): Call to
367 flow_depth_first_order_compute renamed to
368 pre_and_rev_post_order_compute.
369 * cfgloop.c (flow_find_loops): Ditto.
370 * tree-ssa-reassoc.c (init_reassoc): Ditto.
371 * df.c (df_analyze_1, df_analyze_subcfg): Calls to
372 flow_reverse_top_sort_order_compute renamed to post_order_compute
373 and calls to flow_reverse_top_sort_order_compute renamed to
375 * basic_block.h: Ditto.
378 2005-12-20 Roger Sayle <roger@eyesopen.com>
379 Paolo Bonzini <bonzini@gnu.org>
381 PR rtl-optimization/25115
382 * gcse.c (pre_insert_copy_insn): Fall back to the sole
383 SET in the insn if there is no SET for an
384 expression that is equivalent to EXPR.
386 2005-12-20 Richard Guenther <rguenther@suse.de>
389 * builtins.c (std_gimplify_va_arg_expr): Do not align
390 va frame for zero sized types.
391 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
393 2005-12-20 Kazu Hirata <kazu@codesourcery.com>
395 PR tree-optimization/25501
396 * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
397 used in the PHI argument corresponding to the edge from BB to
400 2005-12-20 Richard Guenther <rguenther@suse.de>
403 2005-12-02 Richard Guenther <rguenther@suse.de>
405 * tree-cfg.c (mark_used_vars): New function.
406 (dump_function_to_file): Dump only used VAR_DECLs.
408 2005-12-19 Roger Sayle <roger@eyesopen.com>
410 * combine.c (try_combine): Improve splitting of binary operators
411 by taking advantage of reassociative transformations.
413 2005-12-19 Jeff Law <law@redhat.com>
415 * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
416 Strip away all type conversions after simplifying the
419 * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
420 cases the forwarder block dominates the destination.
422 2005-12-19 DJ Delorie <dj@redhat.com>
424 * reload1.c (spill_failure): Dump reload data to dump file.
425 (find_reload_regs): Likewise.
427 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
429 PR tree-optimization/24793
430 * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
431 original reference if there are subvars.
432 * tree-ssa-operands.c (get_tmr_operands): Handle subvars.
434 2005-12-19 Kenneth Zadeck <zadeck@naturalbridge.com>
436 * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
437 Corrected basic block number calculations for changes in entry and
440 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
442 * tree-flow.h (struct var_ann_d): Change type of
443 may_aliases field to VEC(tree, gc) *.
444 (may_aliases): Declaration changed.
445 * tree-ssa-alias.c (group_aliases, add_may_alias,
446 replace_may_alias, dump_may_aliases_for,
447 is_aliased_with, add_type_alias, new_type_alias):
448 Work with VEC(tree, gc) * instead of varray.
449 * tree-flow-inline.h (may_aliases): Ditto.
450 * tree-ssa.c (verify_flow_insensitive_alias_info,
451 verify_name_tags): Ditto.
452 * tree-ssa-operands.c (add_stmt_operand): Ditto.
454 2005-12-19 J"orn Rennecke <joern.rennecke@st.com>
456 * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
459 2005-12-19 J"orn Rennecke <joern.rennecke@st.com>
461 * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
464 2005-12-19 Ben Elliston <bje@au.ibm.com>
466 * doc/install.texi (Configuration): Typo in Fortran subheading.
468 2005-12-19 Nathan Sidwell <nathan@codesourcery.com>
470 * config/mt/mt.md (decrement_and_branch_until_zero): Add another
471 scratch. Correct its reload split. Adjust its peephole.
472 (doloop_end): Add additional scratch.
474 * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
475 (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
476 (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
477 (mt_builtin_saveregs): Replace with ...
478 (mt_setup_incoming_varargs): ... here. Save just the varadic
480 (mt_va_start): Remove.
481 (mt_reorg_hazard): Ignore USE insns. Don't call set_noop_p.
482 (mt_machine_reorg): Split all insns here.
483 (TARGET_SETUP_INCOMING_VARARGS): Override.
484 * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
486 (EXPAND_BUILTIN_VA_START): Remove.
488 2005-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
490 * flow.c (update_life_info, count_or_remove_death_notes): Fixed
491 latent bug that could happen if update_life_info was called with a
492 blocks parameter and the call to cleanup_cfg actually deleted one
495 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
497 * tree-ssa-structalias.c (update_alias_info): Remove handling
498 of may_be_aliased (SSA_NAME_VAR (op)) case.
500 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
502 * tree-flow.h (struct stmt_ann_d): Remove
503 makes_aliased_loads and makes_aliased_stores fields.
504 * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
505 and makes_aliased_loads fields.
506 * tree-ssa-dom.c (eliminate_redundant_computations): Do not
507 use makes_aliased_stores.
508 * tree-ssa-operands.c (clobbered_aliased_loads,
509 clobbered_aliased_stores, ro_call_aliased_loads): Removed.
510 (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
511 add_call_read_ops): Do not set makes_aliased_stores and
512 makes_aliased_loads fields.
513 * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
516 2005-12-18 Geoffrey Keating <geoffk@apple.com>
518 * config/darwin.h: Don't include darwin-sections.def to declare
519 global variables; instead create darwin_section_enum.
520 (darwin_section_enum): New.
521 (darwin_sections): New.
522 * config/darwin.c: Don't include darwin-sections.def to define
524 (darwin_sections): New.
525 (output_objc_section_asm_op): Rewrite to take advantage of
527 (darwin_init_sections): Rewrite to use darwin_sections.
528 (machopic_output_indirection): Update for darwin_sections array.
529 (machopic_select_section): Likewise.
530 (machopic_select_rtx_section): Likewise.
531 (machopic_asm_out_constructor): Likewise.
532 (machopic_asm_out_destructor): Likewise.
533 (darwin_file_end): Likewise.
534 * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
535 * config/i386/i386.c (machopic_output_stub): Likewise.
537 2005-12-18 Richard Guenther <rguenther@suse.de>
539 PR tree-optimization/25481
540 * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
541 don't have a varinfo for.
543 2005-12-18 Jon Grimm <jgrimm2@us.ibm.com>
544 Janis Johnson <janis187@us.ibm.com>
545 Ben Elliston <bje@au.ibm.com>
547 * optabs.c (init_floating_libfuncs): Handle decimal float modes.
548 (init_optabs): Handle libfuncs for decimal float.
549 * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
550 * stor-layout.c (int_mode_for_mode): Likewise.
551 * simplify-rtx.c (simplify_immed_subreg): Likewise.
552 (simplify_unary_operation_1): Skip optimisations for decimal float
554 * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
555 * emit-rtl.c (gen_const_vector): Add assertion check.
556 (init_emit_once): Populate const_tiny_rtx with constants in each
558 * expmed.c (extract_high_half, expand_mult_highpart_optab,
559 expand_mult_highpart): Assert that mode is not a scalar float
561 * expr.c (convert_move): Handle conversion between decimal and
562 binary floats of the same size.
563 * convert.c (convert_to_real): Consider decimal float types when
565 * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
566 describe decimal floating point types.
568 2005-12-18 Ulrich Weigand <uweigand@de.ibm.com>
570 PR rtl-optimization/21041
571 * reload.c (find_reloads_subreg_address): Replace paradoxical
572 subreg of MEM by widened access only if the resulting memory
573 is properly aligned, even on !STRICT_ALIGNMENT targets.
575 2005-12-18 Andreas Krebbel <krebbel1@de.ibm.com>
577 * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
579 2005-12-18 Steven Bosscher <stevenb@suse.de>
581 * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
582 the 2005-12-17 patch to renumber the entry and exit blocks.
584 2005-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
586 * doc/objc.texi (Type encoding): Fix typo.
588 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
590 * tree-tailcall.c (find_tail_calls): Use XNEW.
591 * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
592 (free_all_edge_infos): Use explicit cast to convert from void *.
593 (vrp_free): Likewise.
594 (dom_opt_finalize_block): Likewise.
595 (record_equivalences_from_incoming_edge): Likewise.
596 (thread_across_edge): Likewise. Use XCNEWVEC.
597 (record_cond): Use XCNEW.
598 (record_conditions): Use XNEWVEC.
599 (record_edge_info): Use XCNEWVEC.
600 (lookup_avail_expr): Use XNEW.
601 (record_range): Likewise. Use GGC_NEW.
602 * tree-nested.c (var_map_hash): Use explicit cast to convert from
604 (var_map_eq): Likewise.
605 (lookup_field_for_decl): Likewise.
606 (convert_nonlocal_reference): Likewise.
607 (convert_local_reference): Likewise.
608 (convert_nl_goto_reference): Likewise.
609 (convert_nl_goto_receiver): Likewise.
610 (convert_call_expr): Likewise.
611 (convert_tramp_reference): Likewise.
612 (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
613 (convert_nl_goto_reference): Likewise.
614 (lookup_field_for_decl): Use GGC_NEW.
615 (create_nesting_tree): Use GGC_CNEW.
616 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
617 * tree-ssa-alias.c (init_alias_info): Use XCNEW.
618 (create_alias_map_for): Likewise.
619 (setup_pointers_and_addressables): Use XCNEWVEC.
620 (get_ptr_info): Use GGC_NEW.
621 (used_part_map_eq): Use explicit cast to convert from void *.
622 (up_lookup): Likewise.
623 (up_insert): Use XNEW.
624 (get_or_create_used_part_for): Use XCNEW.
625 (get_tmt_for): Likewise.
626 * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
627 * tree-ssa-pre.c (phi_trans_add): Use XNEW.
628 (bitmap_set_new): Use explicit cast to convert from void *.
630 (insert_into_set): Likewise.
631 (pool_copy_list): Likewise.
632 (phi_translate): Likewise.
633 (create_value_expr_from): Likewise.
634 (insert_aux): Use XCNEWVEC.
635 (compute_avail): Use XNEWVEC.
636 * tree-ssa-live.c (calculate_live_on_entry): Likewise.
637 (sort_coalesce_list): Likewise.
638 (build_tree_conflict_graph): Use XCNEWVEC.
639 * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
640 * tree-ssa-copy.c (init_copy_prop): Likewise.
641 (fini_copy_prop): Likewise.
642 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
644 (record_equiv): Use XNEW.
645 (uncprop_into_successor_phis): Use explicit cast to convert from
647 (uncprop_initialize_block): Likewise.
649 2005-12-18 Dorit Nuzman <dorit@il.ibm.com>
651 PR tree-optimization/24378
652 * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
653 basic-block after loop-versioning.
655 2005-12-18 Jeff Law <law@redhat.com>
657 * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
658 to simplify SWITCH_EXPR_CODE moved from here to ...
659 * tree-ssa-forwprop.c (simplify_switch_expr): Here.
660 (tree-ssa-forward_propagate_single_use_vars): Call
661 simplify_switch_expr when appropriate.
663 2005-12-17 Andrew Pinski <pinskia@physics.uc.edu>
665 * doc/objc.texi (Type encoding): Add documentation about encoding
666 complex types and _Bool.
668 2005-12-17 Paul Brook <paul@codesourcery.com>
670 * config/m68k/m68k.md (m68k_output_function_prologue): Always call
671 dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
672 when frame_pointer_needed.
674 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
676 * tree-vn.c (vn_add): Use XNEW.
677 * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
678 (ccp_fold): Likewise.
679 (fold_stmt_r): Use explicit cast to convert from void *.
680 * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
681 (new_temp_expr_table): Likewise.
682 * gimplify.c (lookup_tmp_var): Use XNEW.
683 (gimplify_asm_expr): Use explcit cast to convert from void *.
684 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
685 (get_def_blocks_for): Use XNEW.
686 (add_to_repl_tbl): Likewise.
687 (mark_def_sites): Use explicit cast to convert from void *.
688 (def_blocks_free): Likewise.
689 (mark_def_sites_initialize_block): Likewise.
690 (update_ssa): Use XNEWVEC.
691 * tree-dfa.c (create_var_ann): Use GGC_NEW.
692 (create_stmt_ann): Likewise.
693 (create_tree_ann): Likewise.
694 (referenced_var_insert): Likewise.
695 (set_default_def): Likewise.
696 (referenced_var_lookup_if_exists): Use explicit cast to convert
698 (referenced_var_lookup): Likewise.
699 (default_def): Likewise.
700 (set_default_def): Likewise.
701 * tree-cfg.c (create_bb): Likewise.
702 (edge_to_cases_cleanup): Likewise.
703 (verify_node_sharing): Likewise.
704 (record_switch_edge): Use XNEW.
705 (cleanup_dead_labels): Use XCNEWVEC.
706 (tree_duplicate_sese_region): Use XNEWVEC.
707 * tree-scalar-evolution.c (get_instantiated_value): Likewise.
708 * tree-ssa.c (verify_ssa): Use XCNEWVEC.
709 (int_tree_map_eq): Use explicit cast to convert from void *.
710 * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
711 (__gcov_execl): Likewise.
712 (__gcov_execlp): Likewise.
713 (__gcov_execle): Likewise.
714 * tree-eh.c (struct_ptr_eq): Likewise.
715 (struct_ptr_hash): Likewise.
716 (lookup_stmt_eh_region_fn): Likewise.
717 (outside_finally_tree): Likewise.
718 (find_goto_replacement): Likewise.
719 (make_eh_edge): Likewise.
720 (mark_eh_edge): Likewise.
721 (add_stmt_to_eh_region_fn): Use GGC_NEW.
722 (record_in_finally_tree): Use XNEW.
723 (maybe_record_in_goto_queue): Use XRESIZEVEC.
724 (lower_try_finally_copy): Use XCNEWVEC.
726 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
728 * tree-inline.c (copy_body_r): Use explicit cast when converting
731 (copy_edges_for_bb): Likewise.
732 (remap_decl_1): Likewise.
733 (estimate_num_insns_1): Likewise.
734 * cgraph.c (hash_node): Use explicit cast when converting from
737 (cgraph_create_node): Use GGC_CNEW.
738 (cgraph_create_edge): Use GGC_NEW.
739 (cgraph_remove_node): Use explicit cast when converting from void *.
740 (hash_varpool_node): Likewise.
741 (eq_varpool_node): Likewise.
742 (cgraph_varpool_node): Use GGC_CNEW.
743 * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
744 * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
745 (eq_scev_info): Use explicit cast when converting from void *.
746 (find_var_scev_info): Likewise.
747 (set_instantiated_value): Likewise.
748 (gather_stats_on_scev_database_1): Likewise.
749 * cfgloop.h (simple_loop_desc): Use explicit cast when converting
751 * c-pch.c (c_common_write_pch): Use XNEWVEC.
752 (c_common_read_pch): Likewise.
753 * prefix.c (save_string): Use XNEWVEC.
754 (translate_name): Use explicit cast when converting from void *.
755 * c-ppoutput.c (print_line): Use explicit cast when converting
757 (pp_dir_change): Likewise.
758 * c-cppbuiltin.c (builtin_define_std): Likewise.
759 (builtin_define_with_value): Likewise.
760 (builtin_define_with_value_n): Likewise.
761 (builtin_define_with_int_value): Likewise.
762 (builtin_define_type_max): Likewise.
763 * c-incpath.c (add_env_var_paths): Use XNEWVEC.
764 (add_path): Use XNEW.
765 * c-format.c (check_format_info_main): Use GGC_NEW.
766 (format_type_warning): Use explicit cast when converting from void *.
767 * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
769 (start_init): Likewise.
770 * tree-flow-inline.h (first_referenced_var): Use explicit cast
771 when converting from void *.
772 (next_referenced_var): Likewise.
773 * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
774 * gensupport.c (lookup_predicate): Use explicit cast to convert
776 (init_predicate_table): Use XCNEW instead of xcalloc.
777 * genpreds.c (process_define_predicate): Likewise.
779 2005-12-17 Danny Berlin <dberlin@dberlin.org>
780 Kenneth Zadeck <zadeck@naturalbridge.com>
782 * basic-block.h: Changed basic block numbering so that the entry
783 block is 0 and the exit block is 1. Changed insn iterators so
784 that they are tolerant of blocks with no insns.
785 * regrename.c (copyprop_hardreg_forward): Changed basic block
786 numbering so that the entry block is 0 and the exit block is 1.
787 * sched-ebb.c (sehedule_ebbs): Ditto.
788 * tracer.c (branch_ratio_cutoff): Ditto.
789 * cfgloopmanip.c (fix_loop_structure): Ditto.
790 * cfghooks.c (verify_flow_info): Ditto.
791 * cfg.c (compact_blocks): Ditto.
792 * reorg.c (dbr_schedule): Ditto.
793 * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
794 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
795 calculate_dominance_info): Ditto.
796 * cfganal.c (create_edge_list, print_edge_list,
797 flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
798 flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
799 dfs_enumerate_from): Ditto.
800 * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
801 * ifcvt.c (find_if_case_2): Ditto.
802 * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
803 find_basic_blocks): Ditto.
804 * predict.c (predict_loops, tree_bb_level_predictions,
805 predict_paths_leading_to, propagate_freq): Ditto.
806 * lcm.c (compute_antinout_edge, compute_laterin,
807 compute_available): Ditto.
808 * function.c (thread_prologue_and_epilogue_insns): Ditto.
809 * gcse.c (gcse_main, bypass_jumps): Ditto.
810 * profile.c (compute_branch_probabilities,
811 compute_value_histograms, branch_prob): Ditto.
812 * tree-flow-inline.h (bsi_start, bsi_after_labels,
814 * tree-ssa-phiopt.c (tree_ssa_phiopt,
815 blocks_in_phiopt_order): Ditto.
816 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
817 compute_out, link_btr_uses, migrate_btr_defs): Ditto.
818 * tree-dfa.c (collect_dfa_stats): Ditto.
819 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
820 * cfglayout.c (fixup_reorder_chain): Ditto.
821 * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
822 partition_hot_cold_basic_blocks): Ditto.
823 * var-tracking.c (vt_find_locations): Ditto.
824 * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
825 * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
826 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
827 label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
828 * tree-ssa-reassoc.c (init_reassoc): Ditto.
829 * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
830 rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
831 * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
832 and removed unused reverse orders.
834 * combine.c: Fix document typo.
836 2005-12-17 Jan Hubicka <jh@suse.cz>
838 * tree-flow-inline.h (set_default_def, default_def): Kill.
839 * tree-dfa.c (default_defs): New global variable.
840 (default_def, set_default_def): New functions.
841 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
842 * tree-flow.h (struct var_ann_d): Kill default_def field.
843 (set_default_def, default_def): Update prototype.
844 (default_defs): Declare.
846 2005-12-16 Jeff Law <law@redhat.com>
848 * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
849 (simplify_rhs_and_lookup_avail_expr): Kill. Remnants moved
850 into tree-ssa-forwprop.c.
851 (eliminate_redundant_computations): Do not call
852 simplify_rhs_and_lookup_avail_expr anymore.
853 * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
854 extracted from remnants of simplify_rhs_and_lookup_avail_expr.
855 (tree_ssa_forward_propagate_single_use_vars): Call
856 simplify_not_neg_expr appropriately.
858 2005-12-16 Bernd Trog <berndtrog@yahoo.com>
861 * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
863 2005-12-17 Kazu Hirata <kazu@codesourcery.com>
865 PR rtl-optimization/25456
866 * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
867 info->x_start with p->x_start.
869 2005-12-17 Alan Modra <amodra@bigpond.net.au>
871 * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
872 introduced 2005-12-16.
874 2005-12-16 Steven Bosscher <stevenb@suse.de>
876 PR rtl-optimization/23837
877 * optabs.c (expand_binop): For a multi-word rotate, never emit
878 a REG_NO_CONFLICT block.
880 2005-12-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
883 * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
886 * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
889 2005-12-16 Steven Bosscher <stevenb@suse.de>
891 * loop-invariant.c (move_loop_invariants): Add missing hunk from
892 the previous patch, to nullify df.
894 2005-12-16 Steven Bosscher <stevenb@suse.de>
896 * reorg.c (mostly_true_jump): Clean up code depending on
897 LABEL_OUTSIDE_LOOP_P and loop notes. Remove code doing
898 poor man's branch prediction, instead rely on REG_BR_PROB
899 notes to be available.
901 2005-12-16 Jakub Jelinek <jakub@redhat.com>
903 PR rtl-optimization/24899
904 * loop.c (strength_reduce): Don't reduce giv that is not always
905 computable and where add_val or mult_val can trap.
907 * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
909 2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
911 * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
912 names of ms1-16-002 files.
914 2005-12-16 Alan Modra <amodra@bigpond.net.au>
917 * gcc.c (for_each_path): New function.
918 (add_to_obstack, file_at_path): New functions.
919 (struct file_at_path_info, struct add_to_obstack_info): New.
920 (build_search_list): Rewrite using for_each_path. Constify struct
921 path_prefix pointer. Add do_multi param. Adjust all callers.
922 (find_a_file): Similarly, but just change existing param to bool.
923 (putenv_from_prefixes): Add do_multi param, make "paths" const.
924 (do_spec_path): Delete.
925 (struct spec_path_info): New.
926 (spec_path): New function.
927 (do_spec_1): Use for_each_path for %D and %I.
928 (find_file): Adjust for find_a_file changes.
929 (main): Search multilibs for specs. Print multilib lib path for
930 -print-search-dirs. Likewise add multilibs to LIBRARY_PATH_ENV.
931 (read_specs): Search multilibs for %include and %include_noerr.
932 (is_directory): Remove second string param. Change last param
933 to a bool. Don't use concat. Remove SMALL_ARG_MAX test, always
934 check path is a dir. Update all callers.
935 * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
936 * system.h (SMALL_ARG_MAX): Poison.
937 * config.gcc: Don't define SMALL_ARG_MAX.
938 * config.host: Likewise.
939 * config.build: Likewise.
941 2005-12-16 Paolo Bonzini <bonzini@gnu.org>
943 * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
944 FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
945 ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
946 simplify_logical): Move simplifications that do not require
947 additional infrastructure...
948 * simplify-rtx.c (simplify_unary_operation_1,
949 simplify_binary_operation_1): ... here.
951 2005-12-16 Andreas Krebbel <krebbel1@de.ibm.com>
954 * flow.c (mark_used_dest_regs): New function.
955 (mark_used_regs): Call mark_used_dest_regs.
957 2005-12-16 Jeff Law <law@redhat.com>
959 * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
960 represent a use and definition of the same SSA_NAME.
962 2005-12-16 Jon Grimm <jgrimm2@us.ibm.com>
963 Janis Johnson <janis187@us.ibm.com>
964 Ben Elliston <bje@au.ibm.com>
966 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
967 (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
968 * target.h (struct gcc_target): Add decimal_float_supported_p.
969 * targhooks.c (default_scalar_mode_supported_p): Handle
971 * builtins.def: Add new builtins for 32, 64 and 128 bit variants
972 of inf, nan, finite, isinf and isnan.
973 * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
974 BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
975 BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
976 BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
977 BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
978 BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
979 BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
980 * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
981 Pedwarn if decimal floating point types are used. Error if
982 decimal floating point is not supported by the target.
983 (finish_declspecs): Return type from DFP typespec_word.
984 * c-typeck.c (c_common_type): Choose the decimal floating point
985 type with the greater precision when determining a common type.
986 (convert_arguments): Warn if there is a mismatch between argument
987 and prototype for decimal float types. Warn of conversions with
988 binary float types and of precision narrowing due to prototype.
989 * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
990 (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
991 (c_token_starts_declspecs): Likewise.
992 (c_parser_attributes): Likewise.
993 * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
994 RID_DFLOAT64, RID_DFLOAT128.
995 (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
996 * c-common.c (c_common_type_for_mode): Handle decimal float modes.
997 (shorten_compare): Convert DFP/BFP operands to a common type.
998 (c_common_modes_and_builtins): Register built-in decimal float
999 types if the target supports them.
1000 (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
1001 * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
1002 inf, nan, finite, isinf and isnan builtins.
1003 * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
1004 (builtin_define_float_constants): Assert non-decimal radix.
1005 (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
1006 Call builtin_define_decimal_float_constants for each type.
1007 * c-lex.c (interpret_float): Decode decimal float types from CPP_N
1008 flags. Use real_from_string3, which can handle binary or decimal
1010 * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
1011 cts_dfloat64, cts_dfloat128.
1012 * tree.c (build_common_tree_nodes_2): Add decimal float types.
1013 * tree.h (enum tree_index): Add new enumeration values
1014 TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
1015 TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
1016 (dfloat32_type_node): New macro.
1017 (dfloat64_type_node, dfloat128_type_node): Likewise.
1018 (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
1019 (dfloat128_ptr_type_node): Likewise.
1020 * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
1021 bit decimal floating point types with "df", "dd" and "dl".
1022 * c-format.h (enum format_lengths): Add new enumeration values
1023 FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
1024 * c-format.c (printf_length_specs, scanf_length_specs): Add
1025 entries for H, D, DD.
1026 (print_char_table, scan_char_table): Use new entries.
1027 (asm_fprintf_char_table, gcc_diag_char_table,
1028 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
1030 * defaults.h (DECIMAL32_TYPE_SIZE): Define.
1031 (DECIMAL64_TYPE_SIZE): Likewise.
1032 (DECIMAL128_TYPE_SIZE): Likewise.
1033 (TARGET_DEC_EVAL_METHOD): Likewise.
1034 * doc/extend.texi (Decimal Float): New node.
1035 (Constructing Calls): Document decimal float built-ins.
1036 * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
1037 * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
1038 * ginclude/decfloat.h: New file.
1040 2005-12-16 Alan Modra <amodra@bigpond.net.au>
1042 * reload.c (find_reloads): Fix comment typo.
1043 * recog.h (recog_memoized): Correct comment.
1045 2005-12-16 Kazu Hirata <kazu@codesourcery.com>
1047 * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
1048 config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
1049 reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
1050 tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
1051 * doc/invoke.texi, doc/tm.texi: Fix typos.
1053 2005-12-16 Ben Elliston <bje@au.ibm.com>
1055 * real.c (decimal_quad_format): Correct values for emin, emax.
1057 2005-12-15 DJ Delorie <dj@redhat.com>
1059 * config/m32c/predicates.md (m32c_psi_scale): New.
1060 * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
1061 * config/m32c/muldiv.md (mulpsi3): Support negative constants.
1063 2005-12-16 Jan Hubicka <jh@suse.cz>
1065 PR rtl-optimization/25224
1066 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
1069 2005-12-15 Zdenek Dvorak <dvorakz@suse.cz>
1070 Steven Bosscher <stevenb@suse.de>
1072 * loop-invariant.c (df): New global variable.
1073 (find_defs, check_dependencies, find_invariant_insn, record_uses,
1074 find_invariants_bb, find_invariants_body, find_invariants,
1075 find_invariants_to_move, move_invariants, free_inv_motion_data,
1076 move_single_loop_invariants, move_loop_invariants): Do not pass df in
1079 2005-12-15 Jakub Jelinek <jakub@redhat.com>
1081 * varasm.c (default_unique_section_1): Use special section
1082 names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
1084 2005-12-16 Ben Elliston <bje@au.ibm.com>
1086 * doc/invoke.texi (Warning Options): Document -Walways-true being
1089 2005-12-15 Joseph S. Myers <joseph@codesourcery.com>
1092 * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
1093 * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
1094 __floatunditf): Use #error if type sizes don't match requirements
1096 (__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode
1097 as wider floating-point type. Use #error if type sizes don't
1098 match requirements of implementation. Avoid overflow in computing
1099 Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion,
1100 shift one more bit. Cast 1 to DWtype or UDWtype for shifting.
1101 (__floatundisf, __floatundidf): Likewise.
1102 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
1103 * config/ia64/ia64.c (ia64_init_libfuncs): Use
1104 _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
1105 TFmode-TImode conversions.
1106 * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
1108 2005-12-14 Craig Rodrigues <rodrigc@gcc.gnu.org>
1110 * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
1111 Use builtin_define_with_int_value() instead of
1112 adding a new check for every new major FreeBSD version.
1114 2005-12-14 Andrew Pinski <pinskia@physics.uc.edu>
1116 * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
1118 2005-12-15 Richard Sandiford <richard@codesourcery.com>
1120 * config/arm/predicates.md (call_memory_operand): New.
1121 * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
1123 2005-12-15 Andrew Haley <aph@redhat.com>
1125 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
1126 against prev_cache_entry == NULL when moving a cache entry to the
1129 2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
1131 * config/mt/mt.c (mt_override_options): Require lower case
1132 architectures. Revert accidental default to ms2.
1133 * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
1134 ENDFILE_SPEC): Require lower case architectures. Revert default
1137 * doc/invoke.texi (MT Options): Rename and update.
1138 * doc/md.texi (MorphoTech family): Rename and update.
1140 2005-12-15 Olivier Hainque <hainque@adacore.com>
1142 * stor-layout.c (layout_type): Don't complain about a too small
1143 an array element type size compared to its alignment when the
1146 2005-12-15 Jan Hubicka <jh@suse.cz>
1149 * i386.c (classify_argument): Properly adjust offset of bitfield for
1152 2005-12-15 Richard Sandiford <richard@codesourcery.com>
1154 * final.c (final_scan_insn): Flip in_cold_section_p when changing
1155 between the hot and cold sections. Use current_function_section
1156 to get the new section.
1157 * dwarf2out.c (output_line_info): Use in_cold_section_p to
1158 determine whether we are assembling hot or cold code.
1159 (secname_for_decl, dwarf2out_var_location): Likewise.
1160 (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
1161 * varasm.c (last_text_section): Delete.
1162 (in_cold_section_p): New variable.
1163 (hot_function_section): New function.
1164 (current_function_section): Pass in_cold_section_p as the
1165 reloc argument to select_section. Use it to decide between
1166 unlikely_function_section and hot_function_section.
1167 (assemble_start_function): Use switch_to_section. Set
1168 in_cold_section_p instead of last_text_section.
1169 (assemble_end_function): Use switch_to_section.
1170 (switch_to_section): Don't set last_text_section.
1171 * config/darwin/darwin.c (machopic_select_section): Trust the reloc
1172 argument to make the right choice between hot and cold sections.
1174 2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
1176 Second part of MS1->MT renaming
1177 * config/mt/mt.md (doloop_end): Call mt_add_loop.
1178 (movqi, movhi): Call mt_set_memflags.
1179 (*movdf_internal): Call mt_split_words.
1180 (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
1182 (cmpsi): Store to mt_compare_op[01].
1183 (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
1184 bungt, bunle, bunlt): Call mt_emit_cbranch.
1185 (prologue): Call mt_expand_prologue.
1186 (epilogu): Call mt_expend_epilogue.
1187 (eh_return): Call mt_expand_eh_return.
1188 (eh_epilogue): Call me_emit_eh_epilogue.
1189 (conditional_trap): Store to mt_compare_op[01].
1190 * config/mt/crti.asm: Adjust comment.
1191 * config/mt/crtn.asm: Adjust comment.
1192 * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
1193 (mt_compare_op0, mt_compare_op1): Renamed.
1194 (current_frame_info, zero_frame_info): Adjust type.
1195 (mt_ucmpsi3_libcall): Renamed.
1196 (mt_flag_delayed_branch): Renamed.
1197 (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
1198 (mt_nops_required, mt_nop_reasons): Renamed.
1199 (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
1200 mt_debug_stack, mt_print_operand_simple_address,
1201 mt_print_operand_address, mt_print_operand): Renamed, adjusted.
1202 (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
1203 mt_function_arg_advance, mt_arg_partial_bytes,
1204 mt_pass_by_reference, mt_function_arg_boundary,
1205 mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
1206 mt_legitimate_address_p): Renamed, adjusted.
1208 (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
1209 mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
1210 mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p,
1211 mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
1212 mt_expand_eh_return, mt_emit_eh_prologue,
1213 mt_handl_interrupt_attribute): Renamed, adjusted.
1214 (mt_attribute_table): Renamed, adjusted.
1215 (mt_initial_elimination_offset, mt_generate_compare,
1216 mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
1217 mt_secondary_reload_class, mt_function_value, mt_split_words,
1218 mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
1219 mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
1220 (mt_labels): Renamed.
1221 (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
1222 mt_machine_reorg): Renamed, adjusted.
1223 (mt_attribute_table: Renamed.
1224 (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
1225 TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
1226 TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
1227 * config/mt/mt.opt (march): Set mt_cpu_string.
1228 * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
1229 (TARGET_CPU_CPP_BUILTINS): Adjust.
1230 (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
1231 TARGET_MS2): Adjust.
1232 (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
1233 (MT_MIN_INT): Renamed.
1234 (RETURN_ADDR_RTX): Adjust.
1235 (struct mt_frame_info): Renamed.
1236 (current_frame_info): Adjust type.
1237 (INITIAL_ELIMINATION_OFFSET): Adjust.
1238 (MT_NUM_ARG_REGS): Renamed.
1239 (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
1240 FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
1241 LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
1242 GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
1243 FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
1244 (mt_compare_op0, mt_compare_op1): Renamed.
1245 * config/mt/mt-protos.h: Rename prototypes.
1247 2005-12-15 Richard Guenther <rguenther@suse.de>
1249 * tree-flow.h (okay_component_ref_for_subvars): Remove.
1250 (get_ref_base_and_extent): Declare.
1251 * tree-dfa.c (okay_component_ref_for_subvars): Remove.
1252 (get_ref_base_and_extent): New function.
1253 * tree-ssa-alias.c (find_used_portions): Use it.
1254 * tree-ssa-structalias.c (get_constraint_for_component_ref):
1256 * tree-ssa-operands.c (get_expr_operands): Likewise.
1258 2005-12-15 Paolo Bonzini <bonzini@gnu.org>
1260 * combine.c: Remove force_to_mode's fourth parameter.
1261 (force_to_mode): Do not handle REG.
1262 (canon_reg_for_combine): New.
1263 (make_field_assignment): Use it where the removed argument was non-NULL.
1265 2005-12-15 Alan Modra <amodra@bigpond.net.au>
1268 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
1269 error_mark_node. Make alignment params unsigned.
1270 * config/rs6000/rs6000-protos.h
1271 (rs6000_special_round_type_align): Update prototype.
1272 (rs6000_machopic_legitimize_pic_address): Remove arg names.
1274 2005-12-14 Ulrich Weigand <uweigand@de.ibm.com>
1276 PR rtl-optimization/25310
1277 * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
1278 of the eliminable register when substituting into a PLUS.
1280 2005-12-14 Jakub Jelinek <jakub@redhat.com>
1283 * config/i386/i386.c (ix86_force_to_memory): Always use
1284 SImode push for HImode in -m32.
1285 (ix86_free_from_memory): Likewise.
1287 2005-12-14 Richard Sandiford <richard@codesourcery.com>
1289 * gcc/config/arm/arm.md: Provide a big-endian version of the
1290 (zero_extend:SI (subreg:QI ...)) splitter.
1292 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
1294 * struct-equiv.c (note_local_live): Handle hard regs with different
1297 2005-12-14 Jeff Law <law@redhat.com>
1299 * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
1300 to a structure containing state rather than a pointer to bool.
1301 (case ARRAY_REF): New code to handle folding some array references.
1302 (case ADDR_EXPR): Note when we are processing expressions found
1303 within an ADDRE_EXPR.
1304 (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
1305 for state variables rather than just a pointer to a boolean.
1306 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1307 handling of constant string references.
1309 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
1311 * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
1312 ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
1313 ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
1314 Move other tst* patterns to retain partial order.
1316 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
1318 * config/s390/s390.md ("d0", "1"): New mode attributes.
1319 ("<shift>di3", "<shift>si3"): Merge.
1320 ("*<shift>di3_and", "*<shift>si3_and"): Merge.
1321 ("ashrdi3", "ashrsi3"): Merge.
1322 ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
1323 ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
1324 ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
1325 ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
1326 ("*ashrdi3", "*ashrsi3"): Merge.
1327 ("*ashrdi3_and", "*ashrsi3_and"): Merge.
1329 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
1331 * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
1332 ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
1333 ("*extendqidi2", "*extendqisi2") Merge.
1334 ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
1335 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1336 ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
1337 Move some patterns to retain partial ordering.
1339 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
1341 * config/s390/s390.md ("atype", "length"): Rewrite.
1342 ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
1344 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
1346 * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
1348 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
1350 * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
1351 PARALLELs with a mode.
1353 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
1355 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
1356 cond_expr parameter.
1358 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
1360 * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
1362 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
1366 * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
1369 * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
1371 2005-12-14 Jakub Jelinek <jakub@redhat.com>
1375 * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
1376 DECL_P, call get_section rather than get_named_section. Supply
1377 section flags to it.
1379 2005-12-14 Ben Elliston <bje@au.ibm.com>
1381 * c-common.c (c_common_truthvalue_conversion): Generalise warning
1382 for addresses converted to booleans; not just function addresses.
1383 * c-typeck.c (build_binary_op): Warn for address comparisons which
1384 can never be NULL (eg. func == NULL or &var == NULL).
1385 * common.opt (Walways-true): New option.
1386 * c-opts.c (c_common_handle_option): Set it with -Wall.
1387 * doc/invoke.texi: Document it.
1389 2005-12-13 Paul Brook <paul@codesourcery.com>
1391 * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
1392 __floatunsidf, __floatunsisf, __floatunsixf): New functions.
1394 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
1396 * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
1397 (EXTRA_MULTILIB_PARTS): Define.
1399 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
1401 PR rtl-optimization/20070 / part1
1402 * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
1403 count_or_remove_death_notes with kill == -1.
1404 (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
1405 registers if PROP_POST_REGSTACK is set.
1406 (mark_used_reg): Likewise.
1407 (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
1408 REG_UNUSED notes for stack regs.
1409 * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
1410 to match rtx_equiv_p machinery. Change caller.
1411 (outgoing_edges_match): Likewise.
1412 (try_crossjump_to_edge): Use struct_equiv_block_eq
1413 instead of flow_find_cross_jump.
1414 * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
1415 (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
1416 (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
1417 (STRUCT_EQUIV_MAX_LOCAL): Likewise.
1418 (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
1419 (insns_match_p): Update prototype.
1420 (flow_find_cross_jump): Remove prototype.
1421 (struct_equiv_block_eq, struct_equiv_init): Declare.
1422 (rtx_equiv_p, condjump_equiv_p): Likewise.
1423 * struct-equiv.c: Include reload.h.
1424 (IMPOSSIBLE_MOVE_FACTOR): Define.
1425 (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
1426 (struct_equiv_improve_checkpoint): Likewise.
1427 (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
1428 (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
1429 (struct_equiv_merge, find_dying_input): Likewise.
1430 (resolve_input_conflict, note_local_live): Likewise.
1431 (death_notes_match_p): Change parameters and processing
1432 to match rtx_equiv_p machinery. Change caller.
1433 (insns_match_p): Likewise.
1434 (flow_find_cross_jump): Replace with:
1435 (struct_equiv_block_eq).
1437 Back out this change:
1438 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
1439 * recog.c (verify_changes): Make it static.
1440 * recog.h: Remove the corresponding prototype.
1442 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
1444 * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
1447 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
1449 * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
1450 (MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'.
1451 * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
1452 TARGET_MS1_64_001 appropriately.
1453 (ms1_machine_reorg): Use TARGET_MS2.
1455 2005-12-13 Jakub Jelinek <jakub@redhat.com>
1459 * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
1460 and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
1461 Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
1462 * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
1463 Set mode to SI, adjust constraints.
1464 (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
1465 * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
1468 2005-12-13 Carlos O'Donell <carlos@codesourcery.com>
1470 * c-cppbuiltin.c (builtin_define_float_constants): Add
1471 fp_cast parameter, pass to builtin_define_with_hex_fp_value.
1472 Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
1473 (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
1474 (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
1475 to "((double)%sL)" otherwise "%s".
1477 2005-12-13 Paul Brook <paul@codesourcery.com>
1479 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
1482 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
1484 * tree-flow.h: Allow compilation with a C++ compiler.
1485 (struct edge_prediction): Prefix all field names with "ep_".
1486 * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
1487 (tree_predict_edge, combine_predictions_for_bb): Likewise.
1488 (remove_predictions_associated_with_edge): Likewise.
1490 2005-12-12 Jeff Law <law@redhat.com>
1492 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1494 * passes.c (init_optimization_passes): Run reassociation again
1495 after loop optimizations.
1497 2005-12-12 Daniel Berlin <dberlin@dberlin.org>
1499 * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
1501 (optimize_stmt): Ditto.
1502 (canonicalize_comparison): New function.
1503 * tree-ssa-operands.c (swap_tree_operands): Make external.
1504 (get_expr_operands): Stop auto-canonicalization.
1505 * tree-ssa-reassoc.c: Rewrite.
1506 (init_optimization_passes):
1507 * tree-flow.h (swap_tree_operands): Prototype.
1508 * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
1510 2005-12-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1512 * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
1513 indicate function epilogue has been output.
1514 (pa_asm_output_mi_thunk): Likewise.
1515 (output_deferred_plabels): Put plabels in readonly data section when
1516 not generating PIC code.
1517 (som_output_text_section_asm_op): Use .NSUBSPA to output debug
1518 information. Add assert.
1519 (som_output_comdat_data_section_asm_op): New function.
1520 (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
1521 instead of output_section_asm_op for COMDAT sections.
1523 2005-12-12 J"orn Rennecke <joern.rennecke@st.com>
1525 * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
1526 Fix whitespace in vincinity of to-be-installed changes.
1527 * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
1528 (insns_match_p): Likewise.
1530 2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
1532 * config.gcc (ms1): Replace with ...
1534 * config/ms1: Rename to ...
1535 * config/mt: ... here. Rename ms1 files to mt.
1536 * config/mt/mt.c: Adjust gt-mt.h #include.
1537 * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
1538 (crti.o, crtn.o): Adjust file names.
1540 2005-12-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
1542 * varray.h: Allow compilation with a C++ compiler.
1543 (union varray_data_tag): Prefix all field names with "vdt_".
1544 (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
1545 VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
1546 VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
1547 VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
1548 VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
1549 VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
1550 (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
1551 VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT,
1552 VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT,
1553 VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR,
1554 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR,
1555 VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE,
1556 VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB,
1557 VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
1558 (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT,
1559 VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT,
1560 VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT,
1561 VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR,
1562 VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX,
1563 VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP,
1564 VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE,
1565 VARRAY_TOP_TREE_PTR): Likewise.
1566 * varray.c (varray_grow): Likewise.
1567 (varray_clear): Likewise.
1569 2005-12-12 Alan Modra <amodra@bigpond.net.au>
1572 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
1573 alignment to doubleword if the first field is a double array.
1574 * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
1576 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1578 * tree-ssa-structalias.c (process_constraint): Remove code to
1579 transform addressofs into scalar.
1580 (create_variable_info_for): In whole-program IPA, globals don't
1581 point to ANYTHING by default.
1583 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1585 * timevar.def (TV_IPA_PTA): New.
1586 * tree-pass.h (pass_ipa_pta): New
1587 * tree-ssa-structalias.c: Include cgraph.h
1589 (predbitmap_obstack): New.
1590 (EXECUTE_IF_IN_NONNULL_BITMAP): New.
1591 (struct constraint_stats): Add num_edges.
1592 (new_var_info): Don't call bitmap_clear.
1593 (struct constraint_edge): Update docs.
1594 (new_constraint_edge): Remove src param.
1595 (struct constraint_graph): Add zero_weight_succs,
1596 zero_weight_preds. Update docs.
1597 (constraint_expr_equal): Reformat.
1598 (constraint_edge_equal): Update for removal of src.
1599 (constraint_edge_less): Ditto.
1600 (constraint_edge_vec_find): Ditto.
1601 (erase_graph_self_edge): Update for removal of src and and zero
1603 (clear_edges_for_node): Ditto.
1604 (add_graph_edge): Ditto.
1605 (get_graph_weights): Ditto.
1606 (allocate_graph_weights): Ditto.
1607 (merge_graph_nodes): Ditto.
1608 (int_add_graph_edge): Ditto.
1609 (valid_graph_edge): Ditto.
1610 (valid_weighted_graph_edge): Ditto.
1611 (build_constraint_graph): Ditto.
1613 (collapse_nodes): Ditto.
1614 (process_unification_queue): Ditto.
1615 (topo_visit): Ditto.
1616 (solve_graph): Ditto.
1617 (do_structure_copy): Ditto.
1618 (perform_var_substitution): Ditto.
1619 Init and release obstack.
1620 (handle_ptr_arith): Try to resolve directly.
1621 (find_func_aliases): Don't call update_alias_info here
1622 Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
1623 (do_sd_constraint): Add code for propagating faster.
1625 (do_ds_constraint): Ditto.
1626 (count_num_arguments): New function.
1627 (create_function_info_for): Ditto.
1628 (create_variable_info_for): Handle FUNCTION_DECL.
1629 (intra_create_variable_infos): Use make_constraint_to_anything.
1630 (init_alias_vars): Init obstacks here.
1631 (need_to_solve): Handle zero weight graph changes.
1632 (compute_points_to_sets): Call update_alias_info here.
1633 (delete_points_to_sets): Free zero weight preds/succs here.
1634 (gate_ipa_pta): New.
1635 (ipa_pta_execute): New
1637 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1639 * tree-ssa-structalias.c (var_anyoffset): Removed.
1640 (anyoffset_tree): Ditto.
1641 (anyoffset_id): Ditto.
1642 (do_deref): Take vector of constraints, no return value.
1643 Update to work on vector.
1644 (get_constraint_for): Ditto.
1645 (get_constraint_for_component_ref): Ditto.
1646 (do_structure_copy): Ditto.
1647 (handle_ptr_arith): Ditto.
1648 (find_func_aliases): Ditto.
1649 (set_uids_in_ptset): Remove anyoffset handling.
1650 (init_base_vars): Ditto.
1652 2005-12-10 Mark Mitchell <mark@codesourcery.com>
1655 * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
1656 DECL_EXTERNAL functions have no bodies. Tidy.
1658 2005-12-10 Andreas Schwab <schwab@suse.de>
1660 * except.c (switch_to_exception_section): Only define if
1661 TARGET_UNWIND_INFO is not defined.
1663 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1665 * config/darwin.h (HAS_INIT_SECTION): Remove definition.
1666 (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
1668 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1670 * output.h (init_section, fini_section): Delete.
1671 * varasm.c (init_section, fini_section): Delete.
1672 (init_varasm_once): Don't initialize them.
1673 * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
1674 there are no corresponding varasm.c variables.
1676 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1678 * dwarf2out.c (default_eh_frame_section): Delete, moving handling
1679 of EH_FRAME_SECTION_NAME into...
1680 (switch_to_eh_frame_section): ...here. Try to set eh_frame_section
1681 if it is still null.
1682 * except.c (default_exception_section): Delete, moving most
1684 (switch_to_exception_section): ...this new function. Set
1685 exception_section if it is still null, then switch to it.
1686 (output_function_exception_table): Use switch_to_exception_section.
1687 * varasm.c (exception_section, eh_frame_section): Update comments.
1688 (get_section): Hoist use of SECTION_NAMED.
1689 (init_varasm_once): Don't set exception_section and eh_frame_section.
1690 * output.h (default_exception_section): Delete.
1691 (default_eh_frame_section): Delete.
1693 2005-12-09 Bernd Schmidt <bernd.schmidt@analog.com>
1695 * config/bfin/bfin.c: Include "cgraph.h".
1696 (bfin_load_pic_reg): Omit loading pic reg if in a local function.
1697 Return the reg that holds the pointer to the GOT.
1698 (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
1699 doing stack checking.
1701 2005-12-09 Diego Novillo <dnovillo@redhat.com>
1703 * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
1704 recompute_tree_invarant_for_addr_expr.
1705 Update uses everywhere.
1707 2005-12-09 Aldy Hernandez <aldyh@redhat.com>
1709 * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
1710 (MULTILIB_DIRNAMES): Define.
1712 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
1715 * config/s390/s390.c (struct s390_address): New field literal_pool.
1716 (s390_decompose_address): Compute literal_pool field. Do not
1717 assume register %r13 is always (and solely) used as pool base.
1718 (s390_extra_constraint_str): Use literal_pool field.
1720 2005-12-09 Thiemo Seufer <ths@networkno.de>
1722 * config/mips/mips.c (override_options): Don't allow too small
1723 integers in FP registers.
1725 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
1727 * config/s390/s390.c (s390_function_ok_for_sibcall): Use
1728 targetm.binds_local_p to check for local function calls.
1730 2005-12-09 Alan Modra <amodra@bigpond.net.au>
1733 * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
1734 call_used_regs can't be used to save reg in another reg.
1736 2005-12-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1737 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
1739 * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
1741 * except.c (output_ttype): Likewise.
1742 * tree-object-size.c (collect_object_sizes_for): Likewise.
1743 (check_for_plus_in_loops_1): Likewise.
1744 (check_for_plus_in_loops): Likewise.
1745 (compute_object_sizes): Use gcc_unreachable instead of abort.
1747 2005-12-08 Nathan Sidwell <nathan@codesourcery.com>
1749 * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
1750 (loop_end, loop_init, doloop_end): New insns.
1751 * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
1752 (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
1753 (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1754 (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
1755 * config/ms1/ms1.c: #include basic-block.h
1756 (struct machine_function): Add has_loops field.
1757 (ms1_add_loop): New.
1758 (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
1759 (struct loop_info, struct loop_work): New.
1760 (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
1761 (ms1_reorg_loops): New loop optimization.
1762 (ms1_machine_reorg): Call it.
1763 * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
1765 2005-12-08 Zdenek Dvorak <dvorakz@suse.cz>
1767 PR tree-optimization/25248
1768 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
1769 evolution_of_loop from the failed attempt. Remove handling
1772 2005-12-08 Gabriel Dos Reis <gdr@integrable-solutions.net>
1774 * tree.h (DECL_EXTERNAL): Clarify documentation.
1776 2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com>
1777 Jakub Jelinek <jakub@redhat.com>
1780 * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
1781 argument. Don't drop outer ANDs.
1782 (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
1783 * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
1785 * config/s390/predicates.md (setmem_operand): Remove.
1786 (shift_count_operand): Rename to...
1787 (shift_count_or_setmem_operand): ... this. Adjust
1788 s390_decompose_shift_count caller.
1789 * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
1790 ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
1791 ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
1792 <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
1793 rotl<mode>3_and, setmem_long_and): New insns.
1794 (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
1795 ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
1796 <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
1797 <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
1798 of shift_count_operand.
1799 (setmem_long): Use shift_count_or_setmem_operand instead of
1802 2005-12-08 Daniel Jacobowitz <dan@codesourcery.com>
1803 Andreas Tobler <a.tobler@schweiz.ch>
1805 * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
1808 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1810 * expr.c (force_operand): Use convert_to_mode for conversions.
1812 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1814 * reload.h (reg_equiv_invariant): Declare.
1815 * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
1816 register also when reg_equiv_invariant[R] is set.
1818 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1819 Andreas Tobler <a.tobler@schweiz.ch>
1821 * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
1823 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
1825 * tree-ssa-pre.c (bitmap_set_and): New function.
1826 (bitmap_set_and_compl): New function.
1827 (bitmap_set_empty_p): New function.
1828 (insert_extra_phis): New function.
1829 (compute_avail): Use insert_extra_phis.
1831 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
1833 * config/s390/s390.c (s390_expand_atomic): New function.
1834 Adjust comment of helper functions.
1835 * config/s390/s390-protos.h (s390_expand_atomic): Declare.
1836 * config/s390/s390.md ("ATOMIC"): New code macro.
1837 ("atomic"): Corresponding new code attribute.
1838 ("sync_lock_test_and_set[hq]i",
1839 "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
1841 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
1843 * config/s390/s390.c (s390_expand_mask_and_shift,
1844 struct alignment_context, init_alignment_context,
1845 s390_expand_cs_hqi): New.
1846 * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
1847 * config/s390/s390.md ("sync_compare_and_swaphi",
1848 "sync_compare_and_swapqi"): New pattern.
1850 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
1852 Fix PR tree-optimization/25291
1853 * tree-ssa-operands.c (add_call_clobber_ops): Remove
1854 redundant and crashing check.
1856 2005-12-08 Alan Modra <amodra@bigpond.net.au>
1859 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
1860 tests further when !strict && reload_in_progress.
1861 (print_operand): Check that both operands of indexed address are regs.
1862 (print_operand_address): Likewise.
1863 * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
1864 (INT_REG_OK_FOR_BASE_P): Correct.
1866 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1868 Preparation for PR rtl-optimization/20070 / part1
1869 * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1870 * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1871 outgoing_edges_match.
1872 (outgoing_edges_match): Use condjump_equiv_p.
1873 (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
1875 * struct-equiv.c: New file.
1876 (death_notes_match_p) New function, broken out of insns_match_p.
1877 * Makefile.in (OBJS-common): Add struct-equiv.o.
1878 (struct-equiv.o): New target.
1880 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1882 * coretypes.h: Revert previous change.
1883 * config/darwin.h: Revert previous reversion.
1884 * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
1886 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1888 * coretypes.h (section): Provide dummy definition for target files.
1889 * config/darwin.h: Revert previous change.
1891 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1893 * doc/sourcebuild.texi (all.build, install-normal): Remove.
1894 * configure.ac: Remove all.build and install-normal from target_list
1895 * configure: Regenerate.
1896 * Makefile.in (install): Don't depend on install-normal.
1898 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1900 * Makefile.in: Document the use of stamps.
1902 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1904 * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1905 * Makefile.in: Add code to compute some dependencies on s-gtype
1906 automatically. Remove the declaration of those dependencies.
1908 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1910 * gcc/reload.c (push_secondary_reload): Fix typo:
1911 s/insn_constraint/scratch_constraint/.
1913 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1915 * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1917 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1919 * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1920 (alpha_elf_select_rtx_section): Return the selected section rather
1921 than emitting assembly code.
1922 (alpha_write_linkage): Emit a ".link" directive directly and then
1923 set in_section to NULL.
1924 (vms_asm_out_constructor): Use switch_to_section.
1925 (vms_asm_out_destructor): Likewise.
1926 (unicosmk_output_common): Set in_section to NULL instead of calling
1927 the dummy common_section function.
1928 (unicosmk_text_section): Delete in favor of...
1929 (unicosmk_output_text_section_asm_op): ...this new function.
1930 (unicosmk_data_section): Delete in favor of...
1931 (unicosmk_output_data_section_asm_op): ...this new function.
1932 (unicosmk_init_sections): New function.
1933 (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1934 (unicosmk_output_ssib): Set in_section to NULL instead of calling
1935 the dummy ssib_section function.
1936 (unicosmk_section_buf): Delete.
1937 * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1938 (unicosmk_data_section): Delete.
1939 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1940 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1941 (SECTION_FUNCTION_TEMPLATE): Delete.
1942 * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1943 (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1944 (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1945 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1946 (TARGET_ASM_INIT_SECTIONS): Define.
1947 * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1948 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1949 (link_section, literals_section): Delete.
1950 (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1951 set in_section to NULL.
1953 * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1954 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1955 (COMMON_SECTION): Delete.
1956 (TARGET_ASM_INIT_SECTIONS): Define.
1957 (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1958 the dummy common_section function.
1959 * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1960 * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1961 between readonly_data_section and text_section to check whether
1962 read-only data is being put in the text section.
1963 (arm_output_function_epilogue): Use switch_to_section.
1964 (arm_elf_asm_constructor): Likewise.
1965 (thumb_call_via_reg): Replace call to in_text_section with
1966 a comparison between in_section and text_section.
1967 (arm_file_end): Use switch_to_section.
1968 (aof_text_section): Delete in favor of...
1969 (aof_output_text_section_asm_op): ...this new function.
1970 (aof_data_section): Delete in favor of...
1971 (aof_output_data_section_asm_op): ...this new function.
1972 (aof_asm_init_sections): New function.
1973 (zero_init_section): Moved from config/arm/aof.h.
1974 (aof_dump_imports, aof_file_start): Use switch_to_section.
1975 * config/arm/arm.h (thumb_call_via_label): Update comment.
1976 * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1977 (common_section): Delete.
1978 * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1979 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1980 global switch_to_section function instead of the old port-local one.
1981 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1982 (SWITCH_TO_SECTION_FUNCTION): Delete.
1983 (drectve_section): Redefine as a macro.
1984 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1985 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1988 * config/avr/avr.c (progmem_section): New variable.
1989 (avr_output_progmem_section_asm_op): New function.
1990 (avr_asm_init_sections): New function.
1991 (avr_output_addr_vec_elt): Use switch_to_section.
1992 * config/avr/avr.h (progmem_section): Declare.
1993 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1994 (READONLY_DATA_SECTION): Delete.
1995 (TARGET_ASM_INIT_SECTIONS): Define.
1996 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1997 * config/avr/avr-protos.h (progmem_section): Delete.
1999 * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2001 * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2002 (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
2004 * config/darwin-sections.def: New file.
2005 * config/darwin.c: Define all sections in darwin-sections.def.
2006 (output_objc_section_asm_op, darwin_init_sections): New functions.
2007 (machopic_output_indirection): Use switch_to_section.
2008 (machopic_select_section): Return the selected section rather than
2009 emitting assembly code. Replace the static function table with
2010 inline conditional expressions. Update the tests of last_text_section
2011 and move them into the FUNCTION_DECL block.
2012 (machopic_select_rtx_section): Return the selected section rather than
2013 emitting assembly code.
2014 (machopic_asm_out_constructor, machopic_asm_out_destructor)
2015 (darwin_file_end): Use switch_to_section.
2016 * config/darwin.h: Use darwin-sections.def to declare sections.
2017 (INIT_SECTION_ASM_OP): Remove empty definition.
2018 (HAS_INIT_SECTION): Define this instead.
2019 (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2020 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
2021 (TARGET_ASM_EH_FRAME_SECTION): Delete.
2022 (TARGET_ASM_INIT_SECTIONS): Define.
2023 * config/darwin-protos.h (darwin_init_sections): Declare.
2024 (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
2025 (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
2026 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
2027 (constructor_section, destructor_section, mod_init_section): Delete.
2028 (mod_term_section): Delete.
2029 (darwin_exception_section, darwin_eh_frame_section): Delete.
2030 (machopic_select_section): Return a section.
2031 (machopic_select_rtx_section): Likewise.
2032 (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
2033 (const_section, const_coal_section, const_data_section): Delete.
2034 (const_data_coal_section, data_coal_section, cstring_section): Delete.
2035 (literal4_section, literal8_section, constructor_section): Delete.
2036 (mod_init_section, mod_term_section, destructor_section): Delete.
2037 (objc_class_section, objc_meta_class_section, objc_category_section)
2038 (objc_class_vars_section, objc_instance_vars_section): Delete.
2039 (objc_cls_meth_section, objc_inst_meth_section): Delete.
2040 (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
2041 (objc_selector_refs_section, objc_selector_fixup_section): Delete.
2042 (objc_symbols_section, objc_module_info_section): Delete.
2043 (objc_image_info_section, objc_protocol_section): Delete.
2044 (objc_string_object_section, objc_constant_string_object_section)
2045 (objc_class_names_section, objc_meth_var_names_section): Delete.
2046 (objc_meth_var_types_section, objc_cls_refs_section): Delete.
2047 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
2048 (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
2049 (darwin_exception_section, darwin_eh_frame_section): Delete.
2050 * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
2052 * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
2053 (frv_asm_out_destructor): Likewise.
2054 * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2055 (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
2056 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
2058 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
2059 * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
2060 (data_section): Delete.
2062 * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2063 (DRECTVE_SECTION_FUNCTION): Delete.
2064 (drectve_section): Redefine as a macro that sets in_section after
2065 emitting the directive.
2066 (SWITCH_TO_SECTION_FUNCTION): Delete.
2067 * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
2068 in_text_section with comparison between in_section and text_section.
2069 * config/i386/i386.c (x86_64_elf_select_section): Return the section
2070 rather than emitting assembly code. Use get_named_section.
2071 (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
2073 (machopic_output_stub): Use switch_to_section.
2074 * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
2075 (nwld_named_section_asm_out_destructor): Use get_section and
2078 * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
2079 rather than emitting assembly code.
2080 (ia64_rwreloc_select_section): Likewise.
2081 (ia64_rwreloc_select_rtx_section): Likewise.
2082 * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
2083 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2085 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2086 (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
2088 * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
2089 section rather than emitting assembly code.
2090 (iq2000_select_section): Likewise.
2091 * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
2092 (sbss_section): Delete.
2094 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
2095 and get_named_section.
2096 * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
2098 * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
2099 (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
2100 (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
2101 (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
2103 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
2104 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
2105 global switch_to_section function instead of the old port-local one.
2106 * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2107 (SWITCH_SECTION_FUNCTION): Delete.
2108 * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
2109 (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
2110 (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
2111 (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
2113 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
2114 global switch_to_section function instead of the old port-local one.
2115 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
2117 * config/mips/mips.c (mips_file_start): Update comment.
2118 (mips_output_aligned_bss): Use switch_to_section and get_named_section.
2119 (mips_output_aligned_decl_common): Use switch_to_section.
2120 (mips_select_rtx_section): Return the section rather than emitting
2121 assembly code. Use get_named_section.
2122 (mips_function_rodata_section: Likewise get_section.
2123 (build_mips16_function_stub): Use switch_to_section.
2124 * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
2125 (SDATA_SECTION_ASM_OP): Delete.
2126 * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
2127 (EXTRA_SECTION_FUNCTIONS): Delete.
2129 * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
2130 (mmix_asm_output_aligned_local): Use switch_to_section.
2132 * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
2133 (som_one_only_readonly_data_section): New variables.
2134 (pa_output_function_epilogue): Set in_section to NULL instead of
2135 calling forget_section.
2136 (output_deferred_plabels): Use select_section.
2137 (pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead
2138 of calling forget_section.
2139 (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
2140 (pa_asm_output_aligned_local): Use select_section.
2141 (som_text_section_asm_op): Delete in favor of...
2142 (som_output_text_section_asm_op): ...this new function.
2143 (pa_som_asm_init_sections): New function.
2144 (pa_select_section): Return the section rather than emitting
2146 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2147 (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
2148 (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
2149 (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
2150 * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
2151 (som_readonly_data_section, som_one_only_readonly_data_section)
2152 (som_one_only_data_section, forget_section): Delete.
2153 * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
2154 (TARGET_ASM_INIT_SECTIONS): Define.
2155 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
2157 * config/rs6000/rs6000.c (read_only_data_section): New variable.
2158 (private_data_section, read_only_private_data_section): New variables.
2159 (sdata2_section, toc_section): New variables.
2160 (rs6000_file_start): Use switch_to_section.
2161 (rs6000_assemble_integer): Use comparisons against in_section
2162 instead of calling in_toc_section and in_text_section. Use
2163 unlikely_text_section_p.
2164 (rs6000_elf_output_toc_section_asm_op): New function, derived
2165 from the old rs6000/sysv4.h toc_section function.
2166 (rs6000_elf_asm_init_sections): New function.
2167 (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
2168 the section rather than emitting assembly code.
2169 (machopic_output_stub): Use switch_to_section.
2170 (toc_section): Delete dummy function.
2171 (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
2172 switch_to_section and get_section.
2173 (rs6000_xcoff_output_readonly_section_asm_op): New function.
2174 (rs6000_xcoff_output_readwrite_section_asm_op): New function.
2175 (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
2176 the old rs6000/xcoff.h toc_section function.
2177 (rs6000_xcoff_asm_init_sections): New function.
2178 (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
2179 the section rather than emitting assembly code.
2180 (rs6000_xcoff_file_start): Use switch_to_section.
2181 (rs6000_xcoff_file_end): Likewise.
2182 * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
2183 (sdata2_section, sbss_section, private_data_section): Delete.
2184 (read_only_data_section, read_only_private_data_section): Delete.
2185 * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2186 (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
2187 (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
2188 (FINI_SECTION_FUNCTION): Delete.
2189 (TARGET_ASM_INIT_SECTIONS): Define.
2190 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
2191 * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2192 (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
2193 (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
2194 (READONLY_DATA_SECTION): Delete.
2195 (TARGET_ASM_INIT_SECTIONS): Define.
2196 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section
2197 to NULL rather than no_section.
2198 (TARGET_ASM_EXCEPTION_SECTION): Delete.
2200 * config/sh/sh.c (sh_file_start): Use switch_to_section.
2202 * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
2203 (sparc_output_deferred_case_vectors): Likewise. Remove argument
2204 from call to current_function_section.
2206 * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
2207 (bss100_section): New variable.
2208 (xstormy16_asm_output_aligned_common): Use switch_to_section.
2209 (xstormy16_asm_init_sections): New function.
2210 (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
2211 switch_to_section and get_section.
2212 (xstormy16_output_addr_vec): Use switch_to_section. Remove argument
2213 from calls to current_function_section.
2214 * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
2215 (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
2216 (TARGET_ASM_INIT_SECTIONS): Define.
2217 * config/stormy16/stormy16-protos.h (bss100_section): Delete.
2219 * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2220 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
2221 (FINI_SECTION_FUNCTION): Delete.
2223 * config/v850/v850.c: Include gt-v850.h.
2224 (rosdata_section, rozdata_section, tdata_section, zdata_section)
2225 (zbss_section): New variables.
2226 (v850_output_aligned_bss): Use switch_to_section.
2227 (v850_asm_init_sections): New function.
2228 (v850_select_section): Return the section rather than emitting
2230 * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2231 (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
2232 (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
2233 (TARGET_ASM_INIT_SECTIONS): Define.
2234 * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
2235 (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
2236 (zbss_section): Delete.
2238 * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2240 * config/vx-common.h (vxworks_exception_section): Delete.
2241 (TARGET_ASM_EXCEPTION_SECTION): Delete.
2243 * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
2244 section rather than emitting assembly code.
2245 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
2248 * Makefile.in (GTFILES): Add $(srcdir)/output.h.
2249 * coretypes.h (section): New union and typedef.
2250 * dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument
2251 from call to current_function_section.
2252 (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
2253 (dbxout_symbol_location): Use switch_to_section.
2254 * dwarf2out.c (named_section_eh_frame_section): Delete, moving
2255 most of the code into...
2256 (default_eh_frame_section): ...here. Return a section.
2257 (collect2_eh_frame_section): Delete, moving most of the code into..
2258 (switch_to_eh_frame_section): ...this new function.
2259 (debug_info_section, debug_abbrev_section, debug_aranges_section)
2260 (debug_macinfo_section, debug_line_section, debug_loc_section)
2261 (debug_pubnames_section, debug_str_section, debug_ranges_section): New
2263 (output_call_frame_info): Call switch_to_eh_frame_section instead of
2264 eh_frame_section. Use switch_to_section and get_section.
2265 (dwarf2out_begin_prologue): Use switch_to_section.
2266 (AT_string_form): Check the flags in debug_str_section instead of
2267 DEBUG_STR_SECTION_FLAGS.
2268 (output_comp_unit): Use switch_to_section, get_section, and
2270 (output_line_info, secname_for_decl): Use unlikely_text_section_p.
2271 (dwarf2out_begin_block): Use switch_to_section. Remove argument
2272 from call to current_function_section.
2273 (dwarf2out_var_location): Use unlikely_text_section_p.
2274 (dwarf2out_source_line): Use switch_to_section. Remove argument
2275 from call to current_function_section.
2276 (dwarf2out_start_source_file, dwarf2out_end_source_file)
2277 (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
2278 debug_macinfo_section.
2279 (dwarf2out_init): Initialize the new section variables. Use them
2280 instead of calls to named_section_flags. Use switch_to_section.
2281 (output_indirect_string): Use switch_to_section and debug_str_section.
2282 (dwarf2out_finish): Use switch_to_section and the new section
2284 * except.c (default_exception_section): Return the section instead
2285 of emitting assembly code.
2286 (output_function_exception_table): Use the global exception_section
2287 variable instead of the target hook. Use switch_to_section. Remove
2288 argument from call to current_function_section.
2289 * final.c (HAVE_READONLY_DATA_SECTION): Delete.
2290 (shorten_branches): Use pointer comparisons to detect whether the
2291 text section is the same as readonly_data_section.
2292 (profile_function): Use switch_to_section. Remove argument from
2293 call to current_function_section.
2294 (final_scan_insn): Likewise. Update use of last_text_section.
2295 * gengtype.c (open_base_files): Add an include of output.h.
2296 * output.h (text_section, data_section, readonly_data_section)
2297 (ctors_section, dtors_section, bss_section, init_section)
2298 (fini_section, sdata_section): Turn into section pointers.
2299 (in_text_section, in_unlikely_text_section, exports_section)
2300 (drectve_section, named_section, mergeable_string_section)
2301 (last_text_section_name): Delete.
2302 (default_exception_section, default_eh_frame_section): Return sections.
2303 (SECTION_DECLARED, SECTION_NAMED): New macros.
2304 (SECTION_MACH_DEP): Bump value.
2305 (section_common, named_section, unnamed_section): New structures.
2306 (unnamed_section_callback): New typedef.
2307 (section): New union.
2308 (sbss_section, exception_section, eh_frame_section): New variables.
2309 (in_section, last_text_section): Turn into section pointers.
2310 (get_unnamed_section, get_section, get_named_section): New functions.
2311 (mergeable_constant_section, function_section): Return a section.
2312 (unlikely_text_section): Likewise.
2313 (current_function_section): Likewise. Remove the decl argument.
2314 (unlikely_text_section_p, switch_to_section): New functions.
2315 (output_section_asm_op): New function.
2316 (set_named_section_flags, named_section_flags, named_section_real)
2317 (named_section_first_declaration): Delete.
2318 (default_select_section, default_elf_select_section): Return a section.
2319 (default_elf_select_section_1, default_function_rodata_section)
2320 (default_no_function_rodata_section, default_select_rtx_section)
2321 (default_elf_select_rtx_section): Likewise.
2322 * rtl.h (in_data_section): Delete.
2323 * sdbout.c (sdbout_one_type): Use switch_to_section.
2324 * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
2325 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
2326 (TARGET_ASM_EH_FRAME_SECTION): Poison.
2327 * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
2328 (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
2329 (TARGET_ASM_OUT): Update after above changes.
2330 * target.h (init_sections): New hook.
2331 (exception_section, eh_frame_section): Delete.
2332 (select_section, select_rtx_section, function_rodata_section): Return
2333 a section rather than emitting assembly code.
2334 * varasm.c (text_section, data_section, readonly_data_section)
2335 (ctors_section, dtors_section, bss_section, init_section)
2336 (fini_section): Turn into section pointers.
2337 (sdata_section, sbss_section, exception_section): New variables.
2338 (eh_frame_section): New variable.
2339 (in_section): Make global and turn into a section pointer.
2340 (last_text_section): Turn into a section pointer.
2341 (unnamed_sections): New variable.
2342 (in_named_name, last_text_section_name): Delete.
2343 (EXTRA_SECTION_FUNCTIONS): Delete.
2344 (in_named_entry): Delete.
2345 (section_htab): New variable, replacing...
2346 (in_named_htab): ...this deleted variable.
2347 (section_entry_eq, section_entry_hash): New functions, based on...
2348 (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
2349 (get_unnamed_section, get_section): New functions.
2350 (unlikely_text_section): Return a section instead of emitting
2352 (in_text_section, in_unlikely_text_section, in_data_section): Delete.
2353 (get_named_section_flags, named_section_first_declaration): Delete.
2354 (unlikely_text_section_p): New function.
2355 (named_section_real, named_section): Delete.
2356 (get_named_section): New function.
2357 (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
2358 (function_section): Return a section rather than emitting
2360 (current_function_section): Likewise. Remove argument. Use
2361 last_text_section if nonnull, otherwise use function_section.
2362 (default_function_rodata_section): Return a section rather than
2363 emitting assembly code. Use get_section.
2364 (default_no_function_rodata_section): Return a section rather than
2365 emitting assembly code.
2366 (variable_section): Use switch_to_section and get_named_section.
2367 (mergeable_string_section): Return a section rather than emitting
2368 assembly code. Use get_section. Make static. Don't take special
2369 countermeasures for empty strings.
2370 (mergeable_constant_section): Return a section rather than emitting
2371 assembly code. Use get_section.
2372 (default_named_section_asm_out_destructor): Use switch_to_section
2374 (default_dtor_section_asm_out_destructor): Use switch_to_section.
2375 (default_named_section_asm_out_constructor): Use switch_to_section
2377 (default_ctor_section_asm_out_constructor): Use switch_to_section.
2378 (assemble_start_function): Likewise. Set last_text_section to
2379 NULL rather than no_section. Change the type of save_section.
2380 (assemble_zeros, assemble_variable): Use the section flags to detect
2381 whether or not a section is text.
2382 (assemble_static_space): Use switch_to_section.
2383 (assemble_trampoline_template): Likewise.
2384 (output_constant_def_contents): Use switch_to_section and
2386 (output_constant_pool_1): Use switch_to_section. Use the section
2387 flags to see whether sections contain mergeable data.
2388 (init_varasm_once): Initialize section_htab instead of in_named_htab.
2389 Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS.
2390 (default_elf_asm_named_section): Use SECTION_DECLARED to detect
2391 whether a section has already been declared.
2392 (default_select_section, default_elf_select_section): Return a
2393 section rather than emitting assembly code.
2394 (default_elf_select_section_1): Likewise. Use bss_section for
2395 SECCAT_BSS if nonnull. Use get_named_section.
2396 (default_select_rtx_section): Return a section rather than
2397 emitting assembly code.
2398 (default_elf_select_rtx_section): Likewise. Use get_named_section.
2399 (file_end_indicate_exec_stack): Use switch_to_section and get_section.
2400 (output_section_asm_op, switch_to_section): New functions.
2401 * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
2404 * doc/tm.texi: Expand the introduction to the sections documentation.
2405 (TRAMPOLINE_SECTION): Document new interface.
2406 (SDATA_SECTION_ASM_OP): Document new macro.
2407 (READONLY_DATA_SECTION): Delete.
2408 (SDATA_SECTION_ASM_OP): Document new macro.
2409 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2410 (TARGET_ASM_INIT_SECTIONS): Document new hook.
2411 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
2412 (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
2413 (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
2415 2005-12-07 Alan Modra <amodra@bigpond.net.au>
2417 * gcc.c (init_gcc_specs): Match braces inside conditionally
2420 2005-12-06 Geoffrey Keating <geoffk@apple.com>
2422 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
2424 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
2427 * tree.c (integer_all_onesp): Always return true if all bits on.
2429 * testsuite/g++.dg/init/array0.C: New.
2431 2005-12-06 Adrian Straetling <straetling@de.ibm.com>
2433 * doc/md.texi: Adapt to implementation.
2435 2005-12-06 Andreas Schwab <schwab@suse.de>
2437 * opts.c (decode_options): Fix typo in message.
2439 2005-12-06 Alan Modra <amodra@bigpond.net.au>
2442 * longlong.h: Merge PPC tests from upstream.
2444 2005-12-06 Richard Guenther <rguenther@suse.de>
2446 * fold-const.c (fold_convert): Do not build and fold
2447 CONVERT_EXPR, but always use NOP_EXPR.
2449 2005-12-06 Jan Beulich <jbeulich@novell.com>
2451 * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
2452 __builtin_ia32_paddq and __builtin_ia32_psubq.
2453 (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
2454 __builtin_ia32_pshufw.
2455 * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
2457 2005-12-05 James E Wilson <wilson@specifix.com>
2460 * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
2463 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
2465 * print-tree.c (print_node): Ditto.
2466 * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
2467 * tree-dump.c (dequeue_and_dump): Check for decl_common structure
2468 before accessing DECL_ARTIFICIAL.
2469 Handle new tag tree codes.
2470 * tree-flow-inline.h (clear_call_clobbered): Update for tag
2472 (unmodifiable_var_p): Ditto.
2473 * tree-flow.h (mem_tag_kind): Remove.
2474 (struct var_ann_d): Remove mem_tag_kind member.
2475 * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
2476 * tree-pretty-print.c (dump_generic_node): Handle memory tags.
2477 * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
2478 (group_aliases): Ditto.
2479 (setup_pointers_and_addressables): Ditto.
2480 (is_escape_site): Ditto.
2481 (may_alias_p): Ditto.
2482 (create_tag_raw): New function.
2483 (create_memory_tag): Use it.
2484 (dump_alias_info): Update for tags.
2485 (may_be_aliased): Ditto.
2486 (add_type_alias): Ditto.
2487 (new_type_alias): Ditto.
2488 (create_sft): Ditto.
2489 (create_structure_vars): Ditto.
2490 * tree-ssa-ccp.c (get_default_value): Ditto.
2491 * tree-ssa-operands.c (get_expr_operands): Ditto.
2492 (add_stmt_operand): Ditto.
2493 (add_call_clobber_ops): Remove duplicated condition.
2494 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
2496 * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
2497 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2498 * tree.c (init_ttree): Update structures for new tree codes.
2499 (tree_code_size): Update sizes for new tree codes.
2500 (make_node_stat): Don't try to set common things on minimal
2502 (tree_node_structure): Update for tags.
2503 (is_global_var): Ditto.
2504 * tree.def: Add new tree codes.
2505 * tree.h (MTAG_P): New macro.
2506 (TREE_MEMORY_TAG_CHECK): Ditto.
2507 (SSA_VAR_P): Update for tags.
2508 (struct tree_memory_tag): New structure.
2509 (MTAG_GLOBAL): New macro.
2510 (union tree_node): Add memory tag member.
2511 * treestruct.def (TS_MEMORY_TAG): New.
2513 2005-12-05 Dale Johannesen <dalej@apple.com>
2515 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
2516 what was approved (PR 24323).
2518 2005-12-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
2520 * doc/c-tree.texi (Function Bodies): Remove description of
2523 2005-12-05 Joseph S. Myers <joseph@codesourcery.com>
2525 * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
2526 __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
2527 __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
2528 __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
2529 __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
2530 __divxc3): Document.
2532 2005-12-05 Geoffrey Keating <geoffk@apple.com>
2534 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
2536 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
2537 hook_bool_void_false.
2538 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2539 * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
2541 * config/darwin.c (machopic_select_section): It's not defined
2542 as weak if it's only marked as weak_import.
2544 * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
2547 * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
2548 A hidden weak object does bind locally. Strong linkonce data
2549 counts like any other strong symbol for binding.
2550 (weak_finish_1): Don't specially handle weakrefs, they no longer
2552 (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
2553 * c-common.c (handle_alias_attribute): Allow static aliases
2555 (handle_weakref_attribute): Don't call declare_weak on weakrefs.
2556 * gthr-dce.h: Make weakrefs static.
2557 * gthr-tpf.h: Likewise.
2558 * gthr-solaris.h: Likewise.
2559 * gthr-posix.h: Likewise.
2560 * gthr-posix95.h: Likewise.
2561 * config/darwin.c (darwin_encode_section_info): static weakref
2562 variables are not necessarily defined in this translation unit.
2563 * doc/extend.texi (Function Attributes): Mention that an alias
2564 attribute creates a definition for the thing it's attached to.
2565 Change the documentation for weakref to say that the thing
2566 it's attached to must be static.
2568 * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
2569 we don't go into an infinite loop.
2571 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
2573 * config/rs6000/predicates.md (logical_const_operand): Split
2574 out of logical_operand.
2575 (logical_operand): Use it.
2576 * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
2577 logical_const_operand.
2579 2005-12-05 Jan Beulich <jbeulich@novell.com>
2581 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
2582 and IX86_BUILTIN_CMPNESS.
2583 (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
2584 * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
2585 * config/i386/i386.md (movti_internal): Correct type attribute.
2586 Simplify mode attribute.
2587 (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
2588 Correct type attribute.
2589 (absxf2): Correct operator.
2590 * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
2591 movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
2592 * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
2594 (sse2_vmsqrtv2df2): Correct mode attribute.
2596 2005-12-05 Jan Beulich <jbeulich@novell.com>
2598 * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
2599 16 bits. Provide insn pattern for this case.
2601 2005-12-05 Jan Beulich <jbeulich@novell.com>
2603 * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
2605 (__popcountDI2): Likewise.
2607 2005-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2610 * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
2611 _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
2612 * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
2615 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
2617 * c-typeck.c (null_pointer_constant_p): New function.
2618 (build_conditional_expr, build_c_cast, convert_for_assignment,
2619 build_binary_op): Use it.
2621 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
2623 * c-common.c (binary_op_error): Do not allow NOP_EXPR.
2624 (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
2626 (check_function_arguments_recurse): Allow both NOP_EXPR and
2627 CONVERT_EXPR but check conversions preserve precision.
2628 * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
2629 but check conversions preserve precision.
2630 (build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in
2633 2005-12-04 Roger Sayle <roger@eyesopen.com>
2636 * common.opt (Wstring-literal-comparison): New command line option.
2637 * c-opts.c (c_common_handle_option): Set it with -Wall.
2638 * c-typeck.c (parser_build_binary_op): Issue warning if either
2639 operand of a comparison operator is a string literal, except for
2640 testing equality or inequality against NULL.
2642 * doc/invoke.texi: Document new -Wstring-literal-comparison option.
2644 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
2646 * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
2647 of building a NOP_EXPR.
2648 (c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as
2650 * c-convert.c (convert): Use fold_convert instead of building
2651 NOP_EXPRs and CONVERT_EXPRs directly. Don't special case
2652 c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove
2654 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
2655 NOP_EXPR the same as CONVERT_EXPR.
2656 * c-typeck.c (build_function_call): Use fold_convert instead of
2657 building a NOP_EXPR directly.
2658 (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2660 2005-12-03 Alan Modra <amodra@bigpond.net.au>
2662 PR rtl-optimization/25197
2663 * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
2666 2005-12-02 Stuart Hastings <stuart@apple.com>
2668 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
2671 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
2673 * c-typeck.c (default_function_array_conversion,
2674 build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
2675 (build_conditional_expr): Apply integer_zerop to orig_op1 and
2676 orig_op2. Don't check them for NOP_EXPR.
2677 (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
2678 around integer zero.
2680 2005-12-03 Alan Modra <amodra@bigpond.net.au>
2682 * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
2683 toc_save_offset, toc_size, lr_size.
2684 (rs6000_stack_info): Use memset rather than bss struct copy to init.
2685 Test rs6000_ra_ever_killed last in condition setting lr_save_p.
2686 Adjust for removal of unused rs6000_stack_t fields.
2687 (debug_stack_info): Adjust.
2688 (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls
2689 first, and don't bother checking for set/inc of lr on sibcalls.
2690 (rs6000_emit_epilogue): Tidy code restoring stack pointer.
2692 2005-12-02 Jakub Jelinek <jakub@redhat.com>
2695 * config/i386/i386.md (movqi_1): Only force imovx for alternative
2696 5 if operand 1 is not aligned. Undo previous constraint change.
2697 * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2699 2005-12-02 Richard Guenther <rguenther@suse.de>
2701 * tree.h (build): Remove prototype.
2702 (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
2703 * tree.c (build): Remove.
2704 (build0_stat): Update comment.
2706 2005-12-02 Richard Guenther <rguenther@suse.de>
2708 * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
2709 * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
2711 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
2712 maybe_fold_offset_to_component_ref): Likewise.
2713 * tree-ssa-dom.c (thread_across_edge,
2714 simplify_rhs_and_lookup_avail_expr,
2715 find_equivalent_equality_comparison, record_equivalences_from_stmt):
2717 * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
2718 * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
2719 lower_try_finally_switch): Likewise.
2720 * tree-if-conv.c (add_to_dst_predicate_list,
2721 replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
2722 * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
2723 voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
2724 gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
2725 gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
2726 shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
2727 gimplify_init_ctor_eval, gimplify_init_constructor,
2728 gimplify_variable_sized_compare, gimplify_boolean_expr,
2729 gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
2730 gimplify_expr, gimplify_body, gimplify_function_tree,
2731 force_gimple_operand): Likewise.
2732 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2733 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
2734 mx_register_decls): Likewise.
2735 * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
2736 get_frame_field, finalize_nesting_tree_1): Likewise.
2737 * tree-inline.c (setup_one_parameter): Likewise.
2738 * tree-vect-transform.c (vectorizable_condition): Likewise.
2739 * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
2741 * tree-profile.c (tree_gen_edge_profiler): Likewise.
2742 * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
2743 * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
2744 * tree-chrec.h (build_polynomial_chrec): Likewise.
2746 2005-12-02 Richard Guenther <rguenther@suse.de>
2748 * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
2749 alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
2750 * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
2751 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
2752 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2753 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2754 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
2756 * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
2757 sh_adjust_unroll_max): Likewise.
2758 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2759 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2760 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
2762 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2764 * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
2767 2005-12-02 Richard Guenther <rguenther@suse.de>
2769 * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
2770 simplify_cond_using_ranges): Use buildN instead of build.
2771 * tree-tailcall.c (adjust_accumulator_values,
2772 adjust_return_value): Likewise.
2773 * tree-sra.c (generate_one_element_ref, generate_copy_inout,
2774 generate_element_copy, generate_element_zero,
2775 generate_one_element_init): Likewise.
2776 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
2777 * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
2778 lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
2779 perfect_nestify): Likewise.
2781 2005-12-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2783 * pa.c (pa_secondary_reload): Revise initialization of variable regno.
2785 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
2787 * ggc.h (GGC_RESIZEVEC): New.
2789 2005-12-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2791 * gcc.c (execute): Improve readability.
2793 2005-12-02 Richard Guenther <rguenther@suse.de>
2795 * tree-cfg.c (mark_used_vars): New function.
2796 (dump_function_to_file): Dump only used VAR_DECLs.
2798 2005-12-02 Richard Guenther <rguenther@suse.de>
2800 * convert.c (convert_to_integer): Fix compare for nonpositive
2801 constant to use tree_int_cst_sgn <= 0.
2803 2005-12-02 Richard Guenther <rguenther@suse.de>
2805 * convert.c (convert_to_integer): Use fold_convert instead
2806 of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0
2807 instead of comparing against 0. Use build_int_cst instead
2808 of converting integer_zero_node.
2810 2005-12-02 Richard Guenther <rguenther@suse.de>
2812 * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
2815 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2818 * combine.c (simplify_logical <IOR>): Simplify more patterns to
2821 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2824 * function.c (expand_function_end): Emit blockage for unwinder
2827 2005-12-01 Roger Sayle <roger@eyesopen.com>
2829 * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
2830 constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
2831 * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
2832 integer constant comparisons.
2834 2005-12-02 Jon Grimm <jgrimm2@us.ibm.com>
2835 Janis Johnson <janis187@us.ibm.com>
2836 David Edelsohn <dje@watson.ibm.com>
2837 Ben Elliston <bje@au.ibm.com>
2839 * dfp.h, dfp.c: New files.
2840 * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
2841 (DECNUM_H): Likewise.
2842 (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
2843 (INCLUDES): Append $(DECNUMINC).
2844 (OBJS-common): Add dfp.o.
2846 * real.h (EXP_BITS): Pinch one bit to ..
2847 (struct real_value): Add decimal field.
2848 (real_format): Change table size, update documentation.
2849 (REAL_MODE_FORMAT): Update for to handle float, decimal float.
2850 (real_from_string3): Declare.
2851 (decimal_single_format): Declare.
2852 (decimal_double_format): Declare.
2853 (decimal_quad_format): Declare.
2854 (REAL_VALUE_TO_TARGET_DECIMAL32): New.
2855 (REAL_VALUE_TO_TARGET_DECIMAL64): New.
2856 (REAL_VALUE_TO_TARGET_DECIMAL128): New.
2857 * real.c: Include dfp.h.
2858 (normalize): Early return for decimal floats.
2859 (do_add): Zero decimal field.
2860 (do_compare): Call do_decimal_compare for decimal floats.
2861 (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
2862 (real_arithmetic): Call decimal_real_arithmetic for decimal
2863 floating point operands.
2864 (real_identical): If a and b are of differing radix, return false.
2865 (real_to_integer): Call decimal_real_to_integer if the value is a
2867 (real_to_integer2): Likewise, call decimal_real_to_integer2.
2868 (real_to_decimal): Likewise, call decimal_real_to_decimal.
2869 (real_to_hexadecimal): Place "N/A" in the return string for
2871 (real_from_string3): New variant, given a mode.
2872 (real_maxval): Use decimal_real_maxval for decimal floats.
2873 (round_for_format): Use decimal_round_for_format for decimals.
2874 (real_convert): Use decimal_real_convert where appropriate.
2875 (significand_size): Handle base 10.
2876 (encode_decimal_single, decode_decimal_single,
2877 encode_decimal_double, decode_decimal_double, encode_decimal_quad,
2878 decode_decimal_quad): New functions.
2879 (decimal_single_format): New.
2880 (decimal_double_format): New.
2881 (decimal_quad_format): New.
2882 * machmode.def: Add SD, DD and TD decimal floating point modes.
2883 * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
2884 Include MODE_DECIMAL_FLOAT.
2885 (DECIMAL_FLOAT_MODE_P): New.
2886 * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
2887 * genmodes.c (struct mode_data): Add counter field.
2888 (struct mode_data): Update comment for format.
2889 (blank_mode): Initialise counter field.
2890 (new_mode): Increment counter field for each mode defined.
2891 (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
2893 (make_complex_modes): Handle modes containing `D'.
2894 (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
2895 (make_decimal_float_mode): New.
2896 (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2897 (cmp_modes): Compare counter field if other characteristics
2899 (emit_real_format_for_mode): Support formats for decimal floats.
2900 * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2901 Document MODE_DECIMAL_FLOAT.
2903 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2905 * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2908 2005-12-01 Richard Henderson <rth@redhat.com>
2910 * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2912 2005-12-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2914 * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2916 * config/pa/pa.c (pa_init_builtins): If we detect
2917 DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2920 2005-12-01 Richard Guenther <rguenther@suse.de>
2922 * fold-const.c (fold_binary): Use fold_build2, not
2925 2005-12-01 Nathan Sidwell <nathan@codesourcery.com>
2927 * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2929 * vec.h (VEC_block_remove): New.
2931 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
2934 * c-common.c (lvalue_error): Fix wording.
2936 2005-12-01 Richard Guenther <rguenther@suse.de>
2938 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2939 thinko in last patch.
2941 2005-12-01 Geoffrey Keating <geoffk@apple.com>
2943 * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2944 than -flat_namespace.
2946 2005-12-01 Ben Elliston <bje@au.ibm.com>
2948 * mklibgcc.in: Parameterise the script to build soft float
2949 functions by iterating over each type, rather than cloning the
2952 2005-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2955 * builtins.c (fold_builtin_fputs): Defer check for missing
2956 replacement functions.
2958 2005-11-30 Kean Johnston <jkj@sco.com>
2960 * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2961 simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2963 2005-11-30 Richard Guenther <rguenther@suse.de>
2965 PR tree-optimization/22501
2966 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2967 function split out from ...
2968 (forward_propagate_addr_expr): ... here. Use it to propagate
2969 ADDR_EXPRs to all uses.
2971 2005-11-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2973 * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2974 * builtins.c (expand_builtin_mathfn): Use them.
2975 (expand_builtin_mathfn_2): Likewise.
2976 (expand_builtin_mathfn_3): Likewise.
2977 (expand_builtin_int_roundingfn): Likewise.
2978 (expand_builtin): Likewise.
2979 (integer_valued_real_p): Likewise.
2980 (fold_builtin_int_roundingfn): Likewise.
2981 (fold_builtin_bitop): Likewise.
2982 (fold_builtin_logarithm): Likewise.
2983 (fold_builtin_1): Likewise.
2984 * convert.c (convert_to_integer): Likewise.
2985 * fold-const.c (negate_mathfn_p): Likewise.
2986 (tree_expr_nonnegative_p): Likewise.
2988 2005-11-30 Dale Johannesen <dalej@apple.com>
2989 Andrew Pinski <pinskia@physics.uc.edu>
2991 * combine.c (find_split_point): Sign extend bitmask
2992 when changing bitfield assignment to IOR of AND.
2994 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
2996 * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
2997 clobber to scratch reg.
2998 (*decrement_and_branch_until_zero_no_clobber): Remove.
2999 (decrement_and_branch peephole): Add dummy scratch reg to pattern.
3000 (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
3001 * config/ms1/ms1.opt (mmul): Remove.
3002 * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
3003 (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
3005 2005-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3006 Bernd Schmidt <bernd.schmidt@analog.com>
3008 * pa/predicates.md (symbolic_operand): Add comment.
3009 * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
3010 * pa/pa-protos.h (pa_secondary_reload_class): Delete.
3011 * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
3012 (pa_secondary_reload_class): Delete.
3013 (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
3014 and pa_secondary_reload_class. Reorder some checks. Update inline
3015 copy of symbolic operand.
3016 * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
3018 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
3020 * loop-doloop.c (add_test): Only add jump notes if we did emit a
3023 2005-11-30 Jeff Law <law@redhat.com>
3025 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
3026 handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3028 2005-11-30 Jakub Jelinek <jakub@redhat.com>
3030 * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
3031 Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
3032 (ia64_expand_move): Adjust caller.
3034 * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
3035 fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
3038 2005-11-30 Paolo Bonzini <bonzini@gnu.org>
3040 * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
3041 Always produce an output if we can remove NEGs or canonicalize
3042 (minus (minus ...)) expressions. Provide a fast path for the
3044 (simplify_gen_binary): Do not call simplify_plus_minus.
3045 (simplify_binary_operation_1): Reassociate at the end of the
3048 2005-11-29 Evan Cheng <evan.cheng@apple.com>
3050 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
3051 moves and unpack to speed up.
3053 2005-11-29 David S. Miller <davem@sunset.davemloft.net>
3055 * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
3056 argument, they are always sparc_compare_op0 and sparc_compare_op1.
3057 (gen_v9_scc): Update callers.
3058 * config/sparc/sparc.md: Likewise.
3059 * config/sparc/sparc-protos.h: Update extern declaration.
3061 * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
3063 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
3065 * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
3068 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
3070 * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
3071 (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
3072 (negate_expr): Here.
3074 2005-11-29 Ben Elliston <bje@au.ibm.com>
3076 * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
3077 Fix typo in comment.
3079 2005-11-29 Ben Elliston <bje@au.ibm.com>
3081 * Makefile.in (clean-target): Depend on clean-target-libgcc.
3082 (clean-target-libgcc): Import rule from the top-level Makefile.in.
3084 2005-11-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3088 * builtins.c (init_target_chars): New.
3089 (expand_builtin_printf, expand_builtin_fprintf,
3090 expand_builtin_sprintf, fold_builtin_sprintf,
3091 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
3092 fold_builtin_snprintf_chk, fold_builtin_printf,
3093 fold_builtin_fprintf): Check for matching format strings using
3096 2005-11-29 Paul Brook <paul@codesourcery.com>
3098 * config.gcc: Do not use fixproto on m68k-elf.
3100 2005-11-28 Roger Sayle <roger@eyesopen.com>
3102 * expmed.c (div_cost): Replace with...
3103 (sdiv_cost, udiv_cost): New.
3104 (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
3105 Rename the div and mod fields, used to initialize sdiv_pow2_cheap
3106 and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
3107 (expand_divmod): Replace use of div_cost with either sdiv_cost
3108 or udiv_cost depending upon the signedness of the operation.
3110 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
3113 * config/darwin.c (machopic_indirection_name,
3114 machopic_output_indirection): Follow transparent alias chain.
3116 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
3118 * varasm.c (ultimate_transparent_alias_target): Add comment.
3120 2005-11-28 Kazu Hirata <kazu@codesourcery.com>
3122 * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
3123 SET_SRC instead of XEXP where appropriate.
3125 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
3127 * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
3130 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
3132 * config/fp-bit.h (LSHIFT): Take shift count parameter.
3133 * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
3136 2005-11-28 Bernd Schmidt <bernd.schmidt@analog.com>
3138 * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
3139 secondary_input_reload_class, made static. Adapt to new
3141 (secondary_output_reload_class): Delete.
3142 (TARGET_SECONDARY_RELOAD): New macro.
3143 * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
3144 SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3146 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
3149 * c-decl.c (finish_struct): Only set DECL_PACKED on a field
3150 when its natural alignment is > BITS_PER_UNIT.
3151 * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
3152 * c-common.c (handle_packed_attribute): Ignore packing on a field
3153 whose type is naturally char aligned.
3155 2005-11-28 Richard Guenther <rguenther@suse.de>
3157 * c-common.c (strict_aliasing_warning): Handle all
3158 component-ref like accesses.
3160 2005-11-28 Roger Sayle <roger@eyesopen.com>
3161 Uros Bizjak <uros@kss-loka.si>
3164 * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
3165 sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
3166 when flag_unsafe_math_optimizations is set and
3167 we don't care about NaNs or Infinities.
3169 Move x/expN(y) and x/pow(y,z) transformation into common
3170 flag_unsafe_math_optimizations section.
3172 2005-11-27 Mark Mitchell <mark@codesourcery.com>
3174 * gcc.c (main): Change type of argv to "char **".
3176 2005-11-28 Alan Modra <amodra@bigpond.net.au>
3178 * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
3179 small data sections.
3180 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
3181 * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
3182 * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
3183 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't
3184 output locals to sbss if !rs6000_elf_in_small_data_p.
3185 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
3187 2005-11-28 Alan Modra <amodra@bigpond.net.au>
3190 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
3191 generated by reload.
3192 * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
3193 indexed_or_indirect_address.
3194 (indexed_or_indirect_address): Don't test for base reg. Call
3195 address_operand last. Make it a special predicate.
3197 2005-11-27 Kazu Hirata <kazu@codesourcery.com>
3199 * config/m68k/m68k.c (notice_update_cc): Remove useless code.
3201 2005-11-27 Andrew Pinski <pinskia@physics.uc.edu>
3204 * fold-const.c (negate_expr_p): Add case for signed divides if overflow
3206 (negate_expr): Likewise.
3208 2005-11-27 Andreas Schwab <schwab@suse.de>
3210 * config/m68k/m68k.c: Reindent and fix whitespace, remove
3213 2005-11-27 Steven Bosscher <stevenb@suse.de>
3215 * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
3216 has EH predecessor edges.
3218 2005-11-26 Eric Christopher <echristo@apple.com>
3220 * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
3221 register stalls by zero extending to the full register.
3223 2005-11-27 Joseph S. Myers <joseph@codesourcery.com>
3225 * config/floatunsisf.c, config/floatunsidf.c,
3226 config/floatunsixf.c, config/floatunsitf.c: New files.
3227 * config/ia64/t-hpux: Add floatunsitf.c.
3228 * config/ia64/ia64.c (ia64_init_libfuncs): Use
3229 _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
3231 2005-11-26 Richard Henderson <rth@redhat.com>
3233 * c-lex.c (pragma_lex): Rename from c_lex.
3234 * c-pch.c: Update for pragma_lex rename.
3235 * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
3236 * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
3237 * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
3238 * config/sol2-c.c, config/v850/v850-c.c: Likewise.
3239 * doc/tm.texi: Likewise.
3241 2005-11-26 Andrew Pinski <pinskia@physics.uc.edu>
3244 * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
3245 when overflow is undefined.
3247 2005-11-26 Hans-Peter Nilsson <hp@axis.com>
3249 * doc/md.texi (Insn Canonicalizations): Refer to the
3250 function commutative_operand_precedence for further rules.
3252 2005-11-25 Roger Sayle <roger@eyesopen.com>
3255 * expmed.c (choose_mult_variant): Return immediately when mult_cost
3256 is less than zero. Limit mult_cost to a reasonable upper bound for
3257 the synthetic multiplication sequence.
3259 2005-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3262 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
3263 fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
3264 Lookup the explicit replacement functions for any unlocked
3265 stdio builtin transformations.
3267 2005-11-25 Hans-Peter Nilsson <hp@axis.com>
3269 * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
3271 * targhooks.c (default_secondary_reload): Don't require operand 2
3272 for an input reload to be earlyclobber.
3274 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3276 * fold-const.c (negate_mathfn_p): Fix comment and add support
3277 for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
3280 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
3283 * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
3284 _Q_ulltoq for unsigned conversions from SImode and DImode to
3287 2005-11-25 Alan Modra <amodra@bigpond.net.au>
3289 * config/rs6000/ppc64-fp.c (__floatunditf): New function.
3290 (__floatundidf, __floatundisf): Likewise.
3292 2005-11-25 David Edelsohn <edelsohn@gnu.org>
3294 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
3295 (rs6000_override_options): Remove initialization of
3296 rs6000_sr_alias_set.
3297 (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
3298 (rs6000_emit_stack_tie): Same.
3299 (emit_frame_save): Same.
3300 (gen_frame_mem_offset): Same.
3301 (rs6000_emit_prologue): Same.
3302 (rs6000_emit_epilogue): Same.
3304 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
3307 * fold-const.c (fold_build): Convert bool_var != 1 and
3308 bool_var == 0 to !bool_var.
3310 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
3313 * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
3314 for C being INTEGER_CST. Likewise for !=.
3316 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
3319 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
3320 unsigned conversions from SImode to TFmode.
3322 2005-11-24 Bernd Schmidt <bernd.schmidt@analog.com>
3324 * expr.c (expand_expr_real_1): Fix error in last change.
3326 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
3328 * caller-save.c: (this_insn_sets): Move into:
3329 (save_call_clobbered_regs).
3330 (mark_set_regs): Get this_insn_sets from data.
3332 (save_call_clobbered_regs): Take sets of the return value by
3333 sibcalls into account.
3335 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
3338 * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
3339 SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
3340 (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
3341 (memory_move_secondary_cost, init_reg_autoinc): Remove
3342 SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
3343 Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
3344 secondary_reload_class call.
3345 (copy_cost): Likewise. Add new parameter prev_sri. Changed all
3347 * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
3348 (push_secondary_reload): Use secondary_reload target hook.
3349 (secondary_reload_class, scratch_reload_class): New functions.
3350 (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
3351 SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace
3352 SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
3353 * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
3354 (secondary_reload_class, scratch_reload_class): Declare.
3355 * reload1.c: Include target.h.
3356 (reload_adjust_reg_for_temp): New function.
3357 (reload_adjust_reg_for_icode): Likewise.
3358 (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
3359 Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
3361 (emit_input_reload_insns): Likewise. Rewrite secondary reload checks
3362 for inheritance. Support case when both secondary & tertiary reloads
3363 are for intermediate registers.
3364 (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
3365 with secondary_reload_class call. Support case when both secondary
3366 & tertiary reloads are for intermediate registers.
3367 * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
3368 (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
3369 * target.h (secondary_reload_info): New struct / typedef.
3370 (struct gcc_target): New member secondary_reload.
3371 * targhooks.c Include reload.h, optabs.h and recog.h.
3372 (default_secondary_reload): New function.
3373 * targhooks.h (default_secondary_reload): Declare.
3374 * doc/tm.texi: Document secondary_reload target hook. Update
3375 description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
3376 * doc/md.texi: Likewise.
3378 * sh-protos.h (sh_secondary_reload): Declare.
3379 * sh.c (TARGET_SECONDARY_RELOAD): Override.
3380 (sh_secondary_reload): New function.
3381 * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
3382 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3383 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3384 (HAVE_SECONDARY_RELOADS): Define.
3385 * sh.md (reload_indf): Rename to:
3387 (reload_outdf): Rename to:
3388 (reload_outdf__RnFRm).
3389 (reload_insf): Rename to:
3391 (reload_insi): Rename to:
3392 (reload_insi__i_fpul).