1 2005-12-16 Jakub Jelinek <jakub@redhat.com>
3 PR rtl-optimization/24899
4 * loop.c (strength_reduce): Don't reduce giv that is not always
5 computable and where add_val or mult_val can trap.
7 * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
9 2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
11 * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
12 names of ms1-16-002 files.
14 2005-12-16 Alan Modra <amodra@bigpond.net.au>
17 * gcc.c (for_each_path): New function.
18 (add_to_obstack, file_at_path): New functions.
19 (struct file_at_path_info, struct add_to_obstack_info): New.
20 (build_search_list): Rewrite using for_each_path. Constify struct
21 path_prefix pointer. Add do_multi param. Adjust all callers.
22 (find_a_file): Similarly, but just change existing param to bool.
23 (putenv_from_prefixes): Add do_multi param, make "paths" const.
24 (do_spec_path): Delete.
25 (struct spec_path_info): New.
26 (spec_path): New function.
27 (do_spec_1): Use for_each_path for %D and %I.
28 (find_file): Adjust for find_a_file changes.
29 (main): Search multilibs for specs. Print multilib lib path for
30 -print-search-dirs. Likewise add multilibs to LIBRARY_PATH_ENV.
31 (read_specs): Search multilibs for %include and %include_noerr.
32 (is_directory): Remove second string param. Change last param
33 to a bool. Don't use concat. Remove SMALL_ARG_MAX test, always
34 check path is a dir. Update all callers.
35 * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
36 * system.h (SMALL_ARG_MAX): Poison.
37 * config.gcc: Don't define SMALL_ARG_MAX.
38 * config.host: Likewise.
39 * config.build: Likewise.
41 2005-12-16 Paolo Bonzini <bonzini@gnu.org>
43 * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
44 FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
45 ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
46 simplify_logical): Move simplifications that do not require
47 additional infrastructure...
48 * simplify-rtx.c (simplify_unary_operation_1,
49 simplify_binary_operation_1): ... here.
51 2005-12-16 Andreas Krebbel <krebbel1@de.ibm.com>
54 * flow.c (mark_used_dest_regs): New function.
55 (mark_used_regs): Call mark_used_dest_regs.
57 2005-12-16 Jeff Law <law@redhat.com>
59 * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
60 represent a use and definition of the same SSA_NAME.
62 2005-12-16 Jon Grimm <jgrimm2@us.ibm.com>
63 Janis Johnson <janis187@us.ibm.com>
64 Ben Elliston <bje@au.ibm.com>
66 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
67 (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
68 * target.h (struct gcc_target): Add decimal_float_supported_p.
69 * targhooks.c (default_scalar_mode_supported_p): Handle
71 * builtins.def: Add new builtins for 32, 64 and 128 bit variants
72 of inf, nan, finite, isinf and isnan.
73 * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
74 BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
75 BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
76 BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
77 BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
78 BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
79 BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
80 * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
81 Pedwarn if decimal floating point types are used. Error if
82 decimal floating point is not supported by the target.
83 (finish_declspecs): Return type from DFP typespec_word.
84 * c-typeck.c (c_common_type): Choose the decimal floating point
85 type with the greater precision when determining a common type.
86 (convert_arguments): Warn if there is a mismatch between argument
87 and prototype for decimal float types. Warn of conversions with
88 binary float types and of precision narrowing due to prototype.
89 * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
90 (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
91 (c_token_starts_declspecs): Likewise.
92 (c_parser_attributes): Likewise.
93 * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
94 RID_DFLOAT64, RID_DFLOAT128.
95 (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
96 * c-common.c (c_common_type_for_mode): Handle decimal float modes.
97 (shorten_compare): Convert DFP/BFP operands to a common type.
98 (c_common_modes_and_builtins): Register built-in decimal float
99 types if the target supports them.
100 (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
101 * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
102 inf, nan, finite, isinf and isnan builtins.
103 * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
104 (builtin_define_float_constants): Assert non-decimal radix.
105 (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
106 Call builtin_define_decimal_float_constants for each type.
107 * c-lex.c (interpret_float): Decode decimal float types from CPP_N
108 flags. Use real_from_string3, which can handle binary or decimal
110 * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
111 cts_dfloat64, cts_dfloat128.
112 * tree.c (build_common_tree_nodes_2): Add decimal float types.
113 * tree.h (enum tree_index): Add new enumeration values
114 TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
115 TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
116 (dfloat32_type_node): New macro.
117 (dfloat64_type_node, dfloat128_type_node): Likewise.
118 (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
119 (dfloat128_ptr_type_node): Likewise.
120 * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
121 bit decimal floating point types with "df", "dd" and "dl".
122 * c-format.h (enum format_lengths): Add new enumeration values
123 FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
124 * c-format.c (printf_length_specs, scanf_length_specs): Add
125 entries for H, D, DD.
126 (print_char_table, scan_char_table): Use new entries.
127 (asm_fprintf_char_table, gcc_diag_char_table,
128 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
130 * defaults.h (DECIMAL32_TYPE_SIZE): Define.
131 (DECIMAL64_TYPE_SIZE): Likewise.
132 (DECIMAL128_TYPE_SIZE): Likewise.
133 (TARGET_DEC_EVAL_METHOD): Likewise.
134 * doc/extend.texi (Decimal Float): New node.
135 (Constructing Calls): Document decimal float built-ins.
136 * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
137 * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
138 * ginclude/decfloat.h: New file.
140 2005-12-16 Alan Modra <amodra@bigpond.net.au>
142 * reload.c (find_reloads): Fix comment typo.
143 * recog.h (recog_memoized): Correct comment.
145 2005-12-16 Kazu Hirata <kazu@codesourcery.com>
147 * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
148 config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
149 reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
150 tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
151 * doc/invoke.texi, doc/tm.texi: Fix typos.
153 2005-12-16 Ben Elliston <bje@au.ibm.com>
155 * real.c (decimal_quad_format): Correct values for emin, emax.
157 2005-12-15 DJ Delorie <dj@redhat.com>
159 * config/m32c/predicates.md (m32c_psi_scale): New.
160 * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
161 * config/m32c/muldiv.md (mulpsi3): Support negative constants.
163 2005-12-16 Jan Hubicka <jh@suse.cz>
165 PR rtl-optimization/25224
166 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
169 2005-12-15 Zdenek Dvorak <dvorakz@suse.cz>
170 Steven Bosscher <stevenb@suse.de>
172 * loop-invariant.c (df): New global variable.
173 (find_defs, check_dependencies, find_invariant_insn, record_uses,
174 find_invariants_bb, find_invariants_body, find_invariants,
175 find_invariants_to_move, move_invariants, free_inv_motion_data,
176 move_single_loop_invariants, move_loop_invariants): Do not pass df in
179 2005-12-15 Jakub Jelinek <jakub@redhat.com>
181 * varasm.c (default_unique_section_1): Use special section
182 names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
184 2005-12-16 Ben Elliston <bje@au.ibm.com>
186 * doc/invoke.texi (Warning Options): Document -Walways-true being
189 2005-12-15 Joseph S. Myers <joseph@codesourcery.com>
192 * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
193 * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
194 __floatunditf): Use #error if type sizes don't match requirements
196 (__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode
197 as wider floating-point type. Use #error if type sizes don't
198 match requirements of implementation. Avoid overflow in computing
199 Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion,
200 shift one more bit. Cast 1 to DWtype or UDWtype for shifting.
201 (__floatundisf, __floatundidf): Likewise.
202 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
203 * config/ia64/ia64.c (ia64_init_libfuncs): Use
204 _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
205 TFmode-TImode conversions.
206 * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
208 2005-12-14 Craig Rodrigues <rodrigc@gcc.gnu.org>
210 * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
211 Use builtin_define_with_int_value() instead of
212 adding a new check for every new major FreeBSD version.
214 2005-12-14 Andrew Pinski <pinskia@physics.uc.edu>
216 * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
218 2005-12-15 Richard Sandiford <richard@codesourcery.com>
220 * config/arm/predicates.md (call_memory_operand): New.
221 * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
223 2005-12-15 Andrew Haley <aph@redhat.com>
225 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
226 against prev_cache_entry == NULL when moving a cache entry to the
229 2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
231 * config/mt/mt.c (mt_override_options): Require lower case
232 architectures. Revert accidental default to ms2.
233 * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
234 ENDFILE_SPEC): Require lower case architectures. Revert default
237 * doc/invoke.texi (MT Options): Rename and update.
238 * doc/md.texi (MorphoTech family): Rename and update.
240 2005-12-15 Olivier Hainque <hainque@adacore.com>
242 * stor-layout.c (layout_type): Don't complain about a too small
243 an array element type size compared to its alignment when the
246 2005-12-15 Jan Hubicka <jh@suse.cz>
249 * i386.c (classify_argument): Properly adjust offset of bitfield for
252 2005-12-15 Richard Sandiford <richard@codesourcery.com>
254 * final.c (final_scan_insn): Flip in_cold_section_p when changing
255 between the hot and cold sections. Use current_function_section
256 to get the new section.
257 * dwarf2out.c (output_line_info): Use in_cold_section_p to
258 determine whether we are assembling hot or cold code.
259 (secname_for_decl, dwarf2out_var_location): Likewise.
260 (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
261 * varasm.c (last_text_section): Delete.
262 (in_cold_section_p): New variable.
263 (hot_function_section): New function.
264 (current_function_section): Pass in_cold_section_p as the
265 reloc argument to select_section. Use it to decide between
266 unlikely_function_section and hot_function_section.
267 (assemble_start_function): Use switch_to_section. Set
268 in_cold_section_p instead of last_text_section.
269 (assemble_end_function): Use switch_to_section.
270 (switch_to_section): Don't set last_text_section.
271 * config/darwin/darwin.c (machopic_select_section): Trust the reloc
272 argument to make the right choice between hot and cold sections.
274 2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
276 Second part of MS1->MT renaming
277 * config/mt/mt.md (doloop_end): Call mt_add_loop.
278 (movqi, movhi): Call mt_set_memflags.
279 (*movdf_internal): Call mt_split_words.
280 (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
282 (cmpsi): Store to mt_compare_op[01].
283 (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
284 bungt, bunle, bunlt): Call mt_emit_cbranch.
285 (prologue): Call mt_expand_prologue.
286 (epilogu): Call mt_expend_epilogue.
287 (eh_return): Call mt_expand_eh_return.
288 (eh_epilogue): Call me_emit_eh_epilogue.
289 (conditional_trap): Store to mt_compare_op[01].
290 * config/mt/crti.asm: Adjust comment.
291 * config/mt/crtn.asm: Adjust comment.
292 * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
293 (mt_compare_op0, mt_compare_op1): Renamed.
294 (current_frame_info, zero_frame_info): Adjust type.
295 (mt_ucmpsi3_libcall): Renamed.
296 (mt_flag_delayed_branch): Renamed.
297 (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
298 (mt_nops_required, mt_nop_reasons): Renamed.
299 (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
300 mt_debug_stack, mt_print_operand_simple_address,
301 mt_print_operand_address, mt_print_operand): Renamed, adjusted.
302 (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
303 mt_function_arg_advance, mt_arg_partial_bytes,
304 mt_pass_by_reference, mt_function_arg_boundary,
305 mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
306 mt_legitimate_address_p): Renamed, adjusted.
308 (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
309 mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
310 mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p,
311 mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
312 mt_expand_eh_return, mt_emit_eh_prologue,
313 mt_handl_interrupt_attribute): Renamed, adjusted.
314 (mt_attribute_table): Renamed, adjusted.
315 (mt_initial_elimination_offset, mt_generate_compare,
316 mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
317 mt_secondary_reload_class, mt_function_value, mt_split_words,
318 mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
319 mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
320 (mt_labels): Renamed.
321 (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
322 mt_machine_reorg): Renamed, adjusted.
323 (mt_attribute_table: Renamed.
324 (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
325 TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
326 TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
327 * config/mt/mt.opt (march): Set mt_cpu_string.
328 * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
329 (TARGET_CPU_CPP_BUILTINS): Adjust.
330 (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
332 (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
333 (MT_MIN_INT): Renamed.
334 (RETURN_ADDR_RTX): Adjust.
335 (struct mt_frame_info): Renamed.
336 (current_frame_info): Adjust type.
337 (INITIAL_ELIMINATION_OFFSET): Adjust.
338 (MT_NUM_ARG_REGS): Renamed.
339 (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
340 FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
341 LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
342 GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
343 FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
344 (mt_compare_op0, mt_compare_op1): Renamed.
345 * config/mt/mt-protos.h: Rename prototypes.
347 2005-12-15 Richard Guenther <rguenther@suse.de>
349 * tree-flow.h (okay_component_ref_for_subvars): Remove.
350 (get_ref_base_and_extent): Declare.
351 * tree-dfa.c (okay_component_ref_for_subvars): Remove.
352 (get_ref_base_and_extent): New function.
353 * tree-ssa-alias.c (find_used_portions): Use it.
354 * tree-ssa-structalias.c (get_constraint_for_component_ref):
356 * tree-ssa-operands.c (get_expr_operands): Likewise.
358 2005-12-15 Paolo Bonzini <bonzini@gnu.org>
360 * combine.c: Remove force_to_mode's fourth parameter.
361 (force_to_mode): Do not handle REG.
362 (canon_reg_for_combine): New.
363 (make_field_assignment): Use it where the removed argument was non-NULL.
365 2005-12-15 Alan Modra <amodra@bigpond.net.au>
368 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
369 error_mark_node. Make alignment params unsigned.
370 * config/rs6000/rs6000-protos.h
371 (rs6000_special_round_type_align): Update prototype.
372 (rs6000_machopic_legitimize_pic_address): Remove arg names.
374 2005-12-14 Ulrich Weigand <uweigand@de.ibm.com>
376 PR rtl-optimization/25310
377 * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
378 of the eliminable register when substituting into a PLUS.
380 2005-12-14 Jakub Jelinek <jakub@redhat.com>
383 * config/i386/i386.c (ix86_force_to_memory): Always use
384 SImode push for HImode in -m32.
385 (ix86_free_from_memory): Likewise.
387 2005-12-14 Richard Sandiford <richard@codesourcery.com>
389 * gcc/config/arm/arm.md: Provide a big-endian version of the
390 (zero_extend:SI (subreg:QI ...)) splitter.
392 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
394 * struct-equiv.c (note_local_live): Handle hard regs with different
397 2005-12-14 Jeff Law <law@redhat.com>
399 * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
400 to a structure containing state rather than a pointer to bool.
401 (case ARRAY_REF): New code to handle folding some array references.
402 (case ADDR_EXPR): Note when we are processing expressions found
403 within an ADDRE_EXPR.
404 (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
405 for state variables rather than just a pointer to a boolean.
406 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
407 handling of constant string references.
409 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
411 * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
412 ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
413 ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
414 Move other tst* patterns to retain partial order.
416 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
418 * config/s390/s390.md ("d0", "1"): New mode attributes.
419 ("<shift>di3", "<shift>si3"): Merge.
420 ("*<shift>di3_and", "*<shift>si3_and"): Merge.
421 ("ashrdi3", "ashrsi3"): Merge.
422 ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
423 ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
424 ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
425 ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
426 ("*ashrdi3", "*ashrsi3"): Merge.
427 ("*ashrdi3_and", "*ashrsi3_and"): Merge.
429 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
431 * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
432 ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
433 ("*extendqidi2", "*extendqisi2") Merge.
434 ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
435 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
436 ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
437 Move some patterns to retain partial ordering.
439 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
441 * config/s390/s390.md ("atype", "length"): Rewrite.
442 ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
444 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
446 * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
448 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
450 * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
451 PARALLELs with a mode.
453 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
455 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
458 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
460 * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
462 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
466 * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
469 * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
471 2005-12-14 Jakub Jelinek <jakub@redhat.com>
475 * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
476 DECL_P, call get_section rather than get_named_section. Supply
479 2005-12-14 Ben Elliston <bje@au.ibm.com>
481 * c-common.c (c_common_truthvalue_conversion): Generalise warning
482 for addresses converted to booleans; not just function addresses.
483 * c-typeck.c (build_binary_op): Warn for address comparisons which
484 can never be NULL (eg. func == NULL or &var == NULL).
485 * common.opt (Walways-true): New option.
486 * c-opts.c (c_common_handle_option): Set it with -Wall.
487 * doc/invoke.texi: Document it.
489 2005-12-13 Paul Brook <paul@codesourcery.com>
491 * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
492 __floatunsidf, __floatunsisf, __floatunsixf): New functions.
494 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
496 * sim/common/sim-signal.c (sim_signal_to_target): Add missing ':'.
497 * sim/common/sim-signal.h (sim_signal_to_target): Return an int.
499 * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
500 (EXTRA_MULTILIB_PARTS): Define.
502 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
504 PR rtl-optimization/20070 / part1
505 * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
506 count_or_remove_death_notes with kill == -1.
507 (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
508 registers if PROP_POST_REGSTACK is set.
509 (mark_used_reg): Likewise.
510 (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
511 REG_UNUSED notes for stack regs.
512 * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
513 to match rtx_equiv_p machinery. Change caller.
514 (outgoing_edges_match): Likewise.
515 (try_crossjump_to_edge): Use struct_equiv_block_eq
516 instead of flow_find_cross_jump.
517 * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
518 (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
519 (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
520 (STRUCT_EQUIV_MAX_LOCAL): Likewise.
521 (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
522 (insns_match_p): Update prototype.
523 (flow_find_cross_jump): Remove prototype.
524 (struct_equiv_block_eq, struct_equiv_init): Declare.
525 (rtx_equiv_p, condjump_equiv_p): Likewise.
526 * struct-equiv.c: Include reload.h.
527 (IMPOSSIBLE_MOVE_FACTOR): Define.
528 (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
529 (struct_equiv_improve_checkpoint): Likewise.
530 (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
531 (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
532 (struct_equiv_merge, find_dying_input): Likewise.
533 (resolve_input_conflict, note_local_live): Likewise.
534 (death_notes_match_p): Change parameters and processing
535 to match rtx_equiv_p machinery. Change caller.
536 (insns_match_p): Likewise.
537 (flow_find_cross_jump): Replace with:
538 (struct_equiv_block_eq).
540 Back out this change:
541 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
542 * recog.c (verify_changes): Make it static.
543 * recog.h: Remove the corresponding prototype.
545 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
547 * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
550 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
552 * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
553 (MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'.
554 * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
555 TARGET_MS1_64_001 appropriately.
556 (ms1_machine_reorg): Use TARGET_MS2.
558 2005-12-13 Jakub Jelinek <jakub@redhat.com>
562 * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
563 and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
564 Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
565 * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
566 Set mode to SI, adjust constraints.
567 (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
568 * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
571 2005-12-13 Carlos O'Donell <carlos@codesourcery.com>
573 * c-cppbuiltin.c (builtin_define_float_constants): Add
574 fp_cast parameter, pass to builtin_define_with_hex_fp_value.
575 Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
576 (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
577 (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
578 to "((double)%sL)" otherwise "%s".
580 2005-12-13 Paul Brook <paul@codesourcery.com>
582 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
585 2005-12-11 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
587 * tree-flow.h: Allow compilation with a C++ compiler.
588 (struct edge_prediction): Prefix all field names with "ep_".
589 * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
590 (tree_predict_edge, combine_predictions_for_bb): Likewise.
591 (remove_predictions_associated_with_edge): Likewise.
593 2005-12-12 Jeff Law <law@redhat.com>
595 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
597 * passes.c (init_optimization_passes): Run reassociation again
598 after loop optimizations.
600 2005-12-12 Daniel Berlin <dberlin@dberlin.org>
602 * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
604 (optimize_stmt): Ditto.
605 (canonicalize_comparison): New function.
606 * tree-ssa-operands.c (swap_tree_operands): Make external.
607 (get_expr_operands): Stop auto-canonicalization.
608 * tree-ssa-reassoc.c: Rewrite.
609 (init_optimization_passes):
610 * tree-flow.h (swap_tree_operands): Prototype.
611 * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
613 2005-12-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
615 * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
616 indicate function epilogue has been output.
617 (pa_asm_output_mi_thunk): Likewise.
618 (output_deferred_plabels): Put plabels in readonly data section when
619 not generating PIC code.
620 (som_output_text_section_asm_op): Use .NSUBSPA to output debug
621 information. Add assert.
622 (som_output_comdat_data_section_asm_op): New function.
623 (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
624 instead of output_section_asm_op for COMDAT sections.
626 2005-12-12 J"orn Rennecke <joern.rennecke@st.com>
628 * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
629 Fix whitespace in vincinity of to-be-installed changes.
630 * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
631 (insns_match_p): Likewise.
633 2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
635 * config.gcc (ms1): Replace with ...
637 * config/ms1: Rename to ...
638 * config/mt: ... here. Rename ms1 files to mt.
639 * config/mt/mt.c: Adjust gt-mt.h #include.
640 * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
641 (crti.o, crtn.o): Adjust file names.
643 2005-12-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
645 * varray.h: Allow compilation with a C++ compiler.
646 (union varray_data_tag): Prefix all field names with "vdt_".
647 (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
648 VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
649 VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
650 VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
651 VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
652 VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
653 (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
654 VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT,
655 VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT,
656 VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR,
657 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR,
658 VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE,
659 VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB,
660 VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
661 (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT,
662 VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT,
663 VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT,
664 VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR,
665 VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX,
666 VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP,
667 VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE,
668 VARRAY_TOP_TREE_PTR): Likewise.
669 * varray.c (varray_grow): Likewise.
670 (varray_clear): Likewise.
672 2005-12-12 Alan Modra <amodra@bigpond.net.au>
675 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
676 alignment to doubleword if the first field is a double array.
677 * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
679 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
681 * tree-ssa-structalias.c (process_constraint): Remove code to
682 transform addressofs into scalar.
683 (create_variable_info_for): In whole-program IPA, globals don't
684 point to ANYTHING by default.
686 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
688 * timevar.def (TV_IPA_PTA): New.
689 * tree-pass.h (pass_ipa_pta): New
690 * tree-ssa-structalias.c: Include cgraph.h
692 (predbitmap_obstack): New.
693 (EXECUTE_IF_IN_NONNULL_BITMAP): New.
694 (struct constraint_stats): Add num_edges.
695 (new_var_info): Don't call bitmap_clear.
696 (struct constraint_edge): Update docs.
697 (new_constraint_edge): Remove src param.
698 (struct constraint_graph): Add zero_weight_succs,
699 zero_weight_preds. Update docs.
700 (constraint_expr_equal): Reformat.
701 (constraint_edge_equal): Update for removal of src.
702 (constraint_edge_less): Ditto.
703 (constraint_edge_vec_find): Ditto.
704 (erase_graph_self_edge): Update for removal of src and and zero
706 (clear_edges_for_node): Ditto.
707 (add_graph_edge): Ditto.
708 (get_graph_weights): Ditto.
709 (allocate_graph_weights): Ditto.
710 (merge_graph_nodes): Ditto.
711 (int_add_graph_edge): Ditto.
712 (valid_graph_edge): Ditto.
713 (valid_weighted_graph_edge): Ditto.
714 (build_constraint_graph): Ditto.
716 (collapse_nodes): Ditto.
717 (process_unification_queue): Ditto.
719 (solve_graph): Ditto.
720 (do_structure_copy): Ditto.
721 (perform_var_substitution): Ditto.
722 Init and release obstack.
723 (handle_ptr_arith): Try to resolve directly.
724 (find_func_aliases): Don't call update_alias_info here
725 Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
726 (do_sd_constraint): Add code for propagating faster.
728 (do_ds_constraint): Ditto.
729 (count_num_arguments): New function.
730 (create_function_info_for): Ditto.
731 (create_variable_info_for): Handle FUNCTION_DECL.
732 (intra_create_variable_infos): Use make_constraint_to_anything.
733 (init_alias_vars): Init obstacks here.
734 (need_to_solve): Handle zero weight graph changes.
735 (compute_points_to_sets): Call update_alias_info here.
736 (delete_points_to_sets): Free zero weight preds/succs here.
738 (ipa_pta_execute): New
740 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
742 * tree-ssa-structalias.c (var_anyoffset): Removed.
743 (anyoffset_tree): Ditto.
744 (anyoffset_id): Ditto.
745 (do_deref): Take vector of constraints, no return value.
746 Update to work on vector.
747 (get_constraint_for): Ditto.
748 (get_constraint_for_component_ref): Ditto.
749 (do_structure_copy): Ditto.
750 (handle_ptr_arith): Ditto.
751 (find_func_aliases): Ditto.
752 (set_uids_in_ptset): Remove anyoffset handling.
753 (init_base_vars): Ditto.
755 2005-12-10 Mark Mitchell <mark@codesourcery.com>
758 * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
759 DECL_EXTERNAL functions have no bodies. Tidy.
761 2005-12-10 Andreas Schwab <schwab@suse.de>
763 * except.c (switch_to_exception_section): Only define if
764 TARGET_UNWIND_INFO is not defined.
766 2005-12-10 Richard Sandiford <richard@codesourcery.com>
768 * config/darwin.h (HAS_INIT_SECTION): Remove definition.
769 (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
771 2005-12-10 Richard Sandiford <richard@codesourcery.com>
773 * output.h (init_section, fini_section): Delete.
774 * varasm.c (init_section, fini_section): Delete.
775 (init_varasm_once): Don't initialize them.
776 * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
777 there are no corresponding varasm.c variables.
779 2005-12-10 Richard Sandiford <richard@codesourcery.com>
781 * dwarf2out.c (default_eh_frame_section): Delete, moving handling
782 of EH_FRAME_SECTION_NAME into...
783 (switch_to_eh_frame_section): ...here. Try to set eh_frame_section
785 * except.c (default_exception_section): Delete, moving most
787 (switch_to_exception_section): ...this new function. Set
788 exception_section if it is still null, then switch to it.
789 (output_function_exception_table): Use switch_to_exception_section.
790 * varasm.c (exception_section, eh_frame_section): Update comments.
791 (get_section): Hoist use of SECTION_NAMED.
792 (init_varasm_once): Don't set exception_section and eh_frame_section.
793 * output.h (default_exception_section): Delete.
794 (default_eh_frame_section): Delete.
796 2005-12-09 Bernd Schmidt <bernd.schmidt@analog.com>
798 * config/bfin/bfin.c: Include "cgraph.h".
799 (bfin_load_pic_reg): Omit loading pic reg if in a local function.
800 Return the reg that holds the pointer to the GOT.
801 (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
802 doing stack checking.
804 2005-12-09 Diego Novillo <dnovillo@redhat.com>
806 * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
807 recompute_tree_invarant_for_addr_expr.
808 Update uses everywhere.
810 2005-12-09 Aldy Hernandez <aldyh@redhat.com>
812 * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
813 (MULTILIB_DIRNAMES): Define.
815 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
818 * config/s390/s390.c (struct s390_address): New field literal_pool.
819 (s390_decompose_address): Compute literal_pool field. Do not
820 assume register %r13 is always (and solely) used as pool base.
821 (s390_extra_constraint_str): Use literal_pool field.
823 2005-12-09 Thiemo Seufer <ths@networkno.de>
825 * config/mips/mips.c (override_options): Don't allow too small
826 integers in FP registers.
828 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
830 * config/s390/s390.c (s390_function_ok_for_sibcall): Use
831 targetm.binds_local_p to check for local function calls.
833 2005-12-09 Alan Modra <amodra@bigpond.net.au>
836 * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
837 call_used_regs can't be used to save reg in another reg.
839 2005-12-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
840 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
842 * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
844 * except.c (output_ttype): Likewise.
845 * tree-object-size.c (collect_object_sizes_for): Likewise.
846 (check_for_plus_in_loops_1): Likewise.
847 (check_for_plus_in_loops): Likewise.
848 (compute_object_sizes): Use gcc_unreachable instead of abort.
850 2005-12-08 Nathan Sidwell <nathan@codesourcery.com>
852 * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
853 (loop_end, loop_init, doloop_end): New insns.
854 * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
855 (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
856 (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
857 (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
858 * config/ms1/ms1.c: #include basic-block.h
859 (struct machine_function): Add has_loops field.
861 (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
862 (struct loop_info, struct loop_work): New.
863 (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
864 (ms1_reorg_loops): New loop optimization.
865 (ms1_machine_reorg): Call it.
866 * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
868 2005-12-08 Zdenek Dvorak <dvorakz@suse.cz>
870 PR tree-optimization/25248
871 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
872 evolution_of_loop from the failed attempt. Remove handling
875 2005-12-08 Gabriel Dos Reis <gdr@integrable-solutions.net>
877 * tree.h (DECL_EXTERNAL): Clarify documentation.
879 2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com>
880 Jakub Jelinek <jakub@redhat.com>
883 * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
884 argument. Don't drop outer ANDs.
885 (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
886 * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
888 * config/s390/predicates.md (setmem_operand): Remove.
889 (shift_count_operand): Rename to...
890 (shift_count_or_setmem_operand): ... this. Adjust
891 s390_decompose_shift_count caller.
892 * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
893 ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
894 ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
895 <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
896 rotl<mode>3_and, setmem_long_and): New insns.
897 (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
898 ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
899 <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
900 <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
901 of shift_count_operand.
902 (setmem_long): Use shift_count_or_setmem_operand instead of
905 2005-12-08 Daniel Jacobowitz <dan@codesourcery.com>
906 Andreas Tobler <a.tobler@schweiz.ch>
908 * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
911 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
913 * expr.c (force_operand): Use convert_to_mode for conversions.
915 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
917 * reload.h (reg_equiv_invariant): Declare.
918 * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
919 register also when reg_equiv_invariant[R] is set.
921 2005-12-07 Richard Sandiford <richard@codesourcery.com>
922 Andreas Tobler <a.tobler@schweiz.ch>
924 * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
926 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
928 * tree-ssa-pre.c (bitmap_set_and): New function.
929 (bitmap_set_and_compl): New function.
930 (bitmap_set_empty_p): New function.
931 (insert_extra_phis): New function.
932 (compute_avail): Use insert_extra_phis.
934 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
936 * config/s390/s390.c (s390_expand_atomic): New function.
937 Adjust comment of helper functions.
938 * config/s390/s390-protos.h (s390_expand_atomic): Declare.
939 * config/s390/s390.md ("ATOMIC"): New code macro.
940 ("atomic"): Corresponding new code attribute.
941 ("sync_lock_test_and_set[hq]i",
942 "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
944 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
946 * config/s390/s390.c (s390_expand_mask_and_shift,
947 struct alignment_context, init_alignment_context,
948 s390_expand_cs_hqi): New.
949 * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
950 * config/s390/s390.md ("sync_compare_and_swaphi",
951 "sync_compare_and_swapqi"): New pattern.
953 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
955 Fix PR tree-optimization/25291
956 * tree-ssa-operands.c (add_call_clobber_ops): Remove
957 redundant and crashing check.
959 2005-12-08 Alan Modra <amodra@bigpond.net.au>
962 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
963 tests further when !strict && reload_in_progress.
964 (print_operand): Check that both operands of indexed address are regs.
965 (print_operand_address): Likewise.
966 * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
967 (INT_REG_OK_FOR_BASE_P): Correct.
969 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
971 Preparation for PR rtl-optimization/20070 / part1
972 * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
973 * cfgcleanup.c (condjump_equiv_p): New function, broken out of
974 outgoing_edges_match.
975 (outgoing_edges_match): Use condjump_equiv_p.
976 (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
978 * struct-equiv.c: New file.
979 (death_notes_match_p) New function, broken out of insns_match_p.
980 * Makefile.in (OBJS-common): Add struct-equiv.o.
981 (struct-equiv.o): New target.
983 2005-12-07 Richard Sandiford <richard@codesourcery.com>
985 * coretypes.h: Revert previous change.
986 * config/darwin.h: Revert previous reversion.
987 * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
989 2005-12-07 Richard Sandiford <richard@codesourcery.com>
991 * coretypes.h (section): Provide dummy definition for target files.
992 * config/darwin.h: Revert previous change.
994 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
996 * doc/sourcebuild.texi (all.build, install-normal): Remove.
997 * configure.ac: Remove all.build and install-normal from target_list
998 * configure: Regenerate.
999 * Makefile.in (install): Don't depend on install-normal.
1001 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1003 * Makefile.in: Document the use of stamps.
1005 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1007 * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1008 * Makefile.in: Add code to compute some dependencies on s-gtype
1009 automatically. Remove the declaration of those dependencies.
1011 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1013 * gcc/reload.c (push_secondary_reload): Fix typo:
1014 s/insn_constraint/scratch_constraint/.
1016 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1018 * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1020 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1022 * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1023 (alpha_elf_select_rtx_section): Return the selected section rather
1024 than emitting assembly code.
1025 (alpha_write_linkage): Emit a ".link" directive directly and then
1026 set in_section to NULL.
1027 (vms_asm_out_constructor): Use switch_to_section.
1028 (vms_asm_out_destructor): Likewise.
1029 (unicosmk_output_common): Set in_section to NULL instead of calling
1030 the dummy common_section function.
1031 (unicosmk_text_section): Delete in favor of...
1032 (unicosmk_output_text_section_asm_op): ...this new function.
1033 (unicosmk_data_section): Delete in favor of...
1034 (unicosmk_output_data_section_asm_op): ...this new function.
1035 (unicosmk_init_sections): New function.
1036 (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1037 (unicosmk_output_ssib): Set in_section to NULL instead of calling
1038 the dummy ssib_section function.
1039 (unicosmk_section_buf): Delete.
1040 * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1041 (unicosmk_data_section): Delete.
1042 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1043 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1044 (SECTION_FUNCTION_TEMPLATE): Delete.
1045 * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1046 (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1047 (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1048 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1049 (TARGET_ASM_INIT_SECTIONS): Define.
1050 * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1051 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1052 (link_section, literals_section): Delete.
1053 (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1054 set in_section to NULL.
1056 * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1057 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1058 (COMMON_SECTION): Delete.
1059 (TARGET_ASM_INIT_SECTIONS): Define.
1060 (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1061 the dummy common_section function.
1062 * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1063 * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1064 between readonly_data_section and text_section to check whether
1065 read-only data is being put in the text section.
1066 (arm_output_function_epilogue): Use switch_to_section.
1067 (arm_elf_asm_constructor): Likewise.
1068 (thumb_call_via_reg): Replace call to in_text_section with
1069 a comparison between in_section and text_section.
1070 (arm_file_end): Use switch_to_section.
1071 (aof_text_section): Delete in favor of...
1072 (aof_output_text_section_asm_op): ...this new function.
1073 (aof_data_section): Delete in favor of...
1074 (aof_output_data_section_asm_op): ...this new function.
1075 (aof_asm_init_sections): New function.
1076 (zero_init_section): Moved from config/arm/aof.h.
1077 (aof_dump_imports, aof_file_start): Use switch_to_section.
1078 * config/arm/arm.h (thumb_call_via_label): Update comment.
1079 * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1080 (common_section): Delete.
1081 * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1082 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1083 global switch_to_section function instead of the old port-local one.
1084 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1085 (SWITCH_TO_SECTION_FUNCTION): Delete.
1086 (drectve_section): Redefine as a macro.
1087 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1088 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1091 * config/avr/avr.c (progmem_section): New variable.
1092 (avr_output_progmem_section_asm_op): New function.
1093 (avr_asm_init_sections): New function.
1094 (avr_output_addr_vec_elt): Use switch_to_section.
1095 * config/avr/avr.h (progmem_section): Declare.
1096 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1097 (READONLY_DATA_SECTION): Delete.
1098 (TARGET_ASM_INIT_SECTIONS): Define.
1099 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1100 * config/avr/avr-protos.h (progmem_section): Delete.
1102 * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1104 * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1105 (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
1107 * config/darwin-sections.def: New file.
1108 * config/darwin.c: Define all sections in darwin-sections.def.
1109 (output_objc_section_asm_op, darwin_init_sections): New functions.
1110 (machopic_output_indirection): Use switch_to_section.
1111 (machopic_select_section): Return the selected section rather than
1112 emitting assembly code. Replace the static function table with
1113 inline conditional expressions. Update the tests of last_text_section
1114 and move them into the FUNCTION_DECL block.
1115 (machopic_select_rtx_section): Return the selected section rather than
1116 emitting assembly code.
1117 (machopic_asm_out_constructor, machopic_asm_out_destructor)
1118 (darwin_file_end): Use switch_to_section.
1119 * config/darwin.h: Use darwin-sections.def to declare sections.
1120 (INIT_SECTION_ASM_OP): Remove empty definition.
1121 (HAS_INIT_SECTION): Define this instead.
1122 (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1123 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1124 (TARGET_ASM_EH_FRAME_SECTION): Delete.
1125 (TARGET_ASM_INIT_SECTIONS): Define.
1126 * config/darwin-protos.h (darwin_init_sections): Declare.
1127 (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
1128 (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
1129 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1130 (constructor_section, destructor_section, mod_init_section): Delete.
1131 (mod_term_section): Delete.
1132 (darwin_exception_section, darwin_eh_frame_section): Delete.
1133 (machopic_select_section): Return a section.
1134 (machopic_select_rtx_section): Likewise.
1135 (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
1136 (const_section, const_coal_section, const_data_section): Delete.
1137 (const_data_coal_section, data_coal_section, cstring_section): Delete.
1138 (literal4_section, literal8_section, constructor_section): Delete.
1139 (mod_init_section, mod_term_section, destructor_section): Delete.
1140 (objc_class_section, objc_meta_class_section, objc_category_section)
1141 (objc_class_vars_section, objc_instance_vars_section): Delete.
1142 (objc_cls_meth_section, objc_inst_meth_section): Delete.
1143 (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
1144 (objc_selector_refs_section, objc_selector_fixup_section): Delete.
1145 (objc_symbols_section, objc_module_info_section): Delete.
1146 (objc_image_info_section, objc_protocol_section): Delete.
1147 (objc_string_object_section, objc_constant_string_object_section)
1148 (objc_class_names_section, objc_meth_var_names_section): Delete.
1149 (objc_meth_var_types_section, objc_cls_refs_section): Delete.
1150 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1151 (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
1152 (darwin_exception_section, darwin_eh_frame_section): Delete.
1153 * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
1155 * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
1156 (frv_asm_out_destructor): Likewise.
1157 * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1158 (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
1159 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
1161 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1162 * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
1163 (data_section): Delete.
1165 * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1166 (DRECTVE_SECTION_FUNCTION): Delete.
1167 (drectve_section): Redefine as a macro that sets in_section after
1168 emitting the directive.
1169 (SWITCH_TO_SECTION_FUNCTION): Delete.
1170 * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
1171 in_text_section with comparison between in_section and text_section.
1172 * config/i386/i386.c (x86_64_elf_select_section): Return the section
1173 rather than emitting assembly code. Use get_named_section.
1174 (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
1176 (machopic_output_stub): Use switch_to_section.
1177 * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
1178 (nwld_named_section_asm_out_destructor): Use get_section and
1181 * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
1182 rather than emitting assembly code.
1183 (ia64_rwreloc_select_section): Likewise.
1184 (ia64_rwreloc_select_rtx_section): Likewise.
1185 * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
1186 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
1188 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1189 (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
1191 * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
1192 section rather than emitting assembly code.
1193 (iq2000_select_section): Likewise.
1194 * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
1195 (sbss_section): Delete.
1197 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
1198 and get_named_section.
1199 * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
1201 * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
1202 (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
1203 (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
1204 (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
1206 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1207 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1208 global switch_to_section function instead of the old port-local one.
1209 * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1210 (SWITCH_SECTION_FUNCTION): Delete.
1211 * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
1212 (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
1213 (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
1214 (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
1216 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1217 global switch_to_section function instead of the old port-local one.
1218 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1220 * config/mips/mips.c (mips_file_start): Update comment.
1221 (mips_output_aligned_bss): Use switch_to_section and get_named_section.
1222 (mips_output_aligned_decl_common): Use switch_to_section.
1223 (mips_select_rtx_section): Return the section rather than emitting
1224 assembly code. Use get_named_section.
1225 (mips_function_rodata_section: Likewise get_section.
1226 (build_mips16_function_stub): Use switch_to_section.
1227 * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
1228 (SDATA_SECTION_ASM_OP): Delete.
1229 * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
1230 (EXTRA_SECTION_FUNCTIONS): Delete.
1232 * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
1233 (mmix_asm_output_aligned_local): Use switch_to_section.
1235 * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
1236 (som_one_only_readonly_data_section): New variables.
1237 (pa_output_function_epilogue): Set in_section to NULL instead of
1238 calling forget_section.
1239 (output_deferred_plabels): Use select_section.
1240 (pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead
1241 of calling forget_section.
1242 (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
1243 (pa_asm_output_aligned_local): Use select_section.
1244 (som_text_section_asm_op): Delete in favor of...
1245 (som_output_text_section_asm_op): ...this new function.
1246 (pa_som_asm_init_sections): New function.
1247 (pa_select_section): Return the section rather than emitting
1249 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1250 (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
1251 (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
1252 (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
1253 * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
1254 (som_readonly_data_section, som_one_only_readonly_data_section)
1255 (som_one_only_data_section, forget_section): Delete.
1256 * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
1257 (TARGET_ASM_INIT_SECTIONS): Define.
1258 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1260 * config/rs6000/rs6000.c (read_only_data_section): New variable.
1261 (private_data_section, read_only_private_data_section): New variables.
1262 (sdata2_section, toc_section): New variables.
1263 (rs6000_file_start): Use switch_to_section.
1264 (rs6000_assemble_integer): Use comparisons against in_section
1265 instead of calling in_toc_section and in_text_section. Use
1266 unlikely_text_section_p.
1267 (rs6000_elf_output_toc_section_asm_op): New function, derived
1268 from the old rs6000/sysv4.h toc_section function.
1269 (rs6000_elf_asm_init_sections): New function.
1270 (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
1271 the section rather than emitting assembly code.
1272 (machopic_output_stub): Use switch_to_section.
1273 (toc_section): Delete dummy function.
1274 (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
1275 switch_to_section and get_section.
1276 (rs6000_xcoff_output_readonly_section_asm_op): New function.
1277 (rs6000_xcoff_output_readwrite_section_asm_op): New function.
1278 (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
1279 the old rs6000/xcoff.h toc_section function.
1280 (rs6000_xcoff_asm_init_sections): New function.
1281 (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
1282 the section rather than emitting assembly code.
1283 (rs6000_xcoff_file_start): Use switch_to_section.
1284 (rs6000_xcoff_file_end): Likewise.
1285 * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
1286 (sdata2_section, sbss_section, private_data_section): Delete.
1287 (read_only_data_section, read_only_private_data_section): Delete.
1288 * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1289 (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
1290 (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
1291 (FINI_SECTION_FUNCTION): Delete.
1292 (TARGET_ASM_INIT_SECTIONS): Define.
1293 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1294 * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1295 (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
1296 (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
1297 (READONLY_DATA_SECTION): Delete.
1298 (TARGET_ASM_INIT_SECTIONS): Define.
1299 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section
1300 to NULL rather than no_section.
1301 (TARGET_ASM_EXCEPTION_SECTION): Delete.
1303 * config/sh/sh.c (sh_file_start): Use switch_to_section.
1305 * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
1306 (sparc_output_deferred_case_vectors): Likewise. Remove argument
1307 from call to current_function_section.
1309 * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
1310 (bss100_section): New variable.
1311 (xstormy16_asm_output_aligned_common): Use switch_to_section.
1312 (xstormy16_asm_init_sections): New function.
1313 (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
1314 switch_to_section and get_section.
1315 (xstormy16_output_addr_vec): Use switch_to_section. Remove argument
1316 from calls to current_function_section.
1317 * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
1318 (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
1319 (TARGET_ASM_INIT_SECTIONS): Define.
1320 * config/stormy16/stormy16-protos.h (bss100_section): Delete.
1322 * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1323 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
1324 (FINI_SECTION_FUNCTION): Delete.
1326 * config/v850/v850.c: Include gt-v850.h.
1327 (rosdata_section, rozdata_section, tdata_section, zdata_section)
1328 (zbss_section): New variables.
1329 (v850_output_aligned_bss): Use switch_to_section.
1330 (v850_asm_init_sections): New function.
1331 (v850_select_section): Return the section rather than emitting
1333 * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1334 (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
1335 (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
1336 (TARGET_ASM_INIT_SECTIONS): Define.
1337 * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
1338 (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
1339 (zbss_section): Delete.
1341 * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1343 * config/vx-common.h (vxworks_exception_section): Delete.
1344 (TARGET_ASM_EXCEPTION_SECTION): Delete.
1346 * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
1347 section rather than emitting assembly code.
1348 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
1351 * Makefile.in (GTFILES): Add $(srcdir)/output.h.
1352 * coretypes.h (section): New union and typedef.
1353 * dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument
1354 from call to current_function_section.
1355 (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
1356 (dbxout_symbol_location): Use switch_to_section.
1357 * dwarf2out.c (named_section_eh_frame_section): Delete, moving
1358 most of the code into...
1359 (default_eh_frame_section): ...here. Return a section.
1360 (collect2_eh_frame_section): Delete, moving most of the code into..
1361 (switch_to_eh_frame_section): ...this new function.
1362 (debug_info_section, debug_abbrev_section, debug_aranges_section)
1363 (debug_macinfo_section, debug_line_section, debug_loc_section)
1364 (debug_pubnames_section, debug_str_section, debug_ranges_section): New
1366 (output_call_frame_info): Call switch_to_eh_frame_section instead of
1367 eh_frame_section. Use switch_to_section and get_section.
1368 (dwarf2out_begin_prologue): Use switch_to_section.
1369 (AT_string_form): Check the flags in debug_str_section instead of
1370 DEBUG_STR_SECTION_FLAGS.
1371 (output_comp_unit): Use switch_to_section, get_section, and
1373 (output_line_info, secname_for_decl): Use unlikely_text_section_p.
1374 (dwarf2out_begin_block): Use switch_to_section. Remove argument
1375 from call to current_function_section.
1376 (dwarf2out_var_location): Use unlikely_text_section_p.
1377 (dwarf2out_source_line): Use switch_to_section. Remove argument
1378 from call to current_function_section.
1379 (dwarf2out_start_source_file, dwarf2out_end_source_file)
1380 (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
1381 debug_macinfo_section.
1382 (dwarf2out_init): Initialize the new section variables. Use them
1383 instead of calls to named_section_flags. Use switch_to_section.
1384 (output_indirect_string): Use switch_to_section and debug_str_section.
1385 (dwarf2out_finish): Use switch_to_section and the new section
1387 * except.c (default_exception_section): Return the section instead
1388 of emitting assembly code.
1389 (output_function_exception_table): Use the global exception_section
1390 variable instead of the target hook. Use switch_to_section. Remove
1391 argument from call to current_function_section.
1392 * final.c (HAVE_READONLY_DATA_SECTION): Delete.
1393 (shorten_branches): Use pointer comparisons to detect whether the
1394 text section is the same as readonly_data_section.
1395 (profile_function): Use switch_to_section. Remove argument from
1396 call to current_function_section.
1397 (final_scan_insn): Likewise. Update use of last_text_section.
1398 * gengtype.c (open_base_files): Add an include of output.h.
1399 * output.h (text_section, data_section, readonly_data_section)
1400 (ctors_section, dtors_section, bss_section, init_section)
1401 (fini_section, sdata_section): Turn into section pointers.
1402 (in_text_section, in_unlikely_text_section, exports_section)
1403 (drectve_section, named_section, mergeable_string_section)
1404 (last_text_section_name): Delete.
1405 (default_exception_section, default_eh_frame_section): Return sections.
1406 (SECTION_DECLARED, SECTION_NAMED): New macros.
1407 (SECTION_MACH_DEP): Bump value.
1408 (section_common, named_section, unnamed_section): New structures.
1409 (unnamed_section_callback): New typedef.
1410 (section): New union.
1411 (sbss_section, exception_section, eh_frame_section): New variables.
1412 (in_section, last_text_section): Turn into section pointers.
1413 (get_unnamed_section, get_section, get_named_section): New functions.
1414 (mergeable_constant_section, function_section): Return a section.
1415 (unlikely_text_section): Likewise.
1416 (current_function_section): Likewise. Remove the decl argument.
1417 (unlikely_text_section_p, switch_to_section): New functions.
1418 (output_section_asm_op): New function.
1419 (set_named_section_flags, named_section_flags, named_section_real)
1420 (named_section_first_declaration): Delete.
1421 (default_select_section, default_elf_select_section): Return a section.
1422 (default_elf_select_section_1, default_function_rodata_section)
1423 (default_no_function_rodata_section, default_select_rtx_section)
1424 (default_elf_select_rtx_section): Likewise.
1425 * rtl.h (in_data_section): Delete.
1426 * sdbout.c (sdbout_one_type): Use switch_to_section.
1427 * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
1428 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
1429 (TARGET_ASM_EH_FRAME_SECTION): Poison.
1430 * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
1431 (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
1432 (TARGET_ASM_OUT): Update after above changes.
1433 * target.h (init_sections): New hook.
1434 (exception_section, eh_frame_section): Delete.
1435 (select_section, select_rtx_section, function_rodata_section): Return
1436 a section rather than emitting assembly code.
1437 * varasm.c (text_section, data_section, readonly_data_section)
1438 (ctors_section, dtors_section, bss_section, init_section)
1439 (fini_section): Turn into section pointers.
1440 (sdata_section, sbss_section, exception_section): New variables.
1441 (eh_frame_section): New variable.
1442 (in_section): Make global and turn into a section pointer.
1443 (last_text_section): Turn into a section pointer.
1444 (unnamed_sections): New variable.
1445 (in_named_name, last_text_section_name): Delete.
1446 (EXTRA_SECTION_FUNCTIONS): Delete.
1447 (in_named_entry): Delete.
1448 (section_htab): New variable, replacing...
1449 (in_named_htab): ...this deleted variable.
1450 (section_entry_eq, section_entry_hash): New functions, based on...
1451 (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
1452 (get_unnamed_section, get_section): New functions.
1453 (unlikely_text_section): Return a section instead of emitting
1455 (in_text_section, in_unlikely_text_section, in_data_section): Delete.
1456 (get_named_section_flags, named_section_first_declaration): Delete.
1457 (unlikely_text_section_p): New function.
1458 (named_section_real, named_section): Delete.
1459 (get_named_section): New function.
1460 (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
1461 (function_section): Return a section rather than emitting
1463 (current_function_section): Likewise. Remove argument. Use
1464 last_text_section if nonnull, otherwise use function_section.
1465 (default_function_rodata_section): Return a section rather than
1466 emitting assembly code. Use get_section.
1467 (default_no_function_rodata_section): Return a section rather than
1468 emitting assembly code.
1469 (variable_section): Use switch_to_section and get_named_section.
1470 (mergeable_string_section): Return a section rather than emitting
1471 assembly code. Use get_section. Make static. Don't take special
1472 countermeasures for empty strings.
1473 (mergeable_constant_section): Return a section rather than emitting
1474 assembly code. Use get_section.
1475 (default_named_section_asm_out_destructor): Use switch_to_section
1477 (default_dtor_section_asm_out_destructor): Use switch_to_section.
1478 (default_named_section_asm_out_constructor): Use switch_to_section
1480 (default_ctor_section_asm_out_constructor): Use switch_to_section.
1481 (assemble_start_function): Likewise. Set last_text_section to
1482 NULL rather than no_section. Change the type of save_section.
1483 (assemble_zeros, assemble_variable): Use the section flags to detect
1484 whether or not a section is text.
1485 (assemble_static_space): Use switch_to_section.
1486 (assemble_trampoline_template): Likewise.
1487 (output_constant_def_contents): Use switch_to_section and
1489 (output_constant_pool_1): Use switch_to_section. Use the section
1490 flags to see whether sections contain mergeable data.
1491 (init_varasm_once): Initialize section_htab instead of in_named_htab.
1492 Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS.
1493 (default_elf_asm_named_section): Use SECTION_DECLARED to detect
1494 whether a section has already been declared.
1495 (default_select_section, default_elf_select_section): Return a
1496 section rather than emitting assembly code.
1497 (default_elf_select_section_1): Likewise. Use bss_section for
1498 SECCAT_BSS if nonnull. Use get_named_section.
1499 (default_select_rtx_section): Return a section rather than
1500 emitting assembly code.
1501 (default_elf_select_rtx_section): Likewise. Use get_named_section.
1502 (file_end_indicate_exec_stack): Use switch_to_section and get_section.
1503 (output_section_asm_op, switch_to_section): New functions.
1504 * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
1507 * doc/tm.texi: Expand the introduction to the sections documentation.
1508 (TRAMPOLINE_SECTION): Document new interface.
1509 (SDATA_SECTION_ASM_OP): Document new macro.
1510 (READONLY_DATA_SECTION): Delete.
1511 (SDATA_SECTION_ASM_OP): Document new macro.
1512 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1513 (TARGET_ASM_INIT_SECTIONS): Document new hook.
1514 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
1515 (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
1516 (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
1518 2005-12-07 Alan Modra <amodra@bigpond.net.au>
1520 * gcc.c (init_gcc_specs): Match braces inside conditionally
1523 2005-12-06 Geoffrey Keating <geoffk@apple.com>
1525 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
1527 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
1530 * tree.c (integer_all_onesp): Always return true if all bits on.
1532 * testsuite/g++.dg/init/array0.C: New.
1534 2005-12-06 Adrian Straetling <straetling@de.ibm.com>
1536 * doc/md.texi: Adapt to implementation.
1538 2005-12-06 Andreas Schwab <schwab@suse.de>
1540 * opts.c (decode_options): Fix typo in message.
1542 2005-12-06 Alan Modra <amodra@bigpond.net.au>
1545 * longlong.h: Merge PPC tests from upstream.
1547 2005-12-06 Richard Guenther <rguenther@suse.de>
1549 * fold-const.c (fold_convert): Do not build and fold
1550 CONVERT_EXPR, but always use NOP_EXPR.
1552 2005-12-06 Jan Beulich <jbeulich@novell.com>
1554 * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
1555 __builtin_ia32_paddq and __builtin_ia32_subq.
1556 (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
1557 __builtin_ia32_pshufw.
1558 * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
1560 2005-12-05 James E Wilson <wilson@specifix.com>
1563 * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
1566 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
1568 * print-tree.c (print_node): Ditto.
1569 * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
1570 * tree-dump.c (dequeue_and_dump): Check for decl_common structure
1571 before accessing DECL_ARTIFICIAL.
1572 Handle new tag tree codes.
1573 * tree-flow-inline.h (clear_call_clobbered): Update for tag
1575 (unmodifiable_var_p): Ditto.
1576 * tree-flow.h (mem_tag_kind): Remove.
1577 (struct var_ann_d): Remove mem_tag_kind member.
1578 * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
1579 * tree-pretty-print.c (dump_generic_node): Handle memory tags.
1580 * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
1581 (group_aliases): Ditto.
1582 (setup_pointers_and_addressables): Ditto.
1583 (is_escape_site): Ditto.
1584 (may_alias_p): Ditto.
1585 (create_tag_raw): New function.
1586 (create_memory_tag): Use it.
1587 (dump_alias_info): Update for tags.
1588 (may_be_aliased): Ditto.
1589 (add_type_alias): Ditto.
1590 (new_type_alias): Ditto.
1591 (create_sft): Ditto.
1592 (create_structure_vars): Ditto.
1593 * tree-ssa-ccp.c (get_default_value): Ditto.
1594 * tree-ssa-operands.c (get_expr_operands): Ditto.
1595 (add_stmt_operand): Ditto.
1596 (add_call_clobber_ops): Remove duplicated condition.
1597 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
1599 * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
1600 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
1601 * tree.c (init_ttree): Update structures for new tree codes.
1602 (tree_code_size): Update sizes for new tree codes.
1603 (make_node_stat): Don't try to set common things on minimal
1605 (tree_node_structure): Update for tags.
1606 (is_global_var): Ditto.
1607 * tree.def: Add new tree codes.
1608 * tree.h (MTAG_P): New macro.
1609 (TREE_MEMORY_TAG_CHECK): Ditto.
1610 (SSA_VAR_P): Update for tags.
1611 (struct tree_memory_tag): New structure.
1612 (MTAG_GLOBAL): New macro.
1613 (union tree_node): Add memory tag member.
1614 * treestruct.def (TS_MEMORY_TAG): New.
1616 2005-12-05 Dale Johannesen <dalej@apple.com>
1618 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
1619 what was approved (PR 24323).
1621 2005-12-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
1623 * doc/c-tree.texi (Function Bodies): Remove description of
1626 2005-12-05 Joseph S. Myers <joseph@codesourcery.com>
1628 * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
1629 __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
1630 __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
1631 __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
1632 __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
1633 __divxc3): Document.
1635 2005-12-05 Geoffrey Keating <geoffk@apple.com>
1637 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
1639 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
1640 hook_bool_void_false.
1641 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
1642 * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
1644 * config/darwin.c (machopic_select_section): It's not defined
1645 as weak if it's only marked as weak_import.
1647 * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
1650 * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
1651 A hidden weak object does bind locally. Strong linkonce data
1652 counts like any other strong symbol for binding.
1653 (weak_finish_1): Don't specially handle weakrefs, they no longer
1655 (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
1656 * c-common.c (handle_alias_attribute): Allow static aliases
1658 (handle_weakref_attribute): Don't call declare_weak on weakrefs.
1659 * gthr-dce.h: Make weakrefs static.
1660 * gthr-tpf.h: Likewise.
1661 * gthr-solaris.h: Likewise.
1662 * gthr-posix.h: Likewise.
1663 * gthr-posix95.h: Likewise.
1664 * config/darwin.c (darwin_encode_section_info): static weakref
1665 variables are not necessarily defined in this translation unit.
1666 * doc/extend.texi (Function Attributes): Mention that an alias
1667 attribute creates a definition for the thing it's attached to.
1668 Change the documentation for weakref to say that the thing
1669 it's attached to must be static.
1671 * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
1672 we don't go into an infinite loop.
1674 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
1676 * config/rs6000/predicates.md (logical_const_operand): Split
1677 out of logical_operand.
1678 (logical_operand): Use it.
1679 * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
1680 logical_const_operand.
1682 2005-12-05 Jan Beulich <jbeulich@novell.com>
1684 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
1685 and IX86_BUILTIN_CMPNESS.
1686 (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
1687 * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
1688 * config/i386/i386.md (movti_internal): Correct type attribute.
1689 Simplify mode attribute.
1690 (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
1691 Correct type attribute.
1692 (absxf2): Correct operator.
1693 * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
1694 movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
1695 * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
1697 (sse2_vmsqrtv2df2): Correct mode attribute.
1699 2005-12-05 Jan Beulich <jbeulich@novell.com>
1701 * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
1702 16 bits. Provide insn pattern for this case.
1704 2005-12-05 Jan Beulich <jbeulich@novell.com>
1706 * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
1708 (__popcountDI2): Likewise.
1710 2005-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1713 * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
1714 _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
1715 * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
1718 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
1720 * c-typeck.c (null_pointer_constant_p): New function.
1721 (build_conditional_expr, build_c_cast, convert_for_assignment,
1722 build_binary_op): Use it.
1724 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
1726 * c-common.c (binary_op_error): Do not allow NOP_EXPR.
1727 (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
1729 (check_function_arguments_recurse): Allow both NOP_EXPR and
1730 CONVERT_EXPR but check conversions preserve precision.
1731 * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
1732 but check conversions preserve precision.
1733 (build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in
1736 2005-12-04 Roger Sayle <roger@eyesopen.com>
1739 * common.opt (Wstring-literal-comparison): New command line option.
1740 * c-opts.c (c_common_handle_option): Set it with -Wall.
1741 * c-typeck.c (parser_build_binary_op): Issue warning if either
1742 operand of a comparison operator is a string literal, except for
1743 testing equality or inequality against NULL.
1745 * doc/invoke.texi: Document new -Wstring-literal-comparison option.
1747 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
1749 * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
1750 of building a NOP_EXPR.
1751 (c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as
1753 * c-convert.c (convert): Use fold_convert instead of building
1754 NOP_EXPRs and CONVERT_EXPRs directly. Don't special case
1755 c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove
1757 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
1758 NOP_EXPR the same as CONVERT_EXPR.
1759 * c-typeck.c (build_function_call): Use fold_convert instead of
1760 building a NOP_EXPR directly.
1761 (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
1763 2005-12-03 Alan Modra <amodra@bigpond.net.au>
1765 PR rtl-optimization/25197
1766 * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
1769 2005-12-02 Stuart Hastings <stuart@apple.com>
1771 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
1774 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
1776 * c-typeck.c (default_function_array_conversion,
1777 build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
1778 (build_conditional_expr): Apply integer_zerop to orig_op1 and
1779 orig_op2. Don't check them for NOP_EXPR.
1780 (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
1781 around integer zero.
1783 2005-12-03 Alan Modra <amodra@bigpond.net.au>
1785 * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
1786 toc_save_offset, toc_size, lr_size.
1787 (rs6000_stack_info): Use memset rather than bss struct copy to init.
1788 Test rs6000_ra_ever_killed last in condition setting lr_save_p.
1789 Adjust for removal of unused rs6000_stack_t fields.
1790 (debug_stack_info): Adjust.
1791 (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls
1792 first, and don't bother checking for set/inc of lr on sibcalls.
1793 (rs6000_emit_epilogue): Tidy code restoring stack pointer.
1795 2005-12-02 Jakub Jelinek <jakub@redhat.com>
1798 * config/i386/i386.md (movqi_1): Only force imovx for alternative
1799 5 if operand 1 is not aligned. Undo previous constraint change.
1800 * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
1802 2005-12-02 Richard Guenther <rguenther@suse.de>
1804 * tree.h (build): Remove prototype.
1805 (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
1806 * tree.c (build): Remove.
1807 (build0_stat): Update comment.
1809 2005-12-02 Richard Guenther <rguenther@suse.de>
1811 * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
1812 * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
1814 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
1815 maybe_fold_offset_to_component_ref): Likewise.
1816 * tree-ssa-dom.c (thread_across_edge,
1817 simplify_rhs_and_lookup_avail_expr,
1818 find_equivalent_equality_comparison, record_equivalences_from_stmt):
1820 * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
1821 * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
1822 lower_try_finally_switch): Likewise.
1823 * tree-if-conv.c (add_to_dst_predicate_list,
1824 replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
1825 * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
1826 voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
1827 gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
1828 gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
1829 shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
1830 gimplify_init_ctor_eval, gimplify_init_constructor,
1831 gimplify_variable_sized_compare, gimplify_boolean_expr,
1832 gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
1833 gimplify_expr, gimplify_body, gimplify_function_tree,
1834 force_gimple_operand): Likewise.
1835 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
1836 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
1837 mx_register_decls): Likewise.
1838 * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
1839 get_frame_field, finalize_nesting_tree_1): Likewise.
1840 * tree-inline.c (setup_one_parameter): Likewise.
1841 * tree-vect-transform.c (vectorizable_condition): Likewise.
1842 * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
1844 * tree-profile.c (tree_gen_edge_profiler): Likewise.
1845 * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
1846 * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
1847 * tree-chrec.h (build_polynomial_chrec): Likewise.
1849 2005-12-02 Richard Guenther <rguenther@suse.de>
1851 * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
1852 alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
1853 * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
1854 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1855 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1856 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1857 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1859 * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
1860 sh_adjust_unroll_max): Likewise.
1861 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1862 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1863 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
1865 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1867 * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
1870 2005-12-02 Richard Guenther <rguenther@suse.de>
1872 * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
1873 simplify_cond_using_ranges): Use buildN instead of build.
1874 * tree-tailcall.c (adjust_accumulator_values,
1875 adjust_return_value): Likewise.
1876 * tree-sra.c (generate_one_element_ref, generate_copy_inout,
1877 generate_element_copy, generate_element_zero,
1878 generate_one_element_init): Likewise.
1879 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
1880 * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
1881 lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
1882 perfect_nestify): Likewise.
1884 2005-12-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1886 * pa.c (pa_secondary_reload): Revise initialization of variable regno.
1888 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
1890 * ggc.h (GGC_RESIZEVEC): New.
1892 2005-12-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1894 * gcc.c (execute): Improve readability.
1896 2005-12-02 Richard Guenther <rguenther@suse.de>
1898 * tree-cfg.c (mark_used_vars): New function.
1899 (dump_function_to_file): Dump only used VAR_DECLs.
1901 2005-12-02 Richard Guenther <rguenther@suse.de>
1903 * convert.c (convert_to_integer): Fix compare for nonpositive
1904 constant to use tree_int_cst_sgn <= 0.
1906 2005-12-02 Richard Guenther <rguenther@suse.de>
1908 * convert.c (convert_to_integer): Use fold_convert instead
1909 of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0
1910 instead of comparing against 0. Use build_int_cst instead
1911 of converting integer_zero_node.
1913 2005-12-02 Richard Guenther <rguenther@suse.de>
1915 * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
1918 2005-12-02 Alan Modra <amodra@bigpond.net.au>
1921 * combine.c (simplify_logical <IOR>): Simplify more patterns to
1924 2005-12-02 Alan Modra <amodra@bigpond.net.au>
1927 * function.c (expand_function_end): Emit blockage for unwinder
1930 2005-12-01 Roger Sayle <roger@eyesopen.com>
1932 * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
1933 constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
1934 * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
1935 integer constant comparisons.
1937 2005-12-02 Jon Grimm <jgrimm2@us.ibm.com>
1938 Janis Johnson <janis187@us.ibm.com>
1939 David Edelsohn <dje@watson.ibm.com>
1940 Ben Elliston <bje@au.ibm.com>
1942 * dfp.h, dfp.c: New files.
1943 * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
1944 (DECNUM_H): Likewise.
1945 (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
1946 (INCLUDES): Append $(DECNUMINC).
1947 (OBJS-common): Add dfp.o.
1949 * real.h (EXP_BITS): Pinch one bit to ..
1950 (struct real_value): Add decimal field.
1951 (real_format): Change table size, update documentation.
1952 (REAL_MODE_FORMAT): Update for to handle float, decimal float.
1953 (real_from_string3): Declare.
1954 (decimal_single_format): Declare.
1955 (decimal_double_format): Declare.
1956 (decimal_quad_format): Declare.
1957 (REAL_VALUE_TO_TARGET_DECIMAL32): New.
1958 (REAL_VALUE_TO_TARGET_DECIMAL64): New.
1959 (REAL_VALUE_TO_TARGET_DECIMAL128): New.
1960 * real.c: Include dfp.h.
1961 (normalize): Early return for decimal floats.
1962 (do_add): Zero decimal field.
1963 (do_compare): Call do_decimal_compare for decimal floats.
1964 (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
1965 (real_arithmetic): Call decimal_real_arithmetic for decimal
1966 floating point operands.
1967 (real_identical): If a and b are of differing radix, return false.
1968 (real_to_integer): Call decimal_real_to_integer if the value is a
1970 (real_to_integer2): Likewise, call decimal_real_to_integer2.
1971 (real_to_decimal): Likewise, call decimal_real_to_decimal.
1972 (real_to_hexadecimal): Place "N/A" in the return string for
1974 (real_from_string3): New variant, given a mode.
1975 (real_maxval): Use decimal_real_maxval for decimal floats.
1976 (round_for_format): Use decimal_round_for_format for decimals.
1977 (real_convert): Use decimal_real_convert where appropriate.
1978 (significand_size): Handle base 10.
1979 (encode_decimal_single, decode_decimal_single,
1980 encode_decimal_double, decode_decimal_double, encode_decimal_quad,
1981 decode_decimal_quad): New functions.
1982 (decimal_single_format): New.
1983 (decimal_double_format): New.
1984 (decimal_quad_format): New.
1985 * machmode.def: Add SD, DD and TD decimal floating point modes.
1986 * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
1987 Include MODE_DECIMAL_FLOAT.
1988 (DECIMAL_FLOAT_MODE_P): New.
1989 * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
1990 * genmodes.c (struct mode_data): Add counter field.
1991 (struct mode_data): Update comment for format.
1992 (blank_mode): Initialise counter field.
1993 (new_mode): Increment counter field for each mode defined.
1994 (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
1996 (make_complex_modes): Handle modes containing `D'.
1997 (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
1998 (make_decimal_float_mode): New.
1999 (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2000 (cmp_modes): Compare counter field if other characteristics
2002 (emit_real_format_for_mode): Support formats for decimal floats.
2003 * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2004 Document MODE_DECIMAL_FLOAT.
2006 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2008 * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2011 2005-12-01 Richard Henderson <rth@redhat.com>
2013 * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2015 2005-12-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2017 * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2019 * config/pa/pa.c (pa_init_builtins): If we detect
2020 DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2023 2005-12-01 Richard Guenther <rguenther@suse.de>
2025 * fold-const.c (fold_binary): Use fold_build2, not
2028 2005-12-01 Nathan Sidwell <nathan@codesourcery.com>
2030 * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2032 * vec.h (VEC_block_remove): New.
2034 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
2037 * c-common.c (lvalue_error): Fix wording.
2039 2005-12-01 Richard Guenther <rguenther@suse.de>
2041 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2042 thinko in last patch.
2044 2005-12-01 Geoffrey Keating <geoffk@apple.com>
2046 * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2047 than -flat_namespace.
2049 2005-12-01 Ben Elliston <bje@au.ibm.com>
2051 * mklibgcc.in: Parameterise the script to build soft float
2052 functions by iterating over each type, rather than cloning the
2055 2005-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2058 * builtins.c (fold_builtin_fputs): Defer check for missing
2059 replacement functions.
2061 2005-11-30 Kean Johnston <jkj@sco.com>
2063 * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2064 simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2066 2005-11-30 Richard Guenther <rguenther@suse.de>
2068 PR tree-optimization/22501
2069 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2070 function split out from ...
2071 (forward_propagate_addr_expr): ... here. Use it to propagate
2072 ADDR_EXPRs to all uses.
2074 2005-11-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2076 * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2077 * builtins.c (expand_builtin_mathfn): Use them.
2078 (expand_builtin_mathfn_2): Likewise.
2079 (expand_builtin_mathfn_3): Likewise.
2080 (expand_builtin_int_roundingfn): Likewise.
2081 (expand_builtin): Likewise.
2082 (integer_valued_real_p): Likewise.
2083 (fold_builtin_int_roundingfn): Likewise.
2084 (fold_builtin_bitop): Likewise.
2085 (fold_builtin_logarithm): Likewise.
2086 (fold_builtin_1): Likewise.
2087 * convert.c (convert_to_integer): Likewise.
2088 * fold-const.c (negate_mathfn_p): Likewise.
2089 (tree_expr_nonnegative_p): Likewise.
2091 2005-11-30 Dale Johannesen <dalej@apple.com>
2092 Andrew Pinski <pinskia@physics.uc.edu>
2094 * combine.c (find_split_point): Sign extend bitmask
2095 when changing bitfield assignment to IOR of AND.
2097 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
2099 * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
2100 clobber to scratch reg.
2101 (*decrement_and_branch_until_zero_no_clobber): Remove.
2102 (decrement_and_branch peephole): Add dummy scratch reg to pattern.
2103 (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
2104 * config/ms1/ms1.opt (mmul): Remove.
2105 * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
2106 (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
2108 2005-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2109 Bernd Schmidt <bernd.schmidt@analog.com>
2111 * pa/predicates.md (symbolic_operand): Add comment.
2112 * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
2113 * pa/pa-protos.h (pa_secondary_reload_class): Delete.
2114 * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
2115 (pa_secondary_reload_class): Delete.
2116 (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
2117 and pa_secondary_reload_class. Reorder some checks. Update inline
2118 copy of symbolic operand.
2119 * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
2121 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
2123 * loop-doloop.c (add_test): Only add jump notes if we did emit a
2126 2005-11-30 Jeff Law <law@redhat.com>
2128 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
2129 handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2131 2005-11-30 Jakub Jelinek <jakub@redhat.com>
2133 * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
2134 Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
2135 (ia64_expand_move): Adjust caller.
2137 * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
2138 fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
2141 2005-11-30 Paolo Bonzini <bonzini@gnu.org>
2143 * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
2144 Always produce an output if we can remove NEGs or canonicalize
2145 (minus (minus ...)) expressions. Provide a fast path for the
2147 (simplify_gen_binary): Do not call simplify_plus_minus.
2148 (simplify_binary_operation_1): Reassociate at the end of the
2151 2005-11-29 Evan Cheng <evan.cheng@apple.com>
2153 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
2154 moves and unpack to speed up.
2156 2005-11-29 David S. Miller <davem@sunset.davemloft.net>
2158 * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
2159 argument, they are always sparc_compare_op0 and sparc_compare_op1.
2160 (gen_v9_scc): Update callers.
2161 * config/sparc/sparc.md: Likewise.
2162 * config/sparc/sparc-protos.h: Update extern declaration.
2164 * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
2166 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
2168 * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
2171 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
2173 * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
2174 (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
2175 (negate_expr): Here.
2177 2005-11-29 Ben Elliston <bje@au.ibm.com>
2179 * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
2180 Fix typo in comment.
2182 2005-11-29 Ben Elliston <bje@au.ibm.com>
2184 * Makefile.in (clean-target): Depend on clean-target-libgcc.
2185 (clean-target-libgcc): Import rule from the top-level Makefile.in.
2187 2005-11-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2191 * builtins.c (init_target_chars): New.
2192 (expand_builtin_printf, expand_builtin_fprintf,
2193 expand_builtin_sprintf, fold_builtin_sprintf,
2194 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
2195 fold_builtin_snprintf_chk, fold_builtin_printf,
2196 fold_builtin_fprintf): Check for matching format strings using
2199 2005-11-29 Paul Brook <paul@codesourcery.com>
2201 * config.gcc: Do not use fixproto on m68k-elf.
2203 2005-11-28 Roger Sayle <roger@eyesopen.com>
2205 * expmed.c (div_cost): Replace with...
2206 (sdiv_cost, udiv_cost): New.
2207 (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
2208 Rename the div and mod fields, used to initialize sdiv_pow2_cheap
2209 and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
2210 (expand_divmod): Replace use of div_cost with either sdiv_cost
2211 or udiv_cost depending upon the signedness of the operation.
2213 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
2216 * config/darwin.c (machopic_indirection_name,
2217 machopic_output_indirection): Follow transparent alias chain.
2219 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
2221 * varasm.c (ultimate_transparent_alias_target): Add comment.
2223 2005-11-28 Kazu Hirata <kazu@codesourcery.com>
2225 * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
2226 SET_SRC instead of XEXP where appropriate.
2228 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
2230 * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
2233 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
2235 * config/fp-bit.h (LSHIFT): Take shift count parameter.
2236 * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
2239 2005-11-28 Bernd Schmidt <bernd.schmidt@analog.com>
2241 * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
2242 secondary_input_reload_class, made static. Adapt to new
2244 (secondary_output_reload_class): Delete.
2245 (TARGET_SECONDARY_RELOAD): New macro.
2246 * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
2247 SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2249 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
2252 * c-decl.c (finish_struct): Only set DECL_PACKED on a field
2253 when its natural alignment is > BITS_PER_UNIT.
2254 * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
2255 * c-common.c (handle_packed_attribute): Ignore packing on a field
2256 whose type is naturally char aligned.
2258 2005-11-28 Richard Guenther <rguenther@suse.de>
2260 * c-common.c (strict_aliasing_warning): Handle all
2261 component-ref like accesses.
2263 2005-11-28 Roger Sayle <roger@eyesopen.com>
2264 Uros Bizjak <uros@kss-loka.si>
2267 * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
2268 sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
2269 when flag_unsafe_math_optimizations is set and
2270 we don't care about NaNs or Infinities.
2272 Move x/expN(y) and x/pow(y,z) transformation into common
2273 flag_unsafe_math_optimizations section.
2275 2005-11-27 Mark Mitchell <mark@codesourcery.com>
2277 * gcc.c (main): Change type of argv to "char **".
2279 2005-11-28 Alan Modra <amodra@bigpond.net.au>
2281 * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
2282 small data sections.
2283 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
2284 * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
2285 * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
2286 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't
2287 output locals to sbss if !rs6000_elf_in_small_data_p.
2288 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
2290 2005-11-28 Alan Modra <amodra@bigpond.net.au>
2293 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
2294 generated by reload.
2295 * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
2296 indexed_or_indirect_address.
2297 (indexed_or_indirect_address): Don't test for base reg. Call
2298 address_operand last. Make it a special predicate.
2300 2005-11-27 Kazu Hirata <kazu@codesourcery.com>
2302 * config/m68k/m68k.c (notice_update_cc): Remove useless code.
2304 2005-11-27 Andrew Pinski <pinskia@physics.uc.edu>
2307 * fold-const.c (negate_expr_p): Add case for signed divides if overflow
2309 (negate_expr): Likewise.
2311 2005-11-27 Andreas Schwab <schwab@suse.de>
2313 * config/m68k/m68k.c: Reindent and fix whitespace, remove
2316 2005-11-27 Steven Bosscher <stevenb@suse.de>
2318 * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
2319 has EH predecessor edges.
2321 2005-11-26 Eric Christopher <echristo@apple.com>
2323 * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
2324 register stalls by zero extending to the full register.
2326 2005-11-27 Joseph S. Myers <joseph@codesourcery.com>
2328 * config/floatunsisf.c, config/floatunsidf.c,
2329 config/floatunsixf.c, config/floatunsitf.c: New files.
2330 * config/ia64/t-hpux: Add floatunsitf.c.
2331 * config/ia64/ia64.c (ia64_init_libfuncs): Use
2332 _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
2334 2005-11-26 Richard Henderson <rth@redhat.com>
2336 * c-lex.c (pragma_lex): Rename from c_lex.
2337 * c-pch.c: Update for pragma_lex rename.
2338 * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
2339 * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
2340 * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
2341 * config/sol2-c.c, config/v850/v850-c.c: Likewise.
2342 * doc/tm.texi: Likewise.
2344 2005-11-26 Andrew Pinski <pinskia@physics.uc.edu>
2347 * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
2348 when overflow is undefined.
2350 2005-11-26 Hans-Peter Nilsson <hp@axis.com>
2352 * doc/md.texi (Insn Canonicalizations): Refer to the
2353 function commutative_operand_precedence for further rules.
2355 2005-11-25 Roger Sayle <roger@eyesopen.com>
2358 * expmed.c (choose_mult_variant): Return immediately when mult_cost
2359 is less than zero. Limit mult_cost to a reasonable upper bound for
2360 the synthetic multiplication sequence.
2362 2005-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2365 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
2366 fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
2367 Lookup the explicit replacement functions for any unlocked
2368 stdio builtin transformations.
2370 2005-11-25 Hans-Peter Nilsson <hp@axis.com>
2372 * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
2374 * targhooks.c (default_secondary_reload): Don't require operand 2
2375 for an input reload to be earlyclobber.
2377 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2379 * fold-const.c (negate_mathfn_p): Fix comment and add support
2380 for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
2383 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
2386 * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
2387 _Q_ulltoq for unsigned conversions from SImode and DImode to
2390 2005-11-25 Alan Modra <amodra@bigpond.net.au>
2392 * config/rs6000/ppc64-fp.c (__floatunditf): New function.
2393 (__floatundidf, __floatundisf): Likewise.
2395 2005-11-25 David Edelsohn <edelsohn@gnu.org>
2397 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
2398 (rs6000_override_options): Remove initialization of
2399 rs6000_sr_alias_set.
2400 (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
2401 (rs6000_emit_stack_tie): Same.
2402 (emit_frame_save): Same.
2403 (gen_frame_mem_offset): Same.
2404 (rs6000_emit_prologue): Same.
2405 (rs6000_emit_epilogue): Same.
2407 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
2410 * fold-const.c (fold_build): Convert bool_var != 1 and
2411 bool_var == 0 to !bool_var.
2413 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
2416 * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
2417 for C being INTEGER_CST. Likewise for !=.
2419 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
2422 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
2423 unsigned conversions from SImode to TFmode.
2425 2005-11-24 Bernd Schmidt <bernd.schmidt@analog.com>
2427 * expr.c (expand_expr_real_1): Fix error in last change.
2429 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
2431 * caller-save.c: (this_insn_sets): Move into:
2432 (save_call_clobbered_regs).
2433 (mark_set_regs): Get this_insn_sets from data.
2435 (save_call_clobbered_regs): Take sets of the return value by
2436 sibcalls into account.
2438 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
2441 * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
2442 SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
2443 (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
2444 (memory_move_secondary_cost, init_reg_autoinc): Remove
2445 SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
2446 Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
2447 secondary_reload_class call.
2448 (copy_cost): Likewise. Add new parameter prev_sri. Changed all
2450 * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
2451 (push_secondary_reload): Use secondary_reload target hook.
2452 (secondary_reload_class, scratch_reload_class): New functions.
2453 (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
2454 SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace
2455 SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
2456 * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
2457 (secondary_reload_class, scratch_reload_class): Declare.
2458 * reload1.c: Include target.h.
2459 (reload_adjust_reg_for_temp): New function.
2460 (reload_adjust_reg_for_icode): Likewise.
2461 (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
2462 Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
2464 (emit_input_reload_insns): Likewise. Rewrite secondary reload checks
2465 for inheritance. Support case when both secondary & tertiary reloads
2466 are for intermediate registers.
2467 (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
2468 with secondary_reload_class call. Support case when both secondary
2469 & tertiary reloads are for intermediate registers.
2470 * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
2471 (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
2472 * target.h (secondary_reload_info): New struct / typedef.
2473 (struct gcc_target): New member secondary_reload.
2474 * targhooks.c Include reload.h, optabs.h and recog.h.
2475 (default_secondary_reload): New function.
2476 * targhooks.h (default_secondary_reload): Declare.
2477 * doc/tm.texi: Document secondary_reload target hook. Update
2478 description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
2479 * doc/md.texi: Likewise.
2481 * sh-protos.h (sh_secondary_reload): Declare.
2482 * sh.c (TARGET_SECONDARY_RELOAD): Override.
2483 (sh_secondary_reload): New function.
2484 * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
2485 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2486 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2487 (HAVE_SECONDARY_RELOADS): Define.
2488 * sh.md (reload_indf): Rename to:
2490 (reload_outdf): Rename to:
2491 (reload_outdf__RnFRm).
2492 (reload_insf): Rename to:
2494 (reload_insi): Rename to:
2495 (reload_insi__i_fpul).
2497 2005-11-24 Uros Bizjak <uros@kss-loka.si>
2499 * configure.ac: Require at least texinfo 4.4.
2500 * configure: Regenerate.
2502 * doc/install.texi (Tools/packages necessary for building GCC):
2503 Update required version of texinfo to at least 4.4.
2504 (Installing GCC: Building): Update required version of texinfo
2506 (Installing GCC: Final installation): Update required version
2507 of texi2dvi to at least 4.4.
2508 (Host/target specific installation notes for GCC): Update required
2509 version of texinfo to at least 4.4.
2511 2005-11-24 Richard Guenther <rguenther@suse.de>
2512 Dirk Mueller <dmueller@suse.de>
2515 * c-common.h (strict_aliasing_warning): Declare.
2516 * c-common.c (strict_aliasing_warning): New function,
2518 * c-typeck.c (build_c_cast): ... here.
2520 2005-11-24 Paolo Bonzini <bonzini@gnu.org>
2522 * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2524 (swap_commutative_operands_with_target): New.
2526 2005-11-24 Paolo Bonzini <bonzini@gnu.org>
2528 * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
2529 also when doing PRE, rather than only for global CPROP.
2531 2005-11-24 Ben Elliston <bje@au.ibm.com>
2533 * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
2534 * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
2536 (expand_twoval_unop): Likewise.
2537 (widen_clz): Likewise.
2538 (expand_parity): Likewise.
2539 (expand_unop): Likewise.
2540 (emit_cmp_and_jmp_insn_1): Likewise.
2541 (prepare_float_lib_cmp): Likewise.
2543 2005-11-24 Ben Elliston <bje@au.ibm.com>
2545 * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
2546 Remove unused `class' variable.
2548 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2551 * c-typeck.c (build_array_ref): Avoid code duplicate. Use common
2552 C/C++ diagnostic function warn_array_subscript_with_type_char.
2553 * c-common.h (warn_array_subscript_with_type_char): Declare.
2554 * c-common.c (warn_array_subscript_with_type_char): Define.
2556 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2559 * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
2560 compiling at the intersection of C and C++.
2562 2005-11-23 Mark Mitchell <mark@codesourcery.com>
2564 * doc/invoke.texi: For man pages, include gcc-vers.texi.
2565 List @file in the option summary. Include the libiberty
2566 documentation for @file.
2567 * gcc.c (main): Call expandargv.
2568 * Makefile.in (gcc-vers.texi): Define srcdir.
2570 2005-11-23 Diego Novillo <dnovillo@redhat.com>
2572 * passes.c (init_optimization_passes): Document
2573 sequencing of passes.
2575 2005-11-23 Kazu Hirata <kazu@codesourcery.com>
2577 * config/m68k/predicates.md (pcrel_address, extend_operator,
2578 post_inc_operand, pre_dec_operand): Remove redundant
2580 (const_uint32_operand, const_sint32_operand): Use gcc_assert
2582 (valid_dbcc_comparison_p): Rewrite in the lisp style.
2584 2005-11-23 Ben Elliston <bje@au.ibm.com>
2586 * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
2588 2005-11-22 J"orn Rennecke <joern.rennecke@st.com>
2590 Preparatory work for PR target/21623:
2591 * alpha.c (secondary_reload_class): Rename to:
2592 (alpha_secondary_reload_class).
2593 * alpha.h, alpha-protos.h: Likewise.
2594 * mn10300.c (secondary_reload_class): Rename to:
2595 (mn10300_secondary_reload_class).
2596 * mn10300.h, mn10300-protos.h: Likewise.
2597 * pa.c (secondary_reload_class): Rename to:
2598 (pa_secondary_reload_class).
2599 * pa.h, pa-protos.h: Likewise.
2600 * rs6000.c (secondary_reload_class): Rename to:
2601 rs6000_secondary_reload_class.
2602 * rs6000.h, rs6000-protos.h: Likewise.
2604 2005-11-22 Eric Botcazou <ebotcazou@adacore.com>
2607 * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
2609 2005-11-22 Ian Lance Taylor <ian@airs.com>
2611 * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
2613 (prepare_cmp_insn): Likewise.
2615 2005-11-22 Kazu Hirata <kazu@codesourcery.com>
2618 * m68k.md (zero_extendsidi2): Force operands[1] to a register
2619 if both operands[0] and operands[1] are memory.
2621 2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
2624 * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
2625 COMPARISON_CLASS_P and an integral types create create a new
2626 expression with the new type and fold that.
2628 2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
2631 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
2632 to SUBTARGET_OS_CPP_BUILTINS.
2634 2005-11-22 Richard Earnshaw <richard.earnshaw@arm.com>
2636 * arm.c (emit_set_insn): New function.
2637 (arm_split_constant): Call it.
2638 (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
2639 (arm_legitimize_address): Likewise. Use plus_constant.
2640 (arm_expand_prologue): Likewise. Use VOIDmode in SET.
2641 (thumb_expand_prologue): Likewise.
2642 (arm_gen_load_multiple): Use VOIDmode in SET.
2643 (arm_gen_store_multiple): Likewise.
2644 (vfp_emit_fstmx): Likewise. Use plus_constant.
2645 (emit_multi_reg_push): Likewise.
2646 (emit_sfm): Use plus_constant.
2648 2005-11-23 Alan Modra <amodra@bigpond.net.au>
2651 * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
2654 2005-11-22 Alan Modra <amodra@bigpond.net.au>
2657 * expmed.c (store_bit_field): Don't attempt to insv a field
2658 larger than the reg.
2660 2005-11-22 Alan Modra <amodra@bigpond.net.au>
2663 * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
2664 explicit sign extension, not a (char) cast.
2666 2005-11-22 Ben Elliston <bje@au.ibm.com>
2668 * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
2669 GET_MODE_CLASS (x) == MODE_FLOAT.
2670 * config/i386/i386.c: Likewise.
2671 * config/rs6000/xcoff.h: Likewise.
2672 * config/rs6000/linux64.h: Likewise.
2673 * config/rs6000/rs6000.c: Likewise.
2674 * config/rs6000/rs6000.h: Likewise.
2675 * config/rs6000/predicates.md: Likewise.
2676 * config/rs6000/sysv4.h: Likewise.
2678 2005-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2680 * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
2683 * config/alpha/freebsd.h, config/alpha/linux.h,
2684 config/arm/linux-elf.h, config/bfin/bfin.h,
2685 config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
2686 config/i386/beos-elf.h, config/i386/gnu.h,
2687 config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
2688 config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
2689 config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
2690 config/rs6000/linux64.h, config/rs6000/sysv4.h,
2691 config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
2692 config/sh/linux.h, config/sh/sh.h, config/sol2.h,
2693 config/sparc/linux.h, config/sparc/linux64.h,
2694 config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
2696 * doc/invoke.texi: Document that the macros __pic__ and __PIC__
2697 are both defined when either flag -fpic or -fPIC are used.
2699 2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
2701 * config/fp-bit.c (clzusi): New function.
2702 (si_to_float, usi_to_float): Use it to compute proper shift.
2703 (usi_to_float): Preserve guard bits when shifting right.
2704 * libgcc-std.ver (GCC_4.2.0): New version.
2705 * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
2706 __floatundisf): New functions.
2707 * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
2708 __floatundisf): Declare.
2709 * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
2710 _floatundixf, and _floatunditf.
2711 * optabs.c (expand_float): If target does not define a pattern for
2712 signed or unsigned conversion, use an unsigned libcall instead of
2714 (init_optabs): Initialize ufloat_optab.
2716 2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
2718 * config/rs6000/rs6000.opt (mmulhw): New option.
2719 * doc/invoke.texi (-mmulhw): Document.
2720 * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
2722 * config/rs6000/rs6000.md: Add half-word multiply and
2723 multiply-accumulate instructions for 405 and 440.
2725 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
2727 * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
2728 which matches behavior of gcc 4.0 and older for RTEMS targets. The
2729 default now includes a linker group which makes the RTEMS one nest.
2731 2005-11-22 Ben Elliston <bje@au.ibm.com>
2733 * cse.c (fold_rtx): Typo fix.
2734 (find_comparison_args): Pass the mode of arg1, not arg1 itself.
2736 2005-11-21 Richard Henderson <rth@redhat.com>
2738 * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
2739 langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
2741 * c-tree.h (lookup_name): Move declaration ...
2742 * c-common.h (lookup_name): ... here.
2743 * config/darwin-c.c: Include c-common.h.
2744 * config/t-darwin: Update dependencies.
2746 2005-11-22 Ben Elliston <bje@au.ibm.com>
2748 * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
2749 explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
2750 * genopinit.c (gen_insn): Likewise.
2751 * reload.c (find_equiv_reg): Likewise.
2752 * loop.c (load_mems): Likewise.
2753 * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
2754 * cse.c (find_comparison_args, fold_rtx): Likewise.
2755 * dwarf2out.c (add_const_value_attribute): Likewise.
2756 * expr.c (convert_move): Likewise.
2757 * recog.c (general_operand, register_operand): Likewise.
2758 * reg-stack.c (replace_reg): Likewise.
2759 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
2760 * c-common.c (handle_vector_size_attribute): Likewise.
2761 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2762 (simplify_binary_operation_1): Likewise.
2763 (simplify_const_binary_operation): Likewise.
2764 (simplify_relational_operation): Likewise.
2765 (simplify_const_relational_operation): Likewise.
2766 (simplify_immed_subreg): Likewise.
2767 * emit-rtl.c (gen_lowpart_common): Likewise.
2768 * expmed.c (expand_mult): Likewise.
2769 * stor-layout.c (layout_type): Likewise.
2771 2005-11-21 Paolo Bonzini <bonzini@gnu.org>
2774 * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
2775 cst2 only for SPE vectors.
2777 2005-11-21 David Edelsohn <edelsohn@gnu.org>
2780 * config/rs6000/predicates.md (vrsave_operation): Check
2781 UNSPEC_VOLATILE value.
2783 2005-11-21 Jan Hubicka <jh@suse.cz>
2785 PR tree-optimization/24653
2786 * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
2788 2005-11-21 Uros Bizjak <uros@kss-loka.si>
2790 * config/i386/predicates.md (ax_reg_operand): New predicate.
2791 (memory_displacement_only_operand): New predicate.
2792 * config/i386/i386.md ("modrm" attribute): Return 0 if one
2793 operand is AX register and the other operand is memory operand
2794 with displacement only.
2796 2005-11-21 Uros Bizjak <uros@kss-loka.si>
2798 * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
2799 if we don't care about NaNs or Infinities.
2801 2005-11-20 Ian Lance Taylor <ian@airs.com>
2803 PR rtl-optimization/24883
2804 * combine.c (combinable_i3pat): When checking whether the
2805 destination of i3 is used in i3, consider paradoxical subregs.
2807 2005-11-21 Kazu Hirata <kazu@codesourcery.com>
2810 * cse.c (cse_insn): Reject invalid forms of CONST earlier.
2812 2005-11-20 Joseph S. Myers <joseph@codesourcery.com>
2814 * combine.c (try_combine): Do not run subst on i1src and i2src in
2815 the case of generating a PARALLEL for a comparison.
2817 2005-11-20 Richard Henderson <rth@redhat.com>
2820 * tree-sra.c (struct sra_elt): Add all_no_warning.
2821 (struct sra_walk_fns) <use>: Add use_all argument.
2822 (sra_walk_expr): Pass it.
2823 (sra_walk_modify_expr): Likewise.
2824 (scalarize_ldst): Likewise.
2825 (scan_use): Update for new argument.
2826 (mark_no_warning): New.
2827 (scalarize_use): Use it.
2829 2005-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
2831 * expr.c (expand_expr_real): Use usmul_optab for widening
2832 signed * unsigned multiplies.
2833 * genopinit.c (optabs): Add usmul_widen_optab.
2834 * optabs.c (init_optabs): Likewise.
2835 * optabs.h (enum optab_index): Add OTI_usmul_widen.
2836 (usmul_widen_optab): Define.
2837 * config/bfin/bfin.md (usmulhisi3): New pattern.
2839 * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
2841 2005-11-20 Graham Stott <btinternet.com>
2843 * gensupport.c (std_preds): Fixed extraneous `false` in last change.
2845 2005-11-20 Andreas Schwab <schwab@suse.de>
2848 * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
2851 2005-11-19 Richard Henderson <rth@redhat.com>
2854 * tree-gimple.c (is_gimple_id): Export.
2855 * tree-gimple.h (is_gimple_id): Declare.
2856 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
2857 (get_default_value): Use it.
2858 (maybe_fold_stmt_indirect): Likewise.
2860 2005-11-19 James A. Morrison <phython@gcc.gnu.org>
2862 * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
2863 than VR1 or vice-versa.
2865 2005-11-19 Hans-Peter Nilsson <hp@axis.com>
2869 * reload.c (find_reloads_address_1): Mention dependency on
2871 * reload1.c (gen_reload): For IN with an unary operation, try
2872 moving inner expression to OUT if trivial SET is not valid.
2873 Confirm that the result is valid. Move common code block into...
2874 (emit_insn_if_valid_for_reload): New function.
2876 2005-11-19 Richard Guenther <rguenther@suse.de>
2878 * fold-const.c (fold_indirect_ref_1): Make sure we fold
2879 ARRAY_REFs of constant strings.
2881 2005-11-19 Jakub Jelinek <jakub@redhat.com>
2883 * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
2884 fatal format string.
2886 2005-11-19 Joseph S. Myers <joseph@codesourcery.com>
2888 * combine.c (make_compound_operation): Swap operands of
2889 commutative operation if necessary before returning.
2891 2005-11-19 Richard Guenther <rguenther@suse.de>
2894 * fold-const.c (fold_plusminus_mult_expr): New function.
2895 (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
2896 cases, remove now unnecessary code.
2898 2005-11-19 Paolo Bonzini <bonzini@gcc.gnu.org>
2900 * gensupport.c (old_preds): Rename to std_preds, add special field.
2901 (struct old_pred_table): Rename to struct std_pred_table, add special
2903 (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
2904 (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
2905 (init_predicate_table): Adjust, and set along the way whether a
2906 predicate is special.
2908 2005-11-18 Mark Mitchell <mark@codesourcery.com>
2910 * BASE-VER: Change to 4.2.0.
2912 2005-11-18 James E Wilson <wilson@specifix.com>
2914 * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
2917 2005-11-18 Mike Stump <mrs@apple.com>
2919 * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
2920 * config/darwin-c.c (darwin_pragma_unused): Likewise.
2921 * c-decl.c (lookup_name_two) Remove.
2922 * c-tree.h (lookup_name_two): Remove.
2923 * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
2924 * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
2925 (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
2926 * langhooks.h (lang_hooks_for_decls): Add lookup_name.
2928 2005-11-18 Richard Earnshaw <richard.earnshaw@arm.com>
2931 * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
2932 when not generating code to use that co-processor.
2934 2005-11-18 James A. Morrison <phython@gcc.gnu.org>
2936 * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
2937 add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
2938 these functions are now in tree-phinodes.c.
2940 2005-11-18 Jie Zhang <jie.zhang@analog.com>
2942 * config/bfin/bfin.md (trap): New pattern.
2944 2005-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2946 * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
2949 * expr.c (expand_expr_real): Don't call record_block_change unless
2950 ib_boundaries_block is non-null
2952 * postreload.c (reload_cse_move2add): Don't try to work with BImode.
2954 * fold-const.c (build_range_check): Use proper type for subtraction
2955 when merging lower bound.
2957 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
2959 PR rtl-optimization/24497
2960 * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
2963 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
2965 * tree-scalar-evolution.c (expression_expensive_p): New function.
2966 (scev_const_prop): Use compute_overall_effect_of_inner_loop.
2968 2005-11-18 Bernd Schmidt <bernd.schmidt@analog.com>
2970 * config/bfin/crtlibid.s: New file.
2972 2005-11-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2975 * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
2976 when not using sjlj exceptions.
2977 * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
2978 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
2979 * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
2980 * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
2981 DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
2982 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
2983 * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
2984 DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
2985 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
2986 * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
2987 (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
2988 DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
2989 ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
2991 * config/pa/hpux-unwind.h: New file.
2993 2005-11-17 Alexandre Oliva <aoliva@redhat.com>
2995 * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
2996 * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
2997 * varasm.c (do_assemble_alias): Adjust call.
2998 (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
3000 * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
3002 2005-11-17 James E Wilson <wilson@specifix.com>
3004 * tree.def (FUNCTION_DECL): Correct typo in comment.
3006 2005-11-17 Richard Henderson <rth@redhat.com>
3008 * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
3009 (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
3010 and DW_CFA_def_cfa_sf.
3011 (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
3012 (dbx_reg_number): Don't assert particular registers here.
3013 (based_loc_descr): ... do it here instead. Fold in ...
3014 (eliminate_reg_to_offset): ... this function.
3015 (compute_frame_pointer_to_cfa_displacement): Fold in the effects
3016 of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
3017 * unwind-dw2.c (execute_cfa_program): Apply data align factor
3018 to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
3019 * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
3020 (instantiate_virtual_regs): Likewise.
3021 * var-tracking.c (adjust_stack_reference): Likewise.
3022 * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
3024 2005-11-17 Bernd Schmidt <bernd.schmidt@analog.com>
3026 * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
3027 * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
3028 * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
3030 ($(T)crtlibid.o): New rule.
3032 2005-11-16 Richard Guenther <rguenther@suse.de>
3035 * fold-const.c (extract_array_ref): Return byte offset
3037 (fold_binary): Fold &x[a] CMP &x[b] to
3038 a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
3041 2005-11-16 Richard Henderson <rth@redhat.com>
3044 * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
3045 parts of an SSA_NAME.
3047 2005-11-16 Richard Earnshaw <richard.earnshaw@arm.com>
3050 * arm.md (split for movsf with immediate): Restrict split to insns
3051 that set a general register.
3053 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3055 * config/ia64/unwind-ia64.c (uw_advance_context): New. Call
3057 * unwind-dw2.c (uw_advance_context): Likewise.
3058 * unwind-sjlj.c (uw_advance_context): Likewise. Also call
3059 _Unwind_SjLj_Unregister.
3060 * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
3062 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3064 * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
3066 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3068 * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
3069 langhook to get a DImode integer type.
3071 2005-11-16 Richard Henderson <rth@redhat.com>
3072 J"orn Rennecke <joern.rennecke@st.com>
3073 Ulrich Weigand <uweigand@de.ibm.com>
3077 * reload1.c (reg_equiv_invariant): New.
3078 (reload): Allocate, initialize, and free it.
3079 (calculate_needs_all_insns): Check it when skipping equivalence
3081 (alter_reg): Likewise.
3082 (eliminate_regs_1): Rename from eliminate_regs. Add new
3083 may_use_invariant argument; only use reg_equiv_invariant when true.
3084 (eliminate_regs): New.
3085 (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
3086 a context for which may_use_invariant may be true.
3088 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3090 * fold-const.c (const_binop): Don't constant fold the operation
3091 if the result has overflowed and flag_trapping_math.
3092 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3094 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3096 * config/arm/unwind-arm.c (abort): Add prototype here.
3097 (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
3098 (struct phase1_vrs): Add prev_sp.
3099 (unwind_phase2_forced): Save the original core registers instead of
3100 modifying entry_vrs. Take a new flag argument for resuming unwinding
3101 and set action flags accordingly. Always set _US_END_OF_STACK when
3102 get_eit_entry fails. Unwind before calling the stop function.
3103 (_Unwind_GetCFA): New function.
3104 (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
3105 (__gnu_Unwind_Resume_or_Rethrow): Likewise.
3106 (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
3107 just call unwind_phase2_forced.
3108 (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
3109 * config/arm/unwind-arm.h (abort): Remove prototype.
3110 (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
3112 (_Unwind_GetCFA): New prototype.
3113 * config/arm/pr-support.c (abort): Add prototype here.
3114 * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
3116 * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
3117 not schedule the prologue with non-call exceptions and EABI.
3119 2005-11-16 Nathan Sidwell <nathan@codesourcery.com>
3121 * config/arm/unwind-arm.h: Reorder interface function declarations.
3122 (_URC_END_OF_STACK): New enumeration value.
3123 (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
3124 (struct _Unwind_Control_Block): Document reserved field use.
3125 (_Unwind_Stop_Fn): New typedef.
3126 (_Unwind_ForcedUnwind): Declare.
3127 (_Unwind_Resume_or_Rethrow): Declare.
3128 * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
3130 (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
3131 * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
3132 (UCB_FORCED_STOP_ARG): New.
3133 (search_EIT_table): Update boundary condition checks.
3134 (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
3135 (unwind_phase2): Replace for with do..while.
3136 (unwind_phase2_forced): New.
3137 (__gnu_Unwind_RaiseException): Replace for with do..while.
3138 (__gnu_Unwind_ForcedUnwind): New.
3139 (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
3140 Use appropriate phase2 unwinder.
3141 (__gnu_Unwind_Resume_or_Rethrow): New.
3142 (__gnu_unwind_pr_common): Cope with forced unwinding.
3144 2005-11-16 David Edelsohn <edelsohn@gnu.org>
3147 * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
3149 * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
3150 roundsf2): Remove "s" from mnemonic.
3152 2005-11-16 Bernd Schmidt <bernd.schmidt@analog.com>
3154 * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
3156 * config/bfin/crtn.s: Change epilogues to match.
3157 * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
3158 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
3159 __PIC__ and __pic__.
3161 2005-11-16 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
3164 * doc/invoke.texi: Distinguish between free and fixed form instead of
3165 Fortran and Fortran 90/95. Remove ratfor from the list of supported
3167 * gcc.c (default_compilers): Remove double entries, add entries for
3168 suffixes '.F90' and '.F95'.
3170 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3172 * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
3173 in the stack probing loop.
3175 2005-11-15 David Edelsohn <edelsohn@gnu.org>
3177 * configure.ac: Use .machine power5 not power5x.
3178 * configure: Regenerate.
3180 2005-11-15 Mike Stump <mrs@apple.com>
3182 * c-decl.c (lookup_name_two): Add.
3183 * c-tree.h (lookup_name_two): Likewise.
3184 * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
3185 * config/darwin-c.c (darwin_pragma_unused): Likewise.
3187 2005-11-16 Alan Modra <amodra@bigpond.net.au>
3189 PR rtl-optimization/23392
3190 * regrename.c (enum scan_actions) Add mark_access.
3191 (scan_actions_name): Ditto.
3192 (scan_rtx_reg): Handle mark_access.
3193 (scan_rtx_address): Do nothing for mark_access.
3194 (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
3195 and regs in REG_INC notes before closing chains for dead regs.
3196 Mark destination regs in REG_FRAME_RELATED_EXPR notes after
3197 opening chains for new writes.
3199 2005-11-15 David Edelsohn <edelsohn@gnu.org>
3201 * c.opt (ffixed-line-length-none): New.
3203 2005-11-15 Steve Ellcey <sje@cup.hp.com>
3205 * mklibgcc.in: Change contents of eh_dummy.c.
3207 2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
3209 * loop.c (scan_loop): Do not insert temporaries for hard registers.
3211 2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
3213 * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
3215 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also.
3217 2005-11-15 Jan Hubicka <jh@suse.cz>
3219 * invoke.texi (large-unit-insns): Document.
3220 * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
3221 * params.def (large-unit-insns): New param.
3223 2005-11-15 Hans-Peter Nilsson <hp@axis.com>
3226 * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
3227 special register for operand 3. Reindent constraints to align
3230 2005-11-14 David Edelsohn <edelsohn@gnu.org>
3232 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
3233 -mpopcntb, -mfprnd. Add -mcpu=power5+.
3234 * configure.ac: Add test for FP rounding instructions.
3235 * configure: Regenerate.
3236 * config.in: Regenerate.
3237 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3238 _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
3240 * config/rs6000/rs6000.opt (mfprnd): New.
3241 * config/rs6000/rs6000.c (processor_target_table): Add power5+.
3242 (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
3243 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
3244 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
3245 (TARGET_FPRND): New.
3246 * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
3248 (btrunc<mode>2): New.
3250 (floor<mode>2): New.
3251 (round<mode>2): New.
3253 2005-11-14 Geoffrey Keating <geoffk@apple.com>
3255 * gcc.c (version_compare_spec_function): Use fatal() rather than
3258 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
3259 (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
3260 * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
3262 * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
3265 * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
3266 on -mmacosx-version-min setting.
3268 2005-11-14 Diego Novillo <dnovillo@redhat.com>
3271 * tree-vrp.c (infer_value_range): Return false if STMT is a
3272 block terminator and its basic block has no successors.
3274 2005-11-14 Mike Stump <mrs@apple.com>
3276 * config/i386/i386.c (override_options): -masm=intel isn't
3277 supported on darwin.
3278 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
3280 2005-11-15 Joseph S. Myers <joseph@codesourcery.com>
3282 * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
3283 vfork after including auto-host.h.
3285 2005-11-15 Alan Modra <amodra@bigpond.net.au>
3287 PR rtl-optimization/22002
3288 * combine.c (distribute_notes): Detect cases where a reg dies
3289 two or more times in a bb, including on the insn we are combining,
3290 and place the death note on the correct range.
3292 2005-11-14 Dale Johannesen <dalej@apple.com>
3294 * expmed.c (store_bit_field): Add offset unconditionally for
3296 (extract_bit_field): Don't force extzv or extv operand into
3297 a register if field is too big.
3299 2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
3301 * config/arm/arm.c (pic_labelno): New.
3302 (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
3303 LABEL_REF. Pass only the labelno to PIC insns.
3304 (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3305 (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
3306 * arm.md (UNSPEC_PIC_LABEL): New constant.
3307 (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3308 (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
3309 Use the correct label prefix.
3311 2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
3313 * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
3316 2005-11-14 Richard Earnshaw <richard.earnshaw@arm.com>
3318 * loop-invariant.c: Include tm_p.h.
3319 * Makefile.in: Updated.
3321 2005-11-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3323 * pa.c (store_reg): Revise generation of frame notes in large frames.
3324 (set_reg_plus_d): Likewise.
3326 2005-11-13 Andrew MacLeod <amacleod@redhat.com>
3328 PR tree-optimization/24709
3329 * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
3332 2005-11-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3334 * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
3335 and duplicate declaration of pthread_self.
3337 2005-11-13 Eric Botcazou <ebotcazou@adacore.com>
3338 Ian Lance Taylor <ian@airs.com>
3341 * calls.c (expand_call): If TARGET is a MEM and some part of the
3342 argument area has been saved, force TARGET to a register.
3344 2005-11-13 Razya Ladelsky <razya@il.ibm.com>
3346 * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
3349 2005-11-13 Jason Merrill <jason@redhat.com>
3352 * dwarf2out.c (gen_subprogram_die): Force a declaration die for
3353 lazily declared methods.
3354 (force_decl_die): Stop if forcing out the context already make a
3356 (force_type_die): Likewise.
3358 2005-11-13 Andrew Pinski <pinskia@physics.uc.edu>
3361 * builtins.c (integer_valued_real_p): Add break in
3362 REAL_CST having TREE_OVERFLOW set.
3364 2005-11-13 Zdenek Dvorak <dvorakz@suse.cz>
3366 * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
3367 addressing modes during calculation of costs.
3369 2005-11-12 Eric Botcazou <ebotcazou@adacore.com>
3371 * function.c (assign_stack_local_1): Restrict sanity check
3372 on frame size overflow to 32-bit and above platforms.
3374 2005-11-12 Hans-Peter Nilsson <hp@axis.com>
3376 * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
3377 * config/cris/cris.c: Include reload.h.
3378 (cris_initial_elimination_offset): New function.
3379 * config/cris/cris-protos.h: (cris_initial_elimination_offset):
3382 2005-11-12 Richard Guenther <rguenther@suse.de>
3384 * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
3386 2005-11-12 Jan Hubicka <jh@suse.cz>
3388 * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
3389 to compare against 0 when possible.
3391 2005-11-12 Jie Zhang <jie.zhang@analog.com>
3393 * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
3394 HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3395 REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
3396 * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
3399 2005-11-12 Hans-Peter Nilsson <hp@axis.com>
3401 * recog.c (constrain_operands) <case 'g'>: For a match, require
3402 that a non-register matches general_operand when strict >= 0.
3404 2005-11-11 Steven Bosscher <stevenb@suse.de>
3406 * loop-invariant.c (move_loop_invariants): Fix a thinko in the
3409 2005-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3411 * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
3412 (memory_address_same): New.
3413 (dse_optimize_stmt): Call memory_address_same.
3415 2005-11-12 Hans-Peter Nilsson <hp@axis.com>