OSDN Git Service

4f36c02e47f859601071f48d9766f3dfe34c45fc
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-12-16  Steven Bosscher  <stevenb@suse.de>
2
3         PR rtl-optimization/23837
4         * optabs.c (expand_binop): For a multi-word rotate, never emit
5         a REG_NO_CONFLICT block.
6
7 2005-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8
9         PR middle-end/25457
10         * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
11
12         PR target/25447
13         * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
14         MODE_DECIMAL_FLOAT.
15
16 2005-12-16  Steven Bosscher  <stevenb@suse.de>
17
18         * loop-invariant.c (move_loop_invariants): Add missing hunk from
19         the previous patch, to nullify df.
20
21 2005-12-16  Steven Bosscher  <stevenb@suse.de>
22
23         * reorg.c (mostly_true_jump): Clean up code depending on
24         LABEL_OUTSIDE_LOOP_P and loop notes.  Remove code doing
25         poor man's branch prediction, instead rely on REG_BR_PROB
26         notes to be available.
27
28 2005-12-16  Jakub Jelinek  <jakub@redhat.com>
29
30         PR rtl-optimization/24899
31         * loop.c (strength_reduce): Don't reduce giv that is not always
32         computable and where add_val or mult_val can trap.
33
34         * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
35
36 2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
37
38         * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
39         names of ms1-16-002 files.
40
41 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
42
43         PR driver/20425
44         * gcc.c (for_each_path): New function.
45         (add_to_obstack, file_at_path): New functions.
46         (struct file_at_path_info, struct add_to_obstack_info): New.
47         (build_search_list): Rewrite using for_each_path.  Constify struct
48         path_prefix pointer.  Add do_multi param.  Adjust all callers.
49         (find_a_file): Similarly, but just change existing param to bool.
50         (putenv_from_prefixes): Add do_multi param, make "paths" const.
51         (do_spec_path): Delete.
52         (struct spec_path_info): New.
53         (spec_path): New function.
54         (do_spec_1): Use for_each_path for %D and %I.
55         (find_file): Adjust for find_a_file changes.
56         (main): Search multilibs for specs.  Print multilib lib path for
57         -print-search-dirs.  Likewise add multilibs to LIBRARY_PATH_ENV.
58         (read_specs): Search multilibs for %include and %include_noerr.
59         (is_directory): Remove second string param.  Change last param
60         to a bool.  Don't use concat.  Remove SMALL_ARG_MAX test, always
61         check path is a dir.  Update all callers.
62         * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
63         * system.h (SMALL_ARG_MAX): Poison.
64         * config.gcc: Don't define SMALL_ARG_MAX.
65         * config.host: Likewise.
66         * config.build: Likewise.
67
68 2005-12-16  Paolo Bonzini  <bonzini@gnu.org>
69
70         * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
71         FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
72         ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
73         simplify_logical): Move simplifications that do not require
74         additional infrastructure...
75         * simplify-rtx.c (simplify_unary_operation_1,
76         simplify_binary_operation_1): ... here.
77
78 2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>
79
80         PR 24823
81         * flow.c (mark_used_dest_regs): New function.
82         (mark_used_regs): Call mark_used_dest_regs.
83
84 2005-12-16  Jeff Law  <law@redhat.com>
85
86         * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
87         represent a use and definition of the same SSA_NAME.
88
89 2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
90             Janis Johnson  <janis187@us.ibm.com>
91             Ben Elliston  <bje@au.ibm.com>
92
93         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
94         (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
95         * target.h (struct gcc_target): Add decimal_float_supported_p.
96         * targhooks.c (default_scalar_mode_supported_p): Handle
97         MODE_DECIMAL_FLOAT.
98         * builtins.def: Add new builtins for 32, 64 and 128 bit variants
99         of inf, nan, finite, isinf and isnan.
100         * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
101         BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
102         BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
103         BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
104         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
105         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
106         BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
107         * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
108         Pedwarn if decimal floating point types are used.  Error if
109         decimal floating point is not supported by the target.
110         (finish_declspecs): Return type from DFP typespec_word.
111         * c-typeck.c (c_common_type): Choose the decimal floating point
112         type with the greater precision when determining a common type.
113         (convert_arguments): Warn if there is a mismatch between argument
114         and prototype for decimal float types.  Warn of conversions with
115         binary float types and of precision narrowing due to prototype.
116         * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
117         (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
118         (c_token_starts_declspecs): Likewise.
119         (c_parser_attributes): Likewise.
120         * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
121         RID_DFLOAT64, RID_DFLOAT128.
122         (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
123         * c-common.c (c_common_type_for_mode): Handle decimal float modes.
124         (shorten_compare): Convert DFP/BFP operands to a common type.
125         (c_common_modes_and_builtins): Register built-in decimal float
126         types if the target supports them.
127         (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
128         * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
129         inf, nan, finite, isinf and isnan builtins.
130         * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
131         (builtin_define_float_constants): Assert non-decimal radix.
132         (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
133         Call builtin_define_decimal_float_constants for each type.
134         * c-lex.c (interpret_float): Decode decimal float types from CPP_N
135         flags.  Use real_from_string3, which can handle binary or decimal
136         floats.
137         * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
138         cts_dfloat64, cts_dfloat128.
139         * tree.c (build_common_tree_nodes_2): Add decimal float types.
140         * tree.h (enum tree_index): Add new enumeration values
141         TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
142         TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
143         (dfloat32_type_node): New macro.
144         (dfloat64_type_node, dfloat128_type_node): Likewise.
145         (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
146         (dfloat128_ptr_type_node): Likewise.
147         * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
148         bit decimal floating point types with "df", "dd" and "dl".
149         * c-format.h (enum format_lengths): Add new enumeration values
150         FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
151         * c-format.c (printf_length_specs, scanf_length_specs): Add
152         entries for H, D, DD.
153         (print_char_table, scan_char_table): Use new entries.
154         (asm_fprintf_char_table, gcc_diag_char_table,
155         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
156         length arrays.
157         * defaults.h (DECIMAL32_TYPE_SIZE): Define.
158         (DECIMAL64_TYPE_SIZE): Likewise.
159         (DECIMAL128_TYPE_SIZE): Likewise.
160         (TARGET_DEC_EVAL_METHOD): Likewise.
161         * doc/extend.texi (Decimal Float): New node.
162         (Constructing Calls): Document decimal float built-ins.
163         * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
164         * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
165         * ginclude/decfloat.h: New file.
166
167 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
168
169         * reload.c (find_reloads): Fix comment typo.
170         * recog.h (recog_memoized): Correct comment.
171
172 2005-12-16  Kazu Hirata  <kazu@codesourcery.com>
173
174         * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
175         config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
176         reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
177         tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
178         * doc/invoke.texi, doc/tm.texi: Fix typos.
179
180 2005-12-16  Ben Elliston  <bje@au.ibm.com>
181
182         * real.c (decimal_quad_format): Correct values for emin, emax.
183
184 2005-12-15  DJ Delorie  <dj@redhat.com>
185
186         * config/m32c/predicates.md (m32c_psi_scale): New.
187         * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
188         * config/m32c/muldiv.md (mulpsi3): Support negative constants.
189
190 2005-12-16  Jan Hubicka  <jh@suse.cz>
191
192         PR rtl-optimization/25224
193         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
194         tables.
195
196 2005-12-15  Zdenek Dvorak <dvorakz@suse.cz>
197             Steven Bosscher <stevenb@suse.de>
198
199         * loop-invariant.c (df): New global variable.
200         (find_defs, check_dependencies, find_invariant_insn, record_uses,
201         find_invariants_bb, find_invariants_body, find_invariants,
202         find_invariants_to_move, move_invariants, free_inv_motion_data,
203         move_single_loop_invariants, move_loop_invariants): Do not pass df in
204         arguments.
205
206 2005-12-15  Jakub Jelinek  <jakub@redhat.com>
207
208         * varasm.c (default_unique_section_1): Use special section
209         names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
210
211 2005-12-16  Ben Elliston  <bje@au.ibm.com>
212
213         * doc/invoke.texi (Warning Options): Document -Walways-true being
214         enabled by -Wall.
215
216 2005-12-15  Joseph S. Myers  <joseph@codesourcery.com>
217
218         PR other/25028
219         * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
220         * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
221         __floatunditf): Use #error if type sizes don't match requirements
222         of implementation.
223         (__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
224         as wider floating-point type.  Use #error if type sizes don't
225         match requirements of implementation.  Avoid overflow in computing
226         Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
227         shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
228         (__floatundisf, __floatundidf): Likewise.
229         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
230         * config/ia64/ia64.c (ia64_init_libfuncs): Use
231         _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
232         TFmode-TImode conversions.
233         * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
234
235 2005-12-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>
236
237         * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
238         Use builtin_define_with_int_value() instead of
239         adding a new check for every new major FreeBSD version.
240
241 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
242
243         * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
244
245 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
246
247         * config/arm/predicates.md (call_memory_operand): New.
248         * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
249
250 2005-12-15  Andrew Haley  <aph@redhat.com>
251
252         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
253         against prev_cache_entry == NULL when moving a cache entry to the
254         head of the list.
255         
256 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
257
258         * config/mt/mt.c (mt_override_options): Require lower case
259         architectures.  Revert accidental default to ms2.
260         * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
261         ENDFILE_SPEC): Require lower case architectures.  Revert default
262         to ms2.
263
264         * doc/invoke.texi (MT Options): Rename and update.
265         * doc/md.texi (MorphoTech family): Rename and update.
266
267 2005-12-15  Olivier Hainque  <hainque@adacore.com>
268
269         * stor-layout.c (layout_type): Don't complain about a too small
270         an array element type size compared to its alignment when the
271         size overflows.
272
273 2005-12-15  Jan Hubicka  <jh@suse.cz>
274
275         PR target/24969
276         * i386.c (classify_argument): Properly adjust offset of bitfield for
277         substructures.
278
279 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
280
281         * final.c (final_scan_insn): Flip in_cold_section_p when changing
282         between the hot and cold sections.  Use current_function_section
283         to get the new section.
284         * dwarf2out.c (output_line_info): Use in_cold_section_p to
285         determine whether we are assembling hot or cold code.
286         (secname_for_decl, dwarf2out_var_location): Likewise.
287         (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
288         * varasm.c (last_text_section): Delete.
289         (in_cold_section_p): New variable.
290         (hot_function_section): New function.
291         (current_function_section): Pass in_cold_section_p as the
292         reloc argument to select_section.  Use it to decide between
293         unlikely_function_section and hot_function_section.
294         (assemble_start_function): Use switch_to_section.  Set
295         in_cold_section_p instead of last_text_section.
296         (assemble_end_function): Use switch_to_section.
297         (switch_to_section): Don't set last_text_section.
298         * config/darwin/darwin.c (machopic_select_section): Trust the reloc
299         argument to make the right choice between hot and cold sections.
300
301 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
302
303         Second part of MS1->MT renaming
304         * config/mt/mt.md (doloop_end): Call mt_add_loop.
305         (movqi, movhi): Call mt_set_memflags.
306         (*movdf_internal): Call mt_split_words. 
307         (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
308         mt_set_memflags.
309         (cmpsi): Store to mt_compare_op[01].
310         (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
311         bungt, bunle, bunlt): Call mt_emit_cbranch.
312         (prologue): Call mt_expand_prologue.
313         (epilogu): Call mt_expend_epilogue.
314         (eh_return): Call mt_expand_eh_return.
315         (eh_epilogue): Call me_emit_eh_epilogue.
316         (conditional_trap): Store to mt_compare_op[01].
317         * config/mt/crti.asm: Adjust comment.
318         * config/mt/crtn.asm: Adjust comment.
319         * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
320         (mt_compare_op0, mt_compare_op1): Renamed.
321         (current_frame_info, zero_frame_info): Adjust type.
322         (mt_ucmpsi3_libcall): Renamed.
323         (mt_flag_delayed_branch): Renamed.
324         (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
325         (mt_nops_required, mt_nop_reasons): Renamed.
326         (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
327         mt_debug_stack, mt_print_operand_simple_address,
328         mt_print_operand_address, mt_print_operand): Renamed, adjusted.
329         (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
330         mt_function_arg_advance, mt_arg_partial_bytes,
331         mt_pass_by_reference, mt_function_arg_boundary,
332         mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
333         mt_legitimate_address_p): Renamed, adjusted.
334         (mt_cpu): Renamed.
335         (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
336         mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
337         mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, 
338         mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
339         mt_expand_eh_return, mt_emit_eh_prologue,
340         mt_handl_interrupt_attribute): Renamed, adjusted.
341         (mt_attribute_table): Renamed, adjusted.
342         (mt_initial_elimination_offset, mt_generate_compare,
343         mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
344         mt_secondary_reload_class, mt_function_value, mt_split_words,
345         mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
346         mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
347         (mt_labels): Renamed.
348         (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
349         mt_machine_reorg): Renamed, adjusted.
350         (mt_attribute_table: Renamed.
351         (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
352         TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
353         TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
354         * config/mt/mt.opt (march): Set mt_cpu_string.
355         * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
356         (TARGET_CPU_CPP_BUILTINS): Adjust.
357         (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
358         TARGET_MS2): Adjust.
359         (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
360         (MT_MIN_INT): Renamed.
361         (RETURN_ADDR_RTX): Adjust.
362         (struct mt_frame_info): Renamed.
363         (current_frame_info): Adjust type.
364         (INITIAL_ELIMINATION_OFFSET): Adjust.
365         (MT_NUM_ARG_REGS): Renamed.
366         (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
367         FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
368         LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
369         GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
370         FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
371         (mt_compare_op0, mt_compare_op1): Renamed.
372         * config/mt/mt-protos.h: Rename prototypes.
373
374 2005-12-15  Richard Guenther  <rguenther@suse.de>
375
376         * tree-flow.h (okay_component_ref_for_subvars): Remove.
377         (get_ref_base_and_extent): Declare.
378         * tree-dfa.c (okay_component_ref_for_subvars): Remove.
379         (get_ref_base_and_extent): New function.
380         * tree-ssa-alias.c (find_used_portions): Use it.
381         * tree-ssa-structalias.c (get_constraint_for_component_ref):
382         Likewise.
383         * tree-ssa-operands.c (get_expr_operands): Likewise.
384
385 2005-12-15  Paolo Bonzini  <bonzini@gnu.org>
386
387         * combine.c: Remove force_to_mode's fourth parameter.
388         (force_to_mode): Do not handle REG.
389         (canon_reg_for_combine): New.
390         (make_field_assignment): Use it where the removed argument was non-NULL.
391
392 2005-12-15  Alan Modra  <amodra@bigpond.net.au>
393
394         PR target/25406
395         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
396         error_mark_node.  Make alignment params unsigned.
397         * config/rs6000/rs6000-protos.h
398         (rs6000_special_round_type_align): Update prototype.
399         (rs6000_machopic_legitimize_pic_address): Remove arg names.
400
401 2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>
402
403         PR rtl-optimization/25310
404         * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
405         of the eliminable register when substituting into a PLUS.
406
407 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
408
409         PR debug/25023
410         * config/i386/i386.c (ix86_force_to_memory): Always use
411         SImode push for HImode in -m32.
412         (ix86_free_from_memory): Likewise.
413
414 2005-12-14  Richard Sandiford  <richard@codesourcery.com>
415
416         * gcc/config/arm/arm.md: Provide a big-endian version of the
417         (zero_extend:SI (subreg:QI ...)) splitter.
418
419 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
420
421         * struct-equiv.c (note_local_live): Handle hard regs with different
422         hard_regno_nregs.
423
424 2005-12-14  Jeff Law  <law@redhat.com>
425
426         * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
427         to a structure containing state rather than a pointer to bool.
428         (case ARRAY_REF): New code to handle folding some array references.
429         (case ADDR_EXPR): Note when we are processing expressions found
430         within an ADDRE_EXPR.
431         (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
432         for state variables rather than just a pointer to a boolean.
433         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
434         handling of constant string references.
435
436 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
437
438         * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
439         ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
440         ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
441         Move other tst* patterns to retain partial order.
442
443 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
444
445         * config/s390/s390.md ("d0", "1"): New mode attributes.
446         ("<shift>di3", "<shift>si3"): Merge.
447         ("*<shift>di3_and", "*<shift>si3_and"): Merge.
448         ("ashrdi3", "ashrsi3"): Merge.
449         ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
450         ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
451         ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
452         ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
453         ("*ashrdi3", "*ashrsi3"): Merge.
454         ("*ashrdi3_and", "*ashrsi3_and"): Merge.
455
456 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
457
458         * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
459         ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
460         ("*extendqidi2", "*extendqisi2") Merge.
461         ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
462         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
463         ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
464         Move some patterns to retain partial ordering.
465
466 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
467
468         * config/s390/s390.md ("atype", "length"): Rewrite.
469         ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
470
471 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
472
473         * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
474
475 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
476
477         * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
478         PARALLELs with a mode.
479
480 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
481
482         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
483         cond_expr parameter.
484
485 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
486
487         * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
488
489 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
490
491         PR bootstrap/25397:
492
493         * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
494         of STACK_REGS bits.
495
496         * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
497
498 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
499
500         PR target/25254
501         PR target/24188
502         * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
503         DECL_P, call get_section rather than get_named_section.  Supply
504         section flags to it.
505
506 2005-12-14  Ben Elliston  <bje@au.ibm.com>
507
508         * c-common.c (c_common_truthvalue_conversion): Generalise warning
509         for addresses converted to booleans; not just function addresses.
510         * c-typeck.c (build_binary_op): Warn for address comparisons which
511         can never be NULL (eg. func == NULL or &var == NULL).
512         * common.opt (Walways-true): New option.
513         * c-opts.c (c_common_handle_option): Set it with -Wall.
514         * doc/invoke.texi: Document it.
515
516 2005-12-13  Paul Brook  <paul@codesourcery.com>
517
518         * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
519         __floatunsidf, __floatunsisf, __floatunsixf): New functions.
520
521 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
522
523         * sim/common/sim-signal.c (sim_signal_to_target): Add missing ':'.
524         * sim/common/sim-signal.h (sim_signal_to_target): Return an int.
525
526         * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
527         (EXTRA_MULTILIB_PARTS): Define.
528
529 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
530
531         PR rtl-optimization/20070 / part1
532         * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
533         count_or_remove_death_notes with kill == -1.
534         (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
535         registers if PROP_POST_REGSTACK is set.
536         (mark_used_reg): Likewise.
537         (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
538         REG_UNUSED notes for stack regs.
539         * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
540         to match rtx_equiv_p machinery.  Change caller.
541         (outgoing_edges_match): Likewise.
542         (try_crossjump_to_edge): Use struct_equiv_block_eq
543         instead of flow_find_cross_jump.
544         * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
545         (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
546         (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
547         (STRUCT_EQUIV_MAX_LOCAL): Likewise.
548         (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
549         (insns_match_p): Update prototype.
550         (flow_find_cross_jump): Remove prototype.
551         (struct_equiv_block_eq, struct_equiv_init): Declare.
552         (rtx_equiv_p, condjump_equiv_p): Likewise.
553         * struct-equiv.c: Include reload.h.
554         (IMPOSSIBLE_MOVE_FACTOR): Define.
555         (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
556         (struct_equiv_improve_checkpoint): Likewise.
557         (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
558         (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
559         (struct_equiv_merge, find_dying_input): Likewise.
560         (resolve_input_conflict, note_local_live): Likewise.
561         (death_notes_match_p): Change parameters and processing
562         to match rtx_equiv_p machinery.  Change caller.
563         (insns_match_p): Likewise.
564         (flow_find_cross_jump): Replace with:
565         (struct_equiv_block_eq).
566
567         Back out this change:
568         2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
569           * recog.c (verify_changes): Make it static.
570           * recog.h: Remove the corresponding prototype.
571
572 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
573
574         * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
575         values.
576
577 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
578
579         * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
580         (MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
581         * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
582         TARGET_MS1_64_001 appropriately.
583         (ms1_machine_reorg): Use TARGET_MS2.
584
585 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
586
587         PR debug/25023
588         PR target/25293
589         * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
590         and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
591         Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
592         * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
593         Set mode to SI, adjust constraints.
594         (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
595         * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
596         32-bit code.
597
598 2005-12-13  Carlos O'Donell <carlos@codesourcery.com>
599
600         * c-cppbuiltin.c (builtin_define_float_constants): Add
601         fp_cast parameter, pass to builtin_define_with_hex_fp_value.
602         Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
603         (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
604         (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
605         to "((double)%sL)" otherwise "%s".
606
607 2005-12-13  Paul Brook  <paul@codesourcery.com>
608
609         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
610         apcs/atpcs.
611
612 2005-12-11 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
613
614         * tree-flow.h: Allow compilation with a C++ compiler.
615         (struct edge_prediction): Prefix all field names  with "ep_".
616         * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
617         (tree_predict_edge, combine_predictions_for_bb): Likewise.
618         (remove_predictions_associated_with_edge): Likewise.
619         
620 2005-12-12  Jeff Law  <law@redhat.com>
621
622         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
623         reassociation code.
624         * passes.c (init_optimization_passes): Run reassociation again
625         after loop optimizations.
626
627 2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
628
629         * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
630         if necessary.
631         (optimize_stmt): Ditto.
632         (canonicalize_comparison): New function.
633         * tree-ssa-operands.c (swap_tree_operands): Make external.
634         (get_expr_operands): Stop auto-canonicalization.
635         * tree-ssa-reassoc.c: Rewrite.
636         (init_optimization_passes): 
637         * tree-flow.h (swap_tree_operands): Prototype.
638         * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
639
640 2005-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
641
642         * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
643         indicate function epilogue has been output.
644         (pa_asm_output_mi_thunk): Likewise.
645         (output_deferred_plabels): Put plabels in readonly data section when
646         not generating PIC code.
647         (som_output_text_section_asm_op): Use .NSUBSPA to output debug
648         information.  Add assert.
649         (som_output_comdat_data_section_asm_op): New function.
650         (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
651         instead of output_section_asm_op for COMDAT sections.
652
653 2005-12-12  J"orn Rennecke <joern.rennecke@st.com>
654
655         * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
656         Fix whitespace in vincinity of to-be-installed changes.
657         * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
658         (insns_match_p): Likewise.
659
660 2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
661
662         * config.gcc (ms1): Replace with ...
663         (mt): ... this.
664         * config/ms1: Rename to ...
665         * config/mt: ... here.  Rename ms1 files to mt.
666         * config/mt/mt.c: Adjust gt-mt.h #include.
667         * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
668         (crti.o, crtn.o): Adjust file names.
669
670 2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
671
672         * varray.h: Allow compilation with a C++ compiler.
673         (union varray_data_tag): Prefix all field names with "vdt_".
674         (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
675         VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
676         VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
677         VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
678         VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
679         VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
680         (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
681         VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, 
682         VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, 
683         VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, 
684         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, 
685         VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, 
686         VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, 
687         VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
688         (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, 
689         VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, 
690         VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, 
691         VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, 
692         VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, 
693         VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, 
694         VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, 
695         VARRAY_TOP_TREE_PTR): Likewise.
696         * varray.c (varray_grow): Likewise.
697         (varray_clear): Likewise.
698
699 2005-12-12  Alan Modra  <amodra@bigpond.net.au>
700
701         PR target/25299
702         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
703         alignment to doubleword if the first field is a double array.
704         * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
705
706 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
707
708         * tree-ssa-structalias.c (process_constraint): Remove code to
709         transform addressofs into scalar.
710         (create_variable_info_for): In whole-program IPA, globals don't
711         point to ANYTHING by default.
712
713 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
714
715         * timevar.def (TV_IPA_PTA): New.
716         * tree-pass.h (pass_ipa_pta): New
717         * tree-ssa-structalias.c: Include cgraph.h
718         (in_ipa_mode): New.
719         (predbitmap_obstack): New.
720         (EXECUTE_IF_IN_NONNULL_BITMAP): New.
721         (struct constraint_stats): Add num_edges.
722         (new_var_info): Don't call bitmap_clear.
723         (struct constraint_edge): Update docs.
724         (new_constraint_edge): Remove src param.
725         (struct constraint_graph): Add zero_weight_succs,
726         zero_weight_preds.  Update docs.
727         (constraint_expr_equal): Reformat.
728         (constraint_edge_equal): Update for removal of src.
729         (constraint_edge_less): Ditto.
730         (constraint_edge_vec_find): Ditto.
731         (erase_graph_self_edge): Update for removal of src and and zero
732         weight bitmap.
733         (clear_edges_for_node): Ditto.
734         (add_graph_edge): Ditto.
735         (get_graph_weights): Ditto.
736         (allocate_graph_weights): Ditto.
737         (merge_graph_nodes): Ditto.
738         (int_add_graph_edge): Ditto.
739         (valid_graph_edge): Ditto.
740         (valid_weighted_graph_edge): Ditto.
741         (build_constraint_graph): Ditto.
742         (scc_visit): Ditto.
743         (collapse_nodes): Ditto.
744         (process_unification_queue): Ditto.
745         (topo_visit): Ditto.
746         (solve_graph): Ditto.
747         (do_structure_copy): Ditto.
748         (perform_var_substitution): Ditto.
749         Init and release obstack.
750         (handle_ptr_arith): Try to resolve directly.
751         (find_func_aliases): Don't call update_alias_info here
752         Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
753         (do_sd_constraint): Add code for propagating faster.
754         Update.
755         (do_ds_constraint): Ditto.
756         (count_num_arguments): New function.
757         (create_function_info_for): Ditto.
758         (create_variable_info_for): Handle FUNCTION_DECL.
759         (intra_create_variable_infos): Use make_constraint_to_anything.
760         (init_alias_vars): Init obstacks here.
761         (need_to_solve): Handle zero weight graph changes.
762         (compute_points_to_sets): Call update_alias_info here.
763         (delete_points_to_sets): Free zero weight preds/succs here.
764         (gate_ipa_pta): New.
765         (ipa_pta_execute): New
766
767 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
768
769         * tree-ssa-structalias.c (var_anyoffset): Removed.
770         (anyoffset_tree): Ditto.
771         (anyoffset_id): Ditto.
772         (do_deref): Take vector of constraints, no return value.
773         Update to work on vector.                
774         (get_constraint_for): Ditto.
775         (get_constraint_for_component_ref): Ditto.
776         (do_structure_copy): Ditto.
777         (handle_ptr_arith): Ditto.
778         (find_func_aliases): Ditto.
779         (set_uids_in_ptset): Remove anyoffset handling.
780         (init_base_vars): Ditto.
781
782 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
783
784         PR c++/25010
785         * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
786         DECL_EXTERNAL functions have no bodies.  Tidy.
787
788 2005-12-10  Andreas Schwab  <schwab@suse.de>
789
790         * except.c (switch_to_exception_section): Only define if
791         TARGET_UNWIND_INFO is not defined.
792
793 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
794
795         * config/darwin.h (HAS_INIT_SECTION): Remove definition.
796         (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
797
798 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
799
800         * output.h (init_section, fini_section): Delete.
801         * varasm.c (init_section, fini_section): Delete.
802         (init_varasm_once): Don't initialize them.
803         * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
804         there are no corresponding varasm.c variables.
805
806 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
807
808         * dwarf2out.c (default_eh_frame_section): Delete, moving handling
809         of EH_FRAME_SECTION_NAME into...
810         (switch_to_eh_frame_section): ...here.  Try to set eh_frame_section
811         if it is still null.
812         * except.c (default_exception_section): Delete, moving most
813         of the code to...
814         (switch_to_exception_section): ...this new function.  Set
815         exception_section if it is still null, then switch to it.
816         (output_function_exception_table): Use switch_to_exception_section.
817         * varasm.c (exception_section, eh_frame_section): Update comments.
818         (get_section): Hoist use of SECTION_NAMED.
819         (init_varasm_once): Don't set exception_section and eh_frame_section.
820         * output.h (default_exception_section): Delete.
821         (default_eh_frame_section): Delete.
822
823 2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>
824
825         * config/bfin/bfin.c: Include "cgraph.h".
826         (bfin_load_pic_reg): Omit loading pic reg if in a local function.
827         Return the reg that holds the pointer to the GOT.
828         (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
829         doing stack checking.
830
831 2005-12-09  Diego Novillo  <dnovillo@redhat.com>
832
833         * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
834         recompute_tree_invarant_for_addr_expr.
835         Update uses everywhere.
836
837 2005-12-09  Aldy Hernandez  <aldyh@redhat.com>
838
839         * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
840         (MULTILIB_DIRNAMES): Define.
841
842 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
843
844         PR target/25311
845         * config/s390/s390.c (struct s390_address): New field literal_pool.
846         (s390_decompose_address): Compute literal_pool field.  Do not 
847         assume register %r13 is always (and solely) used as pool base.
848         (s390_extra_constraint_str): Use literal_pool field.
849
850 2005-12-09  Thiemo Seufer  <ths@networkno.de>
851
852         * config/mips/mips.c (override_options): Don't allow too small
853         integers in FP registers.
854
855 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
856
857         * config/s390/s390.c (s390_function_ok_for_sibcall): Use
858         targetm.binds_local_p to check for local function calls.
859
860 2005-12-09  Alan Modra  <amodra@bigpond.net.au>
861
862         PR debug/24908
863         * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
864         call_used_regs can't be used to save reg in another reg.
865
866 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
867             Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
868
869         * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
870         abort.
871         * except.c (output_ttype): Likewise.
872         * tree-object-size.c (collect_object_sizes_for): Likewise.
873         (check_for_plus_in_loops_1): Likewise.
874         (check_for_plus_in_loops): Likewise.
875         (compute_object_sizes): Use gcc_unreachable instead of abort.
876
877 2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>
878
879         * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
880         (loop_end, loop_init, doloop_end): New insns.
881         * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
882         (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
883         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
884         (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
885         * config/ms1/ms1.c: #include basic-block.h
886         (struct machine_function): Add has_loops field.
887         (ms1_add_loop): New.
888         (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
889         (struct loop_info, struct loop_work): New.
890         (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
891         (ms1_reorg_loops): New loop optimization.
892         (ms1_machine_reorg): Call it.
893         * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
894
895 2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>
896
897         PR tree-optimization/25248
898         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
899         evolution_of_loop from the failed attempt.  Remove handling
900         of MULT_EXPR.
901
902 2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
903
904         * tree.h (DECL_EXTERNAL): Clarify documentation.
905
906 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
907             Jakub Jelinek  <jakub@redhat.com>
908
909         PR target/25268
910         * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
911         argument.  Don't drop outer ANDs.
912         (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
913         * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
914         prototype.
915         * config/s390/predicates.md (setmem_operand): Remove.
916         (shift_count_operand): Rename to...
917         (shift_count_or_setmem_operand): ... this.  Adjust
918         s390_decompose_shift_count caller.
919         * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
920         ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
921         ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
922         <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
923         rotl<mode>3_and, setmem_long_and): New insns.
924         (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
925         ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
926         <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
927         <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
928         of shift_count_operand.
929         (setmem_long): Use shift_count_or_setmem_operand instead of
930         setmem_operand.
931
932 2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
933             Andreas Tobler  <a.tobler@schweiz.ch>
934
935         * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
936         tr expression.
937
938 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
939
940         * expr.c (force_operand): Use convert_to_mode for conversions.
941
942 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
943
944         * reload.h (reg_equiv_invariant): Declare.
945         * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
946         register also when reg_equiv_invariant[R] is set.
947
948 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
949             Andreas Tobler  <a.tobler@schweiz.ch>
950
951         * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
952
953 2005-12-07  Daniel Berlin  <dberlin@dberlin.org>
954
955         * tree-ssa-pre.c (bitmap_set_and): New function.
956         (bitmap_set_and_compl): New function.
957         (bitmap_set_empty_p): New function.
958         (insert_extra_phis): New function.
959         (compute_avail): Use insert_extra_phis.
960
961 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
962
963         * config/s390/s390.c (s390_expand_atomic): New function.
964         Adjust comment of helper functions.
965         * config/s390/s390-protos.h (s390_expand_atomic): Declare.
966         * config/s390/s390.md ("ATOMIC"): New code macro.
967         ("atomic"): Corresponding new code attribute.
968         ("sync_lock_test_and_set[hq]i", 
969         "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
970
971 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
972
973         * config/s390/s390.c (s390_expand_mask_and_shift, 
974         struct alignment_context, init_alignment_context, 
975         s390_expand_cs_hqi): New.
976         * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
977         * config/s390/s390.md ("sync_compare_and_swaphi",
978         "sync_compare_and_swapqi"): New pattern.
979
980 2005-12-07  Daniel Berlin <dberlin@dberlin.org>
981
982         Fix PR tree-optimization/25291
983         * tree-ssa-operands.c (add_call_clobber_ops): Remove
984         redundant and crashing check.
985
986 2005-12-08  Alan Modra  <amodra@bigpond.net.au>
987
988         PR target/25212
989         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
990         tests further when !strict && reload_in_progress.
991         (print_operand): Check that both operands of indexed address are regs.
992         (print_operand_address): Likewise.
993         * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
994         (INT_REG_OK_FOR_BASE_P): Correct.
995
996 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
997
998         Preparation for PR rtl-optimization/20070 / part1
999         * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1000         * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1001         outgoing_edges_match.
1002         (outgoing_edges_match): Use condjump_equiv_p.
1003         (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
1004         into..
1005         * struct-equiv.c: New file.
1006         (death_notes_match_p) New function, broken out of insns_match_p.
1007         * Makefile.in (OBJS-common): Add struct-equiv.o.
1008         (struct-equiv.o): New target.
1009
1010 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1011
1012         * coretypes.h: Revert previous change.
1013         * config/darwin.h: Revert previous reversion.
1014         * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
1015
1016 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1017
1018         * coretypes.h (section): Provide dummy definition for target files.
1019         * config/darwin.h: Revert previous change.
1020
1021 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1022
1023         * doc/sourcebuild.texi (all.build, install-normal): Remove.
1024         * configure.ac: Remove all.build and install-normal from target_list
1025         * configure: Regenerate.
1026         * Makefile.in (install): Don't depend on install-normal.
1027
1028 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1029
1030         * Makefile.in: Document the use of stamps.
1031
1032 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1033
1034         * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1035         * Makefile.in: Add code to compute some dependencies on s-gtype
1036         automatically.  Remove the declaration of those dependencies.
1037
1038 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1039
1040         * gcc/reload.c (push_secondary_reload): Fix typo:
1041         s/insn_constraint/scratch_constraint/.
1042
1043 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1044
1045         * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1046
1047 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1048
1049         * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1050         (alpha_elf_select_rtx_section): Return the selected section rather
1051         than emitting assembly code.
1052         (alpha_write_linkage): Emit a ".link" directive directly and then
1053         set in_section to NULL.
1054         (vms_asm_out_constructor): Use switch_to_section.
1055         (vms_asm_out_destructor): Likewise.
1056         (unicosmk_output_common): Set in_section to NULL instead of calling
1057         the dummy common_section function.
1058         (unicosmk_text_section): Delete in favor of...
1059         (unicosmk_output_text_section_asm_op): ...this new function.
1060         (unicosmk_data_section): Delete in favor of...
1061         (unicosmk_output_data_section_asm_op): ...this new function.
1062         (unicosmk_init_sections): New function.
1063         (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1064         (unicosmk_output_ssib): Set in_section to NULL instead of calling
1065         the dummy ssib_section function.
1066         (unicosmk_section_buf): Delete.
1067         * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1068         (unicosmk_data_section): Delete.
1069         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1070         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1071         (SECTION_FUNCTION_TEMPLATE): Delete.
1072         * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1073         (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1074         (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1075         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1076         (TARGET_ASM_INIT_SECTIONS): Define.
1077         * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1078         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1079         (link_section, literals_section): Delete.
1080         (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1081         set in_section to NULL.
1082
1083         * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1084         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1085         (COMMON_SECTION): Delete.
1086         (TARGET_ASM_INIT_SECTIONS): Define.
1087         (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1088         the dummy common_section function.
1089         * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1090         * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1091         between readonly_data_section and text_section to check whether
1092         read-only data is being put in the text section.
1093         (arm_output_function_epilogue): Use switch_to_section.
1094         (arm_elf_asm_constructor): Likewise.
1095         (thumb_call_via_reg): Replace call to in_text_section with
1096         a comparison between in_section and text_section.
1097         (arm_file_end): Use switch_to_section.
1098         (aof_text_section): Delete in favor of...
1099         (aof_output_text_section_asm_op): ...this new function.
1100         (aof_data_section): Delete in favor of...
1101         (aof_output_data_section_asm_op): ...this new function.
1102         (aof_asm_init_sections): New function.
1103         (zero_init_section): Moved from config/arm/aof.h.
1104         (aof_dump_imports, aof_file_start): Use switch_to_section.
1105         * config/arm/arm.h (thumb_call_via_label): Update comment.
1106         * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1107         (common_section): Delete.
1108         * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1109         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1110         global switch_to_section function instead of the old port-local one.
1111         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1112         (SWITCH_TO_SECTION_FUNCTION): Delete.
1113         (drectve_section): Redefine as a macro.
1114         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1115         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1116         switch_to_section.
1117
1118         * config/avr/avr.c (progmem_section): New variable.
1119         (avr_output_progmem_section_asm_op): New function.
1120         (avr_asm_init_sections): New function.
1121         (avr_output_addr_vec_elt): Use switch_to_section.
1122         * config/avr/avr.h (progmem_section): Declare.
1123         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1124         (READONLY_DATA_SECTION): Delete.
1125         (TARGET_ASM_INIT_SECTIONS): Define.
1126         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1127         * config/avr/avr-protos.h (progmem_section): Delete.
1128
1129         * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1130
1131         * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1132         (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
1133
1134         * config/darwin-sections.def: New file.
1135         * config/darwin.c: Define all sections in darwin-sections.def.
1136         (output_objc_section_asm_op, darwin_init_sections): New functions.
1137         (machopic_output_indirection): Use switch_to_section.
1138         (machopic_select_section): Return the selected section rather than
1139         emitting assembly code.  Replace the static function table with
1140         inline conditional expressions.  Update the tests of last_text_section
1141         and move them into the FUNCTION_DECL block.
1142         (machopic_select_rtx_section): Return the selected section rather than
1143         emitting assembly code.
1144         (machopic_asm_out_constructor, machopic_asm_out_destructor)
1145         (darwin_file_end): Use switch_to_section.
1146         * config/darwin.h: Use darwin-sections.def to declare sections.
1147         (INIT_SECTION_ASM_OP): Remove empty definition.
1148         (HAS_INIT_SECTION): Define this instead.
1149         (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1150         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1151         (TARGET_ASM_EH_FRAME_SECTION): Delete.
1152         (TARGET_ASM_INIT_SECTIONS): Define.
1153         * config/darwin-protos.h (darwin_init_sections): Declare.
1154         (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
1155         (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
1156         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1157         (constructor_section, destructor_section, mod_init_section): Delete.
1158         (mod_term_section): Delete.
1159         (darwin_exception_section, darwin_eh_frame_section): Delete.
1160         (machopic_select_section): Return a section.
1161         (machopic_select_rtx_section): Likewise.
1162         (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
1163         (const_section, const_coal_section, const_data_section): Delete.
1164         (const_data_coal_section, data_coal_section, cstring_section): Delete.
1165         (literal4_section, literal8_section, constructor_section): Delete.
1166         (mod_init_section, mod_term_section, destructor_section): Delete.
1167         (objc_class_section, objc_meta_class_section, objc_category_section)
1168         (objc_class_vars_section, objc_instance_vars_section): Delete.
1169         (objc_cls_meth_section, objc_inst_meth_section): Delete.
1170         (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
1171         (objc_selector_refs_section, objc_selector_fixup_section): Delete.
1172         (objc_symbols_section, objc_module_info_section): Delete.
1173         (objc_image_info_section, objc_protocol_section): Delete.
1174         (objc_string_object_section, objc_constant_string_object_section)
1175         (objc_class_names_section, objc_meth_var_names_section): Delete.
1176         (objc_meth_var_types_section, objc_cls_refs_section): Delete.
1177         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1178         (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
1179         (darwin_exception_section, darwin_eh_frame_section): Delete.
1180         * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
1181
1182         * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
1183         (frv_asm_out_destructor): Likewise.
1184         * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1185         (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
1186         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
1187         get_named_section.
1188         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1189         * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
1190         (data_section): Delete.
1191
1192         * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1193         (DRECTVE_SECTION_FUNCTION): Delete.
1194         (drectve_section): Redefine as a macro that sets in_section after
1195         emitting the directive.
1196         (SWITCH_TO_SECTION_FUNCTION): Delete.
1197         * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
1198         in_text_section with comparison between in_section and text_section.
1199         * config/i386/i386.c (x86_64_elf_select_section): Return the section
1200         rather than emitting assembly code.  Use get_named_section.
1201         (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
1202         get_named_section.
1203         (machopic_output_stub): Use switch_to_section.
1204         * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
1205         (nwld_named_section_asm_out_destructor): Use get_section and
1206         switch_to_section.
1207
1208         * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
1209         rather than emitting assembly code.
1210         (ia64_rwreloc_select_section): Likewise.
1211         (ia64_rwreloc_select_rtx_section): Likewise.
1212         * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
1213         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
1214         switch_to_section.
1215         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1216         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
1217
1218         * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
1219         section rather than emitting assembly code.
1220         (iq2000_select_section): Likewise.
1221         * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
1222         (sbss_section): Delete.
1223
1224         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
1225         and get_named_section.
1226         * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
1227
1228         * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
1229         (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
1230         (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
1231         (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
1232         in_section to NULL.
1233         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1234         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1235         global switch_to_section function instead of the old port-local one.
1236         * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1237         (SWITCH_SECTION_FUNCTION): Delete.
1238         * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
1239         (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
1240         (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
1241         (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
1242         in_section to NULL.
1243         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1244         global switch_to_section function instead of the old port-local one.
1245         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1246
1247         * config/mips/mips.c (mips_file_start): Update comment.
1248         (mips_output_aligned_bss): Use switch_to_section and get_named_section.
1249         (mips_output_aligned_decl_common): Use switch_to_section.
1250         (mips_select_rtx_section): Return the section rather than emitting
1251         assembly code.  Use get_named_section.
1252         (mips_function_rodata_section: Likewise get_section.
1253         (build_mips16_function_stub): Use switch_to_section.
1254         * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
1255         (SDATA_SECTION_ASM_OP): Delete.
1256         * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
1257         (EXTRA_SECTION_FUNCTIONS): Delete.
1258
1259         * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
1260         (mmix_asm_output_aligned_local): Use switch_to_section.
1261
1262         * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
1263         (som_one_only_readonly_data_section): New variables.
1264         (pa_output_function_epilogue): Set in_section to NULL instead of
1265         calling forget_section.
1266         (output_deferred_plabels): Use select_section.
1267         (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
1268         of calling forget_section.
1269         (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
1270         (pa_asm_output_aligned_local): Use select_section.
1271         (som_text_section_asm_op): Delete in favor of...
1272         (som_output_text_section_asm_op): ...this new function.
1273         (pa_som_asm_init_sections): New function.
1274         (pa_select_section): Return the section rather than emitting
1275         assembly code.
1276         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1277         (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
1278         (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
1279         (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
1280         * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
1281         (som_readonly_data_section, som_one_only_readonly_data_section)
1282         (som_one_only_data_section, forget_section): Delete.
1283         * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
1284         (TARGET_ASM_INIT_SECTIONS): Define.
1285         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1286
1287         * config/rs6000/rs6000.c (read_only_data_section): New variable.
1288         (private_data_section, read_only_private_data_section): New variables.
1289         (sdata2_section, toc_section): New variables.
1290         (rs6000_file_start): Use switch_to_section.
1291         (rs6000_assemble_integer): Use comparisons against in_section
1292         instead of calling in_toc_section and in_text_section.  Use
1293         unlikely_text_section_p.
1294         (rs6000_elf_output_toc_section_asm_op): New function, derived
1295         from the old rs6000/sysv4.h toc_section function.
1296         (rs6000_elf_asm_init_sections): New function.
1297         (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
1298         the section rather than emitting assembly code.
1299         (machopic_output_stub): Use switch_to_section.
1300         (toc_section): Delete dummy function.
1301         (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
1302         switch_to_section and get_section.
1303         (rs6000_xcoff_output_readonly_section_asm_op): New function.
1304         (rs6000_xcoff_output_readwrite_section_asm_op): New function.
1305         (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
1306         the old rs6000/xcoff.h toc_section function.
1307         (rs6000_xcoff_asm_init_sections): New function.
1308         (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
1309         the section rather than emitting assembly code.
1310         (rs6000_xcoff_file_start): Use switch_to_section.
1311         (rs6000_xcoff_file_end): Likewise.
1312         * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
1313         (sdata2_section, sbss_section, private_data_section): Delete.
1314         (read_only_data_section, read_only_private_data_section): Delete.
1315         * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1316         (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
1317         (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
1318         (FINI_SECTION_FUNCTION): Delete.
1319         (TARGET_ASM_INIT_SECTIONS): Define.
1320         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1321         * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1322         (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
1323         (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
1324         (READONLY_DATA_SECTION): Delete.
1325         (TARGET_ASM_INIT_SECTIONS): Define.
1326         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
1327         to NULL rather than no_section.
1328         (TARGET_ASM_EXCEPTION_SECTION): Delete.
1329
1330         * config/sh/sh.c (sh_file_start): Use switch_to_section.
1331
1332         * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
1333         (sparc_output_deferred_case_vectors): Likewise.  Remove argument
1334         from call to current_function_section.
1335
1336         * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
1337         (bss100_section): New variable.
1338         (xstormy16_asm_output_aligned_common): Use switch_to_section.
1339         (xstormy16_asm_init_sections): New function.
1340         (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
1341         switch_to_section and get_section.
1342         (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
1343         from calls to current_function_section.
1344         * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
1345         (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
1346         (TARGET_ASM_INIT_SECTIONS): Define.
1347         * config/stormy16/stormy16-protos.h (bss100_section): Delete.
1348
1349         * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1350         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
1351         (FINI_SECTION_FUNCTION): Delete.
1352
1353         * config/v850/v850.c: Include gt-v850.h.
1354         (rosdata_section, rozdata_section, tdata_section, zdata_section)
1355         (zbss_section): New variables.
1356         (v850_output_aligned_bss): Use switch_to_section.
1357         (v850_asm_init_sections): New function.
1358         (v850_select_section): Return the section rather than emitting
1359         assembly code.
1360         * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1361         (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
1362         (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
1363         (TARGET_ASM_INIT_SECTIONS): Define.
1364         * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
1365         (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
1366         (zbss_section): Delete.
1367
1368         * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1369
1370         * config/vx-common.h (vxworks_exception_section): Delete.
1371         (TARGET_ASM_EXCEPTION_SECTION): Delete.
1372
1373         * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
1374         section rather than emitting assembly code.
1375         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
1376         switch_to_section.
1377
1378         * Makefile.in (GTFILES): Add $(srcdir)/output.h.
1379         * coretypes.h (section): New union and typedef.
1380         * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
1381         from call to current_function_section.
1382         (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
1383         (dbxout_symbol_location): Use switch_to_section.
1384         * dwarf2out.c (named_section_eh_frame_section): Delete, moving
1385         most of the code into...
1386         (default_eh_frame_section): ...here.  Return a section.
1387         (collect2_eh_frame_section): Delete, moving most of the code into..
1388         (switch_to_eh_frame_section): ...this new function.
1389         (debug_info_section, debug_abbrev_section, debug_aranges_section)
1390         (debug_macinfo_section, debug_line_section, debug_loc_section)
1391         (debug_pubnames_section, debug_str_section, debug_ranges_section): New
1392         variables.
1393         (output_call_frame_info): Call switch_to_eh_frame_section instead of
1394         eh_frame_section.  Use switch_to_section and get_section.
1395         (dwarf2out_begin_prologue): Use switch_to_section.
1396         (AT_string_form): Check the flags in debug_str_section instead of
1397         DEBUG_STR_SECTION_FLAGS.
1398         (output_comp_unit): Use switch_to_section, get_section, and
1399         debug_info_section.
1400         (output_line_info, secname_for_decl): Use unlikely_text_section_p.
1401         (dwarf2out_begin_block): Use switch_to_section.  Remove argument
1402         from call to current_function_section.
1403         (dwarf2out_var_location): Use unlikely_text_section_p.
1404         (dwarf2out_source_line): Use switch_to_section.  Remove argument
1405         from call to current_function_section.
1406         (dwarf2out_start_source_file, dwarf2out_end_source_file)
1407         (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
1408         debug_macinfo_section.
1409         (dwarf2out_init): Initialize the new section variables.  Use them
1410         instead of calls to named_section_flags.  Use switch_to_section.
1411         (output_indirect_string): Use switch_to_section and debug_str_section.
1412         (dwarf2out_finish): Use switch_to_section and the new section
1413         variables.
1414         * except.c (default_exception_section): Return the section instead
1415         of emitting assembly code.
1416         (output_function_exception_table): Use the global exception_section
1417         variable instead of the target hook.  Use switch_to_section.  Remove
1418         argument from call to current_function_section.
1419         * final.c (HAVE_READONLY_DATA_SECTION): Delete.
1420         (shorten_branches): Use pointer comparisons to detect whether the
1421         text section is the same as readonly_data_section.
1422         (profile_function): Use switch_to_section.  Remove argument from
1423         call to current_function_section.
1424         (final_scan_insn): Likewise.  Update use of last_text_section.
1425         * gengtype.c (open_base_files): Add an include of output.h.
1426         * output.h (text_section, data_section, readonly_data_section)
1427         (ctors_section, dtors_section, bss_section, init_section)
1428         (fini_section, sdata_section): Turn into section pointers.
1429         (in_text_section, in_unlikely_text_section, exports_section)
1430         (drectve_section, named_section, mergeable_string_section)
1431         (last_text_section_name): Delete.
1432         (default_exception_section, default_eh_frame_section): Return sections.
1433         (SECTION_DECLARED, SECTION_NAMED): New macros.
1434         (SECTION_MACH_DEP): Bump value.
1435         (section_common, named_section, unnamed_section): New structures.
1436         (unnamed_section_callback): New typedef.
1437         (section): New union.
1438         (sbss_section, exception_section, eh_frame_section): New variables.
1439         (in_section, last_text_section): Turn into section pointers.
1440         (get_unnamed_section, get_section, get_named_section): New functions.
1441         (mergeable_constant_section, function_section): Return a section.
1442         (unlikely_text_section): Likewise.
1443         (current_function_section): Likewise.  Remove the decl argument.
1444         (unlikely_text_section_p, switch_to_section): New functions.
1445         (output_section_asm_op): New function.
1446         (set_named_section_flags, named_section_flags, named_section_real)
1447         (named_section_first_declaration): Delete.
1448         (default_select_section, default_elf_select_section): Return a section.
1449         (default_elf_select_section_1, default_function_rodata_section)
1450         (default_no_function_rodata_section, default_select_rtx_section)
1451         (default_elf_select_rtx_section): Likewise.
1452         * rtl.h (in_data_section): Delete.
1453         * sdbout.c (sdbout_one_type): Use switch_to_section.
1454         * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
1455         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
1456         (TARGET_ASM_EH_FRAME_SECTION): Poison.
1457         * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
1458         (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
1459         (TARGET_ASM_OUT): Update after above changes.
1460         * target.h (init_sections): New hook.
1461         (exception_section, eh_frame_section): Delete.
1462         (select_section, select_rtx_section, function_rodata_section): Return
1463         a section rather than emitting assembly code.
1464         * varasm.c (text_section, data_section, readonly_data_section)
1465         (ctors_section, dtors_section, bss_section, init_section)
1466         (fini_section): Turn into section pointers.
1467         (sdata_section, sbss_section, exception_section): New variables.
1468         (eh_frame_section): New variable.
1469         (in_section): Make global and turn into a section pointer.
1470         (last_text_section): Turn into a section pointer.
1471         (unnamed_sections): New variable.
1472         (in_named_name, last_text_section_name): Delete.
1473         (EXTRA_SECTION_FUNCTIONS): Delete.
1474         (in_named_entry): Delete.
1475         (section_htab): New variable, replacing...
1476         (in_named_htab): ...this deleted variable.
1477         (section_entry_eq, section_entry_hash): New functions, based on...
1478         (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
1479         (get_unnamed_section, get_section): New functions.
1480         (unlikely_text_section): Return a section instead of emitting
1481         assembly code.
1482         (in_text_section, in_unlikely_text_section, in_data_section): Delete.
1483         (get_named_section_flags, named_section_first_declaration): Delete.
1484         (unlikely_text_section_p): New function.
1485         (named_section_real, named_section): Delete.
1486         (get_named_section): New function.
1487         (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
1488         (function_section): Return a section rather than emitting
1489         assembly code.
1490         (current_function_section): Likewise.  Remove argument.  Use
1491         last_text_section if nonnull, otherwise use function_section.
1492         (default_function_rodata_section): Return a section rather than
1493         emitting assembly code.  Use get_section.
1494         (default_no_function_rodata_section): Return a section rather than
1495         emitting assembly code.
1496         (variable_section): Use switch_to_section and get_named_section.
1497         (mergeable_string_section): Return a section rather than emitting
1498         assembly code.  Use get_section.  Make static.  Don't take special
1499         countermeasures for empty strings.
1500         (mergeable_constant_section): Return a section rather than emitting
1501         assembly code.  Use get_section.
1502         (default_named_section_asm_out_destructor): Use switch_to_section
1503         and get_section.
1504         (default_dtor_section_asm_out_destructor): Use switch_to_section.
1505         (default_named_section_asm_out_constructor): Use switch_to_section
1506         and get_section.
1507         (default_ctor_section_asm_out_constructor): Use switch_to_section.
1508         (assemble_start_function): Likewise.  Set last_text_section to
1509         NULL rather than no_section.  Change the type of save_section.
1510         (assemble_zeros, assemble_variable): Use the section flags to detect
1511         whether or not a section is text.
1512         (assemble_static_space): Use switch_to_section.
1513         (assemble_trampoline_template): Likewise.
1514         (output_constant_def_contents): Use switch_to_section and
1515         get_named_section.
1516         (output_constant_pool_1): Use switch_to_section.  Use the section
1517         flags to see whether sections contain mergeable data.
1518         (init_varasm_once): Initialize section_htab instead of in_named_htab.
1519         Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
1520         (default_elf_asm_named_section): Use SECTION_DECLARED to detect
1521         whether a section has already been declared.
1522         (default_select_section, default_elf_select_section): Return a
1523         section rather than emitting assembly code.
1524         (default_elf_select_section_1): Likewise.  Use bss_section for
1525         SECCAT_BSS if nonnull.  Use get_named_section.
1526         (default_select_rtx_section): Return a section rather than
1527         emitting assembly code.
1528         (default_elf_select_rtx_section): Likewise.  Use get_named_section.
1529         (file_end_indicate_exec_stack): Use switch_to_section and get_section.
1530         (output_section_asm_op, switch_to_section): New functions.
1531         * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
1532         get_named_section.
1533
1534         * doc/tm.texi: Expand the introduction to the sections documentation.
1535         (TRAMPOLINE_SECTION): Document new interface.
1536         (SDATA_SECTION_ASM_OP): Document new macro.
1537         (READONLY_DATA_SECTION): Delete.
1538         (SDATA_SECTION_ASM_OP): Document new macro.
1539         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1540         (TARGET_ASM_INIT_SECTIONS): Document new hook.
1541         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
1542         (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
1543         (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
1544
1545 2005-12-07  Alan Modra  <amodra@bigpond.net.au>
1546
1547         * gcc.c (init_gcc_specs): Match braces inside conditionally
1548         compiled strings.
1549
1550 2005-12-06  Geoffrey Keating  <geoffk@apple.com>
1551
1552         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
1553
1554 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
1555
1556         PR C++/24138
1557         * tree.c (integer_all_onesp): Always return true if all bits on.
1558
1559         * testsuite/g++.dg/init/array0.C: New.
1560
1561 2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
1562
1563         * doc/md.texi: Adapt to implementation.
1564
1565 2005-12-06  Andreas Schwab  <schwab@suse.de>
1566
1567         * opts.c (decode_options): Fix typo in message.
1568
1569 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
1570
1571         PR other/13873
1572         * longlong.h: Merge PPC tests from upstream.
1573
1574 2005-12-06  Richard Guenther  <rguenther@suse.de>
1575
1576         * fold-const.c (fold_convert): Do not build and fold
1577         CONVERT_EXPR, but always use NOP_EXPR.
1578
1579 2005-12-06  Jan Beulich  <jbeulich@novell.com>
1580
1581         * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
1582         __builtin_ia32_paddq and __builtin_ia32_subq.
1583         (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
1584         __builtin_ia32_pshufw.
1585         * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
1586
1587 2005-12-05  James E Wilson  <wilson@specifix.com>
1588
1589         PR target/24934
1590         * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
1591         is set.
1592
1593 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
1594         
1595         * print-tree.c (print_node): Ditto.
1596         * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
1597         * tree-dump.c (dequeue_and_dump): Check for decl_common structure
1598         before accessing DECL_ARTIFICIAL. 
1599         Handle new tag tree codes.
1600         * tree-flow-inline.h (clear_call_clobbered): Update for tag
1601         changes.
1602         (unmodifiable_var_p): Ditto.
1603         * tree-flow.h (mem_tag_kind): Remove.
1604         (struct var_ann_d): Remove mem_tag_kind member.
1605         * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
1606         * tree-pretty-print.c (dump_generic_node): Handle memory tags.
1607         * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
1608         (group_aliases): Ditto.
1609         (setup_pointers_and_addressables): Ditto.
1610         (is_escape_site): Ditto.                                          
1611         (may_alias_p): Ditto.
1612         (create_tag_raw): New function.
1613         (create_memory_tag): Use it.
1614         (dump_alias_info): Update for tags.
1615         (may_be_aliased): Ditto.
1616         (add_type_alias): Ditto.
1617         (new_type_alias): Ditto.
1618         (create_sft): Ditto.
1619         (create_structure_vars): Ditto.
1620         * tree-ssa-ccp.c (get_default_value): Ditto.
1621         * tree-ssa-operands.c (get_expr_operands): Ditto.
1622         (add_stmt_operand): Ditto.
1623         (add_call_clobber_ops): Remove duplicated condition.
1624         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
1625         tags.
1626         * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
1627         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
1628         * tree.c (init_ttree): Update structures for new tree codes.
1629         (tree_code_size): Update sizes for new tree codes.
1630         (make_node_stat): Don't try to set common things on minimal
1631         structures.
1632         (tree_node_structure): Update for tags.
1633         (is_global_var): Ditto.
1634         * tree.def: Add new tree codes.
1635         * tree.h (MTAG_P): New macro.
1636         (TREE_MEMORY_TAG_CHECK): Ditto.
1637         (SSA_VAR_P): Update for tags.
1638         (struct tree_memory_tag): New structure.
1639         (MTAG_GLOBAL): New macro.
1640         (union tree_node): Add memory tag member.
1641         * treestruct.def (TS_MEMORY_TAG): New.
1642         
1643 2005-12-05  Dale Johannesen  <dalej@apple.com>
1644
1645         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
1646         what was approved (PR 24323).
1647
1648 2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1649
1650         * doc/c-tree.texi (Function Bodies): Remove description of
1651         RETURN_INIT.
1652
1653 2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
1654
1655         * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
1656         __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
1657         __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
1658         __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
1659         __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
1660         __divxc3): Document.
1661
1662 2005-12-05  Geoffrey Keating  <geoffk@apple.com>
1663
1664         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
1665         previous behaviour.
1666         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
1667         hook_bool_void_false.
1668         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
1669         * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
1670
1671         * config/darwin.c (machopic_select_section): It's not defined
1672         as weak if it's only marked as weak_import.
1673         
1674         * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
1675         Prototype.
1676
1677         * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
1678         A hidden weak object does bind locally.  Strong linkonce data
1679         counts like any other strong symbol for binding.
1680         (weak_finish_1): Don't specially handle weakrefs, they no longer
1681         arrive here.
1682         (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
1683         * c-common.c (handle_alias_attribute): Allow static aliases
1684         of variables.
1685         (handle_weakref_attribute): Don't call declare_weak on weakrefs.
1686         * gthr-dce.h: Make weakrefs static.
1687         * gthr-tpf.h: Likewise.
1688         * gthr-solaris.h: Likewise.
1689         * gthr-posix.h: Likewise.
1690         * gthr-posix95.h: Likewise.
1691         * config/darwin.c (darwin_encode_section_info): static weakref
1692         variables are not necessarily defined in this translation unit.
1693         * doc/extend.texi (Function Attributes): Mention that an alias
1694         attribute creates a definition for the thing it's attached to.
1695         Change the documentation for weakref to say that the thing
1696         it's attached to must be static.
1697
1698         * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
1699         we don't go into an infinite loop.
1700
1701 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
1702
1703         * config/rs6000/predicates.md (logical_const_operand): Split
1704         out of logical_operand.
1705         (logical_operand): Use it.
1706         * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
1707         logical_const_operand.
1708
1709 2005-12-05  Jan Beulich  <jbeulich@novell.com>
1710
1711         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
1712         and IX86_BUILTIN_CMPNESS.
1713         (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
1714         * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
1715         * config/i386/i386.md (movti_internal): Correct type attribute.
1716         Simplify mode attribute.
1717         (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
1718         Correct type attribute.
1719         (absxf2): Correct operator.
1720         * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
1721         movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
1722         * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
1723         mode attribute.
1724         (sse2_vmsqrtv2df2): Correct mode attribute.
1725
1726 2005-12-05  Jan Beulich  <jbeulich@novell.com>
1727
1728         * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
1729         16 bits. Provide insn pattern for this case.
1730
1731 2005-12-05  Jan Beulich  <jbeulich@novell.com>
1732
1733         * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
1734         result.
1735         (__popcountDI2): Likewise.
1736
1737 2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1738
1739         PR target/25166
1740         * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
1741         _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
1742         * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
1743         functions.
1744
1745 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
1746
1747         * c-typeck.c (null_pointer_constant_p): New function.
1748         (build_conditional_expr, build_c_cast, convert_for_assignment,
1749         build_binary_op): Use it.
1750
1751 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
1752
1753         * c-common.c (binary_op_error): Do not allow NOP_EXPR.
1754         (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
1755         CONVERT_EXPR.
1756         (check_function_arguments_recurse): Allow both NOP_EXPR and
1757         CONVERT_EXPR but check conversions preserve precision.
1758         * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
1759         but check conversions preserve precision.
1760         (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
1761         default case.
1762
1763 2005-12-04  Roger Sayle  <roger@eyesopen.com>
1764
1765         PR c/7776
1766         * common.opt (Wstring-literal-comparison): New command line option.
1767         * c-opts.c (c_common_handle_option): Set it with -Wall.
1768         * c-typeck.c (parser_build_binary_op): Issue warning if either
1769         operand of a comparison operator is a string literal, except for
1770         testing equality or inequality against NULL.
1771
1772         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
1773
1774 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
1775
1776         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
1777         of building a NOP_EXPR.
1778         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
1779         NOP_EXPR.
1780         * c-convert.c (convert): Use fold_convert instead of building
1781         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
1782         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
1783         #if 0 code.
1784         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
1785         NOP_EXPR the same as CONVERT_EXPR.
1786         * c-typeck.c (build_function_call): Use fold_convert instead of
1787         building a NOP_EXPR directly.
1788         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
1789
1790 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
1791
1792         PR rtl-optimization/25197
1793         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
1794         have a reg.
1795
1796 2005-12-02  Stuart Hastings  <stuart@apple.com>
1797
1798         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
1799         warning.
1800
1801 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
1802
1803         * c-typeck.c (default_function_array_conversion,
1804         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
1805         (build_conditional_expr): Apply integer_zerop to orig_op1 and
1806         orig_op2.  Don't check them for NOP_EXPR.
1807         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
1808         around integer zero.
1809
1810 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
1811
1812         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
1813         toc_save_offset, toc_size, lr_size.
1814         (rs6000_stack_info): Use memset rather than bss struct copy to init.
1815         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
1816         Adjust for removal of unused rs6000_stack_t fields.
1817         (debug_stack_info): Adjust.
1818         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
1819         first, and don't bother checking for set/inc of lr on sibcalls.
1820         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
1821
1822 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
1823
1824         PR target/25199
1825         * config/i386/i386.md (movqi_1): Only force imovx for alternative
1826         5 if operand 1 is not aligned.  Undo previous constraint change.
1827         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
1828
1829 2005-12-02  Richard Guenther  <rguenther@suse.de>
1830
1831         * tree.h (build): Remove prototype.
1832         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
1833         * tree.c (build): Remove.
1834         (build0_stat): Update comment.
1835
1836 2005-12-02  Richard Guenther  <rguenther@suse.de>
1837
1838         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
1839         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
1840         Likewise.
1841         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
1842         maybe_fold_offset_to_component_ref): Likewise.
1843         * tree-ssa-dom.c (thread_across_edge,
1844         simplify_rhs_and_lookup_avail_expr,
1845         find_equivalent_equality_comparison, record_equivalences_from_stmt):
1846         Likewise.
1847         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
1848         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
1849         lower_try_finally_switch): Likewise.
1850         * tree-if-conv.c (add_to_dst_predicate_list,
1851         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
1852         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
1853         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
1854         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
1855         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
1856         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
1857         gimplify_init_ctor_eval, gimplify_init_constructor,
1858         gimplify_variable_sized_compare, gimplify_boolean_expr,
1859         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
1860         gimplify_expr, gimplify_body, gimplify_function_tree,
1861         force_gimple_operand): Likewise.
1862         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
1863         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
1864         mx_register_decls): Likewise.
1865         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
1866         get_frame_field, finalize_nesting_tree_1): Likewise.
1867         * tree-inline.c (setup_one_parameter): Likewise.
1868         * tree-vect-transform.c (vectorizable_condition): Likewise.
1869         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
1870         Likewise.
1871         * tree-profile.c (tree_gen_edge_profiler): Likewise.
1872         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
1873         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
1874         * tree-chrec.h (build_polynomial_chrec): Likewise.
1875
1876 2005-12-02  Richard Guenther  <rguenther@suse.de>
1877
1878         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
1879         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
1880         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
1881         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1882         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1883         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1884         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1885         Likewise.
1886         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
1887         sh_adjust_unroll_max): Likewise.
1888         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1889         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1890         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
1891         Likewise.
1892         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1893         Likewise.
1894         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
1895         Likewise.
1896
1897 2005-12-02  Richard Guenther  <rguenther@suse.de>
1898
1899         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
1900         simplify_cond_using_ranges): Use buildN instead of build.
1901         * tree-tailcall.c (adjust_accumulator_values,
1902         adjust_return_value): Likewise.
1903         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
1904         generate_element_copy, generate_element_zero,
1905         generate_one_element_init): Likewise.
1906         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
1907         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
1908         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
1909         perfect_nestify): Likewise.
1910
1911 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1912
1913         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
1914
1915 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1916
1917         * ggc.h (GGC_RESIZEVEC): New.
1918
1919 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1920
1921         * gcc.c (execute): Improve readability.
1922
1923 2005-12-02  Richard Guenther  <rguenther@suse.de>
1924
1925         * tree-cfg.c (mark_used_vars): New function.
1926         (dump_function_to_file): Dump only used VAR_DECLs.
1927
1928 2005-12-02  Richard Guenther  <rguenther@suse.de>
1929
1930         * convert.c (convert_to_integer): Fix compare for nonpositive
1931         constant to use tree_int_cst_sgn <= 0.
1932
1933 2005-12-02  Richard Guenther  <rguenther@suse.de>
1934
1935         * convert.c (convert_to_integer): Use fold_convert instead
1936         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
1937         instead of comparing against 0.  Use build_int_cst instead
1938         of converting integer_zero_node.
1939
1940 2005-12-02  Richard Guenther  <rguenther@suse.de>
1941
1942         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
1943         and RROTATE_EXPR.
1944  
1945 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
1946
1947         PR target/21017
1948         * combine.c (simplify_logical <IOR>): Simplify more patterns to
1949         rotates.
1950
1951 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
1952
1953         PR middle-end/25176
1954         * function.c (expand_function_end): Emit blockage for unwinder
1955         after return label.
1956
1957 2005-12-01  Roger Sayle  <roger@eyesopen.com>
1958
1959         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
1960         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
1961         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
1962         integer constant comparisons.
1963
1964 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
1965             Janis Johnson  <janis187@us.ibm.com>
1966             David Edelsohn  <dje@watson.ibm.com>
1967             Ben Elliston  <bje@au.ibm.com>
1968
1969         * dfp.h, dfp.c: New files.
1970         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
1971         (DECNUM_H): Likewise.
1972         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
1973         (INCLUDES): Append $(DECNUMINC).
1974         (OBJS-common): Add dfp.o.
1975         (dfp.o): New rule.
1976         * real.h (EXP_BITS): Pinch one bit to ..
1977         (struct real_value): Add decimal field.
1978         (real_format): Change table size, update documentation.
1979         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
1980         (real_from_string3): Declare.
1981         (decimal_single_format): Declare.
1982         (decimal_double_format): Declare.
1983         (decimal_quad_format): Declare.
1984         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
1985         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
1986         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
1987         * real.c: Include dfp.h.
1988         (normalize): Early return for decimal floats.
1989         (do_add): Zero decimal field.
1990         (do_compare): Call do_decimal_compare for decimal floats.
1991         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
1992         (real_arithmetic): Call decimal_real_arithmetic for decimal
1993         floating point operands.
1994         (real_identical): If a and b are of differing radix, return false.
1995         (real_to_integer): Call decimal_real_to_integer if the value is a
1996         decimal float.
1997         (real_to_integer2): Likewise, call decimal_real_to_integer2.
1998         (real_to_decimal): Likewise, call decimal_real_to_decimal.
1999         (real_to_hexadecimal): Place "N/A" in the return string for
2000         decimal float.
2001         (real_from_string3): New variant, given a mode.
2002         (real_maxval): Use decimal_real_maxval for decimal floats.
2003         (round_for_format): Use decimal_round_for_format for decimals.
2004         (real_convert): Use decimal_real_convert where appropriate.
2005         (significand_size): Handle base 10.
2006         (encode_decimal_single, decode_decimal_single,
2007         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
2008         decode_decimal_quad): New functions.
2009         (decimal_single_format): New.
2010         (decimal_double_format): New.
2011         (decimal_quad_format): New.
2012         * machmode.def: Add SD, DD and TD decimal floating point modes.
2013         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
2014         Include MODE_DECIMAL_FLOAT.
2015         (DECIMAL_FLOAT_MODE_P): New.
2016         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
2017         * genmodes.c (struct mode_data): Add counter field.
2018         (struct mode_data): Update comment for format.
2019         (blank_mode): Initialise counter field.
2020         (new_mode): Increment counter field for each mode defined.
2021         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
2022         using a format.
2023         (make_complex_modes): Handle modes containing `D'.
2024         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
2025         (make_decimal_float_mode): New.
2026         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2027         (cmp_modes): Compare counter field if other characteristics
2028         similar.
2029         (emit_real_format_for_mode): Support formats for decimal floats.
2030         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2031         Document MODE_DECIMAL_FLOAT.
2032
2033 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2034
2035         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2036         Delete dead code.
2037
2038 2005-12-01  Richard Henderson  <rth@redhat.com>
2039
2040         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2041
2042 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2043
2044         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2045
2046         * config/pa/pa.c (pa_init_builtins): If we detect
2047         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2048         putc_unlocked.
2049
2050 2005-12-01  Richard Guenther  <rguenther@suse.de>
2051
2052         * fold-const.c (fold_binary): Use fold_build2, not
2053         fold (build (...)).
2054
2055 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
2056
2057         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2058
2059         * vec.h (VEC_block_remove): New.
2060
2061 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2062
2063         PR c/13384
2064         * c-common.c (lvalue_error): Fix wording.
2065
2066 2005-12-01  Richard Guenther  <rguenther@suse.de>
2067
2068         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2069         thinko in last patch.
2070
2071 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
2072
2073         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2074         than -flat_namespace.
2075
2076 2005-12-01  Ben Elliston  <bje@au.ibm.com>
2077
2078         * mklibgcc.in: Parameterise the script to build soft float
2079         functions by iterating over each type, rather than cloning the
2080         code for each type.
2081
2082 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2083
2084         PR middle-end/25158
2085         * builtins.c (fold_builtin_fputs): Defer check for missing
2086         replacement functions.
2087
2088 2005-11-30  Kean Johnston  <jkj@sco.com>
2089
2090         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2091         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2092
2093 2005-11-30  Richard Guenther  <rguenther@suse.de>
2094
2095         PR tree-optimization/22501
2096         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2097         function split out from ...
2098         (forward_propagate_addr_expr): ... here.  Use it to propagate
2099         ADDR_EXPRs to all uses.
2100
2101 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2102
2103         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2104         * builtins.c (expand_builtin_mathfn): Use them.
2105         (expand_builtin_mathfn_2): Likewise.
2106         (expand_builtin_mathfn_3): Likewise.
2107         (expand_builtin_int_roundingfn): Likewise.
2108         (expand_builtin): Likewise.
2109         (integer_valued_real_p): Likewise.
2110         (fold_builtin_int_roundingfn): Likewise.
2111         (fold_builtin_bitop): Likewise.
2112         (fold_builtin_logarithm): Likewise.
2113         (fold_builtin_1): Likewise.
2114         * convert.c (convert_to_integer): Likewise.
2115         * fold-const.c (negate_mathfn_p): Likewise.
2116         (tree_expr_nonnegative_p): Likewise.
2117
2118 2005-11-30  Dale Johannesen  <dalej@apple.com>
2119             Andrew Pinski  <pinskia@physics.uc.edu>
2120
2121         * combine.c (find_split_point):  Sign extend bitmask
2122         when changing bitfield assignment to IOR of AND.
2123
2124 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2125
2126         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
2127         clobber to scratch reg.
2128         (*decrement_and_branch_until_zero_no_clobber): Remove.
2129         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
2130         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
2131         * config/ms1/ms1.opt (mmul): Remove.
2132         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
2133         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
2134
2135 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2136             Bernd Schmidt  <bernd.schmidt@analog.com>
2137
2138         * pa/predicates.md (symbolic_operand): Add comment.
2139         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
2140         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
2141         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
2142         (pa_secondary_reload_class): Delete.
2143         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
2144         and pa_secondary_reload_class.  Reorder some checks.  Update inline
2145         copy of symbolic operand.
2146         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
2147
2148 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2149
2150         * loop-doloop.c (add_test): Only add jump notes if we did emit a
2151         jump.
2152
2153 2005-11-30  Jeff Law  <law@redhat.com>
2154
2155         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
2156         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2157
2158 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
2159
2160         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
2161         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
2162         (ia64_expand_move): Adjust caller.
2163
2164         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
2165         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
2166         negate VAL.
2167
2168 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
2169
2170         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
2171         Always produce an output if we can remove NEGs or canonicalize
2172         (minus (minus ...)) expressions.  Provide a fast path for the
2173         two-operand case.
2174         (simplify_gen_binary): Do not call simplify_plus_minus.
2175         (simplify_binary_operation_1): Reassociate at the end of the
2176         function.
2177
2178 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
2179
2180         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
2181         moves and unpack to speed up.
2182
2183 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
2184
2185         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
2186         argument, they are always sparc_compare_op0 and sparc_compare_op1.
2187         (gen_v9_scc): Update callers.
2188         * config/sparc/sparc.md: Likewise.
2189         * config/sparc/sparc-protos.h: Update extern declaration.
2190
2191         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
2192
2193 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2194
2195         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
2196         the if.
2197
2198 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2199
2200         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
2201         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
2202         (negate_expr): Here.
2203
2204 2005-11-29  Ben Elliston  <bje@au.ibm.com>
2205
2206         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
2207         Fix typo in comment.
2208
2209 2005-11-29  Ben Elliston  <bje@au.ibm.com>
2210
2211         * Makefile.in (clean-target): Depend on clean-target-libgcc.
2212         (clean-target-libgcc): Import rule from the top-level Makefile.in.
2213
2214 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2215
2216         PR middle-end/20109
2217         PR middle-end/25120
2218         * builtins.c (init_target_chars): New.
2219         (expand_builtin_printf, expand_builtin_fprintf,
2220         expand_builtin_sprintf, fold_builtin_sprintf,
2221         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
2222         fold_builtin_snprintf_chk, fold_builtin_printf,
2223         fold_builtin_fprintf): Check for matching format strings using
2224         the target charset.
2225
2226 2005-11-29  Paul Brook  <paul@codesourcery.com>
2227
2228         * config.gcc: Do not use fixproto on m68k-elf.
2229
2230 2005-11-28  Roger Sayle  <roger@eyesopen.com>
2231
2232         * expmed.c (div_cost): Replace with...
2233         (sdiv_cost, udiv_cost): New.
2234         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
2235         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
2236         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
2237         (expand_divmod): Replace use of div_cost with either sdiv_cost
2238         or udiv_cost depending upon the signedness of the operation.
2239
2240 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
2241
2242         PR libfortran/24991
2243         * config/darwin.c (machopic_indirection_name,
2244         machopic_output_indirection): Follow transparent alias chain.
2245
2246 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
2247
2248         * varasm.c (ultimate_transparent_alias_target): Add comment.
2249
2250 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
2251
2252         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
2253         SET_SRC instead of XEXP where appropriate.
2254
2255 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
2256
2257         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
2258         __builtin_expect.
2259
2260 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
2261
2262         * config/fp-bit.h (LSHIFT): Take shift count parameter.
2263         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
2264         bit at a time.
2265
2266 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
2267
2268         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
2269         secondary_input_reload_class, made static.  Adapt to new
2270         infrastructure.
2271         (secondary_output_reload_class): Delete.
2272         (TARGET_SECONDARY_RELOAD): New macro.
2273         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
2274         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2275
2276 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
2277
2278         PR c++/21166
2279         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
2280         when its natural alignment is > BITS_PER_UNIT.
2281         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
2282         * c-common.c (handle_packed_attribute): Ignore packing on a field
2283         whose type is naturally char aligned.
2284
2285 2005-11-28  Richard Guenther  <rguenther@suse.de>
2286
2287         * c-common.c (strict_aliasing_warning): Handle all
2288         component-ref like accesses.
2289
2290 2005-11-28  Roger Sayle  <roger@eyesopen.com>
2291             Uros Bizjak  <uros@kss-loka.si>
2292
2293         PR middle-end/20219
2294         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
2295         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
2296         when flag_unsafe_math_optimizations is set and
2297         we don't care about NaNs or Infinities.
2298
2299         Move x/expN(y) and x/pow(y,z) transformation into common
2300         flag_unsafe_math_optimizations section.
2301
2302 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
2303
2304         * gcc.c (main): Change type of argv to "char **".
2305
2306 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
2307
2308         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
2309         small data sections.
2310         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
2311         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
2312         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
2313         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
2314         output locals to sbss if !rs6000_elf_in_small_data_p.
2315         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
2316
2317 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
2318
2319         PR target/24997
2320         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
2321         generated by reload.
2322         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
2323         indexed_or_indirect_address.
2324         (indexed_or_indirect_address): Don't test for base reg.  Call
2325         address_operand last.  Make it a special predicate.
2326
2327 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
2328
2329         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
2330
2331 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
2332
2333         PR middle-end/24575
2334         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
2335         is undefined.
2336         (negate_expr): Likewise.
2337
2338 2005-11-27  Andreas Schwab  <schwab@suse.de>
2339
2340         * config/m68k/m68k.c: Reindent and fix whitespace, remove
2341         redundant parens.
2342
2343 2005-11-27  Steven Bosscher  <stevenb@suse.de>
2344
2345         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
2346         has EH predecessor edges.
2347
2348 2005-11-26  Eric Christopher  <echristo@apple.com>
2349
2350         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
2351         register stalls by zero extending to the full register.
2352
2353 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
2354
2355         * config/floatunsisf.c, config/floatunsidf.c,
2356         config/floatunsixf.c, config/floatunsitf.c: New files.
2357         * config/ia64/t-hpux: Add floatunsitf.c.
2358         * config/ia64/ia64.c (ia64_init_libfuncs): Use
2359         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
2360
2361 2005-11-26  Richard Henderson  <rth@redhat.com>
2362
2363         * c-lex.c (pragma_lex): Rename from c_lex.
2364         * c-pch.c: Update for pragma_lex rename.
2365         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
2366         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
2367         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
2368         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
2369         * doc/tm.texi: Likewise.
2370
2371 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
2372
2373         PR middle-end/23669
2374         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
2375         when overflow is undefined.
2376
2377 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
2378
2379         * doc/md.texi (Insn Canonicalizations): Refer to the
2380         function commutative_operand_precedence for further rules.
2381
2382 2005-11-25  Roger Sayle  <roger@eyesopen.com>
2383
2384         PR middle-end/21309
2385         * expmed.c (choose_mult_variant): Return immediately when mult_cost
2386         is less than zero.  Limit mult_cost to a reasonable upper bound for
2387         the synthetic multiplication sequence.
2388
2389 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2390
2391         PR middle-end/25022
2392         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
2393         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
2394         Lookup the explicit replacement functions for any unlocked
2395         stdio builtin transformations.
2396
2397 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
2398
2399         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
2400         earlyclobber.
2401         * targhooks.c (default_secondary_reload): Don't require operand 2
2402         for an input reload to be earlyclobber.
2403
2404 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2405
2406         * fold-const.c (negate_mathfn_p): Fix comment and add support
2407         for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
2408         BUILT_IN_ATANH.
2409
2410 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
2411
2412         PR middle-end/24998
2413         * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
2414         _Q_ulltoq for unsigned conversions from SImode and DImode to
2415         TFmode.
2416
2417 2005-11-25  Alan Modra  <amodra@bigpond.net.au>
2418
2419         * config/rs6000/ppc64-fp.c (__floatunditf): New function.
2420         (__floatundidf, __floatundisf): Likewise.
2421
2422 2005-11-25  David Edelsohn  <edelsohn@gnu.org>
2423
2424         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
2425         (rs6000_override_options): Remove initialization of
2426         rs6000_sr_alias_set.
2427         (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
2428         (rs6000_emit_stack_tie): Same.
2429         (emit_frame_save): Same.
2430         (gen_frame_mem_offset): Same.
2431         (rs6000_emit_prologue): Same.
2432         (rs6000_emit_epilogue): Same.
2433
2434 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
2435
2436         PR middle-end/24989
2437         * fold-const.c (fold_build): Convert bool_var != 1 and
2438         bool_var == 0 to !bool_var.
2439
2440 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
2441
2442         PR middle-end/24990
2443         * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
2444         for C being INTEGER_CST.  Likewise for !=.
2445
2446 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
2447
2448         PR middle-end/24998
2449         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
2450         unsigned conversions from SImode to TFmode.
2451
2452 2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2453
2454         * expr.c (expand_expr_real_1): Fix error in last change.
2455
2456 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
2457
2458         * caller-save.c: (this_insn_sets): Move into:
2459         (save_call_clobbered_regs).
2460         (mark_set_regs): Get this_insn_sets from data.
2461
2462         (save_call_clobbered_regs): Take sets of the return value by
2463         sibcalls into account.
2464
2465 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
2466         PR target/21623:
2467
2468         * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
2469         SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
2470         (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
2471         (memory_move_secondary_cost, init_reg_autoinc): Remove
2472         SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
2473         Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
2474         secondary_reload_class call.
2475         (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
2476         callers.
2477         * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
2478         (push_secondary_reload): Use secondary_reload target hook.
2479         (secondary_reload_class, scratch_reload_class): New functions.
2480         (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
2481         SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
2482         SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
2483         * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
2484         (secondary_reload_class, scratch_reload_class): Declare.
2485         * reload1.c: Include target.h.
2486         (reload_adjust_reg_for_temp): New function.
2487         (reload_adjust_reg_for_icode): Likewise.
2488         (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
2489         Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
2490         call.
2491         (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
2492         for inheritance.  Support case when both secondary & tertiary reloads
2493         are for intermediate registers.
2494         (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
2495         with secondary_reload_class call.  Support case when both secondary
2496         & tertiary reloads are for intermediate registers.
2497         * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
2498         (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
2499         * target.h (secondary_reload_info): New struct / typedef.
2500         (struct gcc_target): New member secondary_reload.
2501         * targhooks.c Include reload.h, optabs.h and recog.h.
2502         (default_secondary_reload): New function.
2503         * targhooks.h (default_secondary_reload): Declare.
2504         * doc/tm.texi: Document secondary_reload target hook.  Update
2505         description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
2506         * doc/md.texi: Likewise.
2507
2508         * sh-protos.h (sh_secondary_reload): Declare.
2509         * sh.c (TARGET_SECONDARY_RELOAD): Override.
2510         (sh_secondary_reload): New function.
2511         * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
2512         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2513         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2514         (HAVE_SECONDARY_RELOADS): Define.
2515         * sh.md (reload_indf): Rename to:
2516         (reload_indf__frn).
2517         (reload_outdf): Rename to:
2518         (reload_outdf__RnFRm).
2519         (reload_insf): Rename to:
2520         (reload_insf__frn).
2521         (reload_insi): Rename to:
2522         (reload_insi__i_fpul).
2523
2524 2005-11-24  Uros Bizjak  <uros@kss-loka.si>
2525
2526         * configure.ac: Require at least texinfo 4.4.
2527         * configure: Regenerate.
2528
2529         * doc/install.texi (Tools/packages necessary for building GCC):
2530         Update required version of texinfo to at least 4.4.
2531         (Installing GCC: Building): Update required version of texinfo
2532         to at least 4.4.
2533         (Installing GCC: Final installation): Update required version
2534         of texi2dvi to at least 4.4.
2535         (Host/target specific installation notes for GCC): Update required
2536         version of texinfo to at least 4.4.
2537
2538 2005-11-24  Richard Guenther  <rguenther@suse.de>
2539         Dirk Mueller <dmueller@suse.de>
2540
2541         PR c++/14024
2542         * c-common.h (strict_aliasing_warning): Declare.
2543         * c-common.c (strict_aliasing_warning): New function,
2544         split out from ...
2545         * c-typeck.c (build_c_cast): ... here.
2546
2547 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
2548
2549         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2550         to order operands.
2551         (swap_commutative_operands_with_target): New.
2552
2553 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
2554
2555         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
2556         also when doing PRE, rather than only for global CPROP.
2557
2558 2005-11-24  Ben Elliston  <bje@au.ibm.com>
2559
2560         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
2561         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
2562         formatting.
2563         (expand_twoval_unop): Likewise.
2564         (widen_clz): Likewise.
2565         (expand_parity): Likewise.
2566         (expand_unop): Likewise.
2567         (emit_cmp_and_jmp_insn_1): Likewise.
2568         (prepare_float_lib_cmp): Likewise.
2569
2570 2005-11-24  Ben Elliston  <bje@au.ibm.com>
2571
2572         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
2573         Remove unused `class' variable.
2574
2575 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2576
2577         PR c++/21667
2578         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
2579         C/C++ diagnostic function warn_array_subscript_with_type_char.
2580         * c-common.h (warn_array_subscript_with_type_char): Declare.
2581         * c-common.c (warn_array_subscript_with_type_char): Define.
2582
2583 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2584
2585         PR c/21668
2586         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
2587         compiling at the intersection of C and C++.
2588
2589 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
2590
2591         * doc/invoke.texi: For man pages, include gcc-vers.texi.
2592         List @file in the option summary.  Include the libiberty
2593         documentation for @file.
2594         * gcc.c (main): Call expandargv.
2595         * Makefile.in (gcc-vers.texi): Define srcdir.
2596
2597 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
2598
2599         * passes.c (init_optimization_passes): Document
2600         sequencing of passes.
2601
2602 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
2603
2604         * config/m68k/predicates.md (pcrel_address, extend_operator,
2605         post_inc_operand, pre_dec_operand): Remove redundant
2606         conditionals.
2607         (const_uint32_operand, const_sint32_operand): Use gcc_assert
2608         instead of abort.
2609         (valid_dbcc_comparison_p): Rewrite in the lisp style.
2610
2611 2005-11-23  Ben Elliston  <bje@au.ibm.com>
2612
2613         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
2614
2615 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
2616
2617         Preparatory work for PR target/21623:
2618         * alpha.c (secondary_reload_class): Rename to:
2619         (alpha_secondary_reload_class).
2620         * alpha.h, alpha-protos.h: Likewise.
2621         * mn10300.c (secondary_reload_class): Rename to:
2622         (mn10300_secondary_reload_class).
2623         * mn10300.h, mn10300-protos.h: Likewise.
2624         * pa.c (secondary_reload_class): Rename to:
2625         (pa_secondary_reload_class).
2626         * pa.h, pa-protos.h: Likewise.
2627         * rs6000.c (secondary_reload_class): Rename to:
2628         rs6000_secondary_reload_class.
2629         * rs6000.h, rs6000-protos.h: Likewise.
2630
2631 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
2632
2633         PR middle-end/22561
2634         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
2635
2636 2005-11-22  Ian Lance Taylor  <ian@airs.com>
2637
2638         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
2639         a mode_class.
2640         (prepare_cmp_insn): Likewise.
2641
2642 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
2643
2644         PR target/23435
2645         * m68k.md (zero_extendsidi2): Force operands[1] to a register
2646         if both operands[0] and operands[1] are memory.
2647
2648 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2649
2650         PR middle-end/23606
2651         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
2652         COMPARISON_CLASS_P and an integral types create create a new
2653         expression with the new type and fold that.
2654
2655 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2656
2657         PR target/24988
2658         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
2659         to SUBTARGET_OS_CPP_BUILTINS.
2660
2661 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
2662
2663         * arm.c (emit_set_insn): New function.
2664         (arm_split_constant): Call it.
2665         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
2666         (arm_legitimize_address): Likewise.  Use plus_constant.
2667         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
2668         (thumb_expand_prologue): Likewise.
2669         (arm_gen_load_multiple): Use VOIDmode in SET.
2670         (arm_gen_store_multiple): Likewise.
2671         (vfp_emit_fstmx): Likewise.  Use plus_constant.
2672         (emit_multi_reg_push): Likewise.
2673         (emit_sfm): Use plus_constant.
2674
2675 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
2676
2677         PR target/24954
2678         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
2679         typo last change.
2680
2681 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
2682
2683         PR middle-end/24950
2684         * expmed.c (store_bit_field): Don't attempt to insv a field
2685         larger than the reg.
2686
2687 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
2688
2689         PR target/24954
2690         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
2691         explicit sign extension, not a (char) cast.
2692
2693 2005-11-22  Ben Elliston  <bje@au.ibm.com>
2694
2695         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
2696         GET_MODE_CLASS (x) == MODE_FLOAT.
2697         * config/i386/i386.c: Likewise.
2698         * config/rs6000/xcoff.h: Likewise.
2699         * config/rs6000/linux64.h: Likewise.
2700         * config/rs6000/rs6000.c: Likewise.
2701         * config/rs6000/rs6000.h: Likewise.
2702         * config/rs6000/predicates.md: Likewise.
2703         * config/rs6000/sysv4.h: Likewise.
2704
2705 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2706
2707         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
2708         flag_pic is set.
2709
2710         * config/alpha/freebsd.h, config/alpha/linux.h,
2711         config/arm/linux-elf.h, config/bfin/bfin.h,
2712         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
2713         config/i386/beos-elf.h, config/i386/gnu.h,
2714         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
2715         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
2716         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
2717         config/rs6000/linux64.h, config/rs6000/sysv4.h,
2718         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
2719         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
2720         config/sparc/linux.h, config/sparc/linux64.h,
2721         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
2722
2723         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
2724         are both defined when either flag -fpic or -fPIC are used.
2725
2726 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
2727
2728         * config/fp-bit.c (clzusi): New function.
2729         (si_to_float, usi_to_float): Use it to compute proper shift.
2730         (usi_to_float): Preserve guard bits when shifting right.
2731         * libgcc-std.ver (GCC_4.2.0): New version.
2732         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
2733         __floatundisf): New functions.
2734         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
2735         __floatundisf): Declare.
2736         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
2737         _floatundixf, and _floatunditf.
2738         * optabs.c (expand_float): If target does not define a pattern for
2739         signed or unsigned conversion, use an unsigned libcall instead of
2740         a signed one.
2741         (init_optabs): Initialize ufloat_optab.
2742
2743 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
2744
2745         * config/rs6000/rs6000.opt (mmulhw): New option.
2746         * doc/invoke.texi (-mmulhw): Document.
2747         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
2748         for 405 and 440.
2749         * config/rs6000/rs6000.md: Add half-word multiply and
2750         multiply-accumulate instructions for 405 and 440.
2751
2752 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
2753
2754         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
2755         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
2756         default now includes a linker group which makes the RTEMS one nest.
2757
2758 2005-11-22  Ben Elliston  <bje@au.ibm.com>
2759
2760         * cse.c (fold_rtx): Typo fix.
2761         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
2762
2763 2005-11-21  Richard Henderson  <rth@redhat.com>
2764
2765         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
2766         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
2767
2768         * c-tree.h (lookup_name): Move declaration ...
2769         * c-common.h (lookup_name): ... here.
2770         * config/darwin-c.c: Include c-common.h.
2771         * config/t-darwin: Update dependencies.
2772
2773 2005-11-22  Ben Elliston  <bje@au.ibm.com>
2774
2775         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
2776         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
2777         * genopinit.c (gen_insn): Likewise.
2778         * reload.c (find_equiv_reg): Likewise.
2779         * loop.c (load_mems): Likewise.
2780         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
2781         * cse.c (find_comparison_args, fold_rtx): Likewise.
2782         * dwarf2out.c (add_const_value_attribute): Likewise.
2783         * expr.c (convert_move): Likewise.
2784         * recog.c (general_operand, register_operand): Likewise.
2785         * reg-stack.c (replace_reg): Likewise.
2786         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
2787         * c-common.c (handle_vector_size_attribute): Likewise.
2788         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2789         (simplify_binary_operation_1): Likewise.
2790         (simplify_const_binary_operation): Likewise.
2791         (simplify_relational_operation): Likewise.
2792         (simplify_const_relational_operation): Likewise.
2793         (simplify_immed_subreg): Likewise.
2794         * emit-rtl.c (gen_lowpart_common): Likewise.
2795         * expmed.c (expand_mult): Likewise.
2796         * stor-layout.c (layout_type): Likewise.
2797
2798 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
2799
2800         PR target/24951
2801         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
2802         cst2 only for SPE vectors.
2803
2804 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
2805
2806         PR target/24953
2807         * config/rs6000/predicates.md (vrsave_operation): Check
2808         UNSPEC_VOLATILE value.
2809
2810 2005-11-21  Jan Hubicka  <jh@suse.cz>
2811
2812         PR tree-optimization/24653
2813         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
2814
2815 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
2816
2817         * config/i386/predicates.md (ax_reg_operand): New predicate.
2818         (memory_displacement_only_operand): New predicate.
2819         * config/i386/i386.md ("modrm" attribute): Return 0 if one
2820         operand is AX register and the other operand is memory operand
2821         with displacement only.
2822
2823 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
2824
2825         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
2826         if we don't care about NaNs or Infinities.
2827
2828 2005-11-20  Ian Lance Taylor  <ian@airs.com>
2829
2830         PR rtl-optimization/24883
2831         * combine.c (combinable_i3pat): When checking whether the
2832         destination of i3 is used in i3, consider paradoxical subregs.
2833
2834 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
2835
2836         PR middle-end/20583
2837         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
2838
2839 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
2840
2841         * combine.c (try_combine): Do not run subst on i1src and i2src in
2842         the case of generating a PARALLEL for a comparison.
2843
2844 2005-11-20  Richard Henderson  <rth@redhat.com>
2845
2846         PR 24931
2847         * tree-sra.c (struct sra_elt): Add all_no_warning.
2848         (struct sra_walk_fns) <use>: Add use_all argument.
2849         (sra_walk_expr): Pass it.
2850         (sra_walk_modify_expr): Likewise.
2851         (scalarize_ldst): Likewise.
2852         (scan_use): Update for new argument.
2853         (mark_no_warning): New.
2854         (scalarize_use): Use it.
2855
2856 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
2857
2858         * expr.c (expand_expr_real): Use usmul_optab for widening
2859         signed * unsigned multiplies.
2860         * genopinit.c (optabs): Add usmul_widen_optab.
2861         * optabs.c (init_optabs): Likewise.
2862         * optabs.h (enum optab_index): Add OTI_usmul_widen.
2863         (usmul_widen_optab): Define.
2864         * config/bfin/bfin.md (usmulhisi3): New pattern.
2865
2866         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
2867
2868 2005-11-20  Graham Stott <btinternet.com>
2869
2870         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
2871
2872 2005-11-20  Andreas Schwab  <schwab@suse.de>
2873
2874         PR target/24757
2875         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
2876         insn.
2877
2878 2005-11-19  Richard Henderson  <rth@redhat.com>
2879
2880         PR tree-opt/24665
2881         * tree-gimple.c (is_gimple_id): Export.
2882         * tree-gimple.h (is_gimple_id): Declare.
2883         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
2884         (get_default_value): Use it.
2885         (maybe_fold_stmt_indirect): Likewise.
2886
2887 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
2888
2889         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
2890         than VR1 or vice-versa.
2891
2892 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
2893
2894         PR middle-end/24912
2895         PR middle-end/24750
2896         * reload.c (find_reloads_address_1): Mention dependency on
2897         gen_reload.
2898         * reload1.c (gen_reload): For IN with an unary operation, try
2899         moving inner expression to OUT if trivial SET is not valid.
2900         Confirm that the result is valid.  Move common code block into...
2901         (emit_insn_if_valid_for_reload): New function.
2902
2903 2005-11-19  Richard Guenther  <rguenther@suse.de>
2904
2905         * fold-const.c (fold_indirect_ref_1): Make sure we fold
2906         ARRAY_REFs of constant strings.
2907
2908 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
2909
2910         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
2911         fatal format string.
2912
2913 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
2914
2915         * combine.c (make_compound_operation): Swap operands of
2916         commutative operation if necessary before returning.
2917
2918 2005-11-19  Richard Guenther  <rguenther@suse.de>
2919
2920         PR middle-end/23294
2921         * fold-const.c (fold_plusminus_mult_expr): New function.
2922         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
2923         cases, remove now unnecessary code.
2924
2925 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
2926
2927         * gensupport.c (old_preds): Rename to std_preds, add special field.
2928         (struct old_pred_table): Rename to struct std_pred_table, add special
2929         field.
2930         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
2931         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
2932         (init_predicate_table): Adjust, and set along the way whether a
2933         predicate is special.
2934
2935 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
2936
2937         * BASE-VER: Change to 4.2.0.
2938
2939 2005-11-18  James E Wilson  <wilson@specifix.com>
2940
2941         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
2942         returning it.
2943
2944 2005-11-18  Mike Stump  <mrs@apple.com>
2945
2946         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
2947         * config/darwin-c.c (darwin_pragma_unused): Likewise.
2948         * c-decl.c (lookup_name_two) Remove.
2949         * c-tree.h (lookup_name_two): Remove.
2950         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
2951         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
2952         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
2953         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
2954
2955 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
2956
2957         PR target/24914
2958         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
2959         when not generating code to use that co-processor.
2960
2961 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
2962
2963         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
2964         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
2965         these functions are now in tree-phinodes.c.
2966
2967 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
2968
2969         * config/bfin/bfin.md (trap): New pattern.
2970
2971 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2972
2973         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
2974         on types.
2975
2976         * expr.c (expand_expr_real): Don't call record_block_change unless
2977         ib_boundaries_block is non-null
2978
2979         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
2980
2981         * fold-const.c (build_range_check): Use proper type for subtraction
2982         when merging lower bound.
2983
2984 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
2985
2986         PR rtl-optimization/24497
2987         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
2988         the copied insn.
2989
2990 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
2991
2992         * tree-scalar-evolution.c (expression_expensive_p): New function.
2993         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
2994
2995 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
2996
2997         * config/bfin/crtlibid.s: New file.
2998
2999 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3000
3001         PR target/24348
3002         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
3003         when not using sjlj exceptions.
3004         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
3005         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3006         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
3007         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
3008         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
3009         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
3010         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
3011         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
3012         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
3013         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
3014         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
3015         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
3016         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
3017         defines.
3018         * config/pa/hpux-unwind.h: New file.
3019
3020 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
3021
3022         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
3023         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
3024         * varasm.c (do_assemble_alias): Adjust call.
3025         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
3026         is defined.
3027         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
3028
3029 2005-11-17  James E Wilson  <wilson@specifix.com>
3030
3031         * tree.def (FUNCTION_DECL): Correct typo in comment.
3032
3033 2005-11-17  Richard Henderson  <rth@redhat.com>
3034
3035         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
3036         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
3037         and DW_CFA_def_cfa_sf.
3038         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
3039         (dbx_reg_number): Don't assert particular registers here.
3040         (based_loc_descr): ... do it here instead.  Fold in ...
3041         (eliminate_reg_to_offset): ... this function.
3042         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
3043         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
3044         * unwind-dw2.c (execute_cfa_program): Apply data align factor
3045         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
3046         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
3047         (instantiate_virtual_regs): Likewise.
3048         * var-tracking.c (adjust_stack_reference): Likewise.
3049         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
3050
3051 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3052
3053         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
3054         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
3055         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
3056         crtlibid.o.
3057         ($(T)crtlibid.o): New rule.
3058
3059 2005-11-16  Richard Guenther  <rguenther@suse.de>
3060
3061         PR middle-end/24851
3062         * fold-const.c (extract_array_ref): Return byte offset
3063         in all cases.
3064         (fold_binary): Fold &x[a] CMP &x[b] to
3065         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
3066         behavior.
3067
3068 2005-11-16  Richard Henderson  <rth@redhat.com>
3069
3070         PR middle-end/23497
3071         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
3072         parts of an SSA_NAME.
3073
3074 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
3075
3076         PR target/24861
3077         * arm.md (split for movsf with immediate): Restrict split to insns
3078         that set a general register.
3079
3080 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3081
3082         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
3083         uw_update_context.
3084         * unwind-dw2.c (uw_advance_context): Likewise.
3085         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
3086         _Unwind_SjLj_Unregister.
3087         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
3088
3089 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3090
3091         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
3092
3093 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3094
3095         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
3096         langhook to get a DImode integer type.
3097
3098 2005-11-16  Richard Henderson  <rth@redhat.com>
3099             J"orn Rennecke <joern.rennecke@st.com>
3100             Ulrich Weigand  <uweigand@de.ibm.com>
3101
3102         PR rtl-opt/24160
3103         PR target/24621
3104         * reload1.c (reg_equiv_invariant): New.
3105         (reload): Allocate, initialize, and free it.
3106         (calculate_needs_all_insns): Check it when skipping equivalence
3107         setting insns.
3108         (alter_reg): Likewise.
3109         (eliminate_regs_1): Rename from eliminate_regs.  Add new
3110         may_use_invariant argument; only use reg_equiv_invariant when true.
3111         (eliminate_regs): New.
3112         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
3113         a context for which may_use_invariant may be true.
3114
3115 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3116
3117         * fold-const.c (const_binop): Don't constant fold the operation
3118         if the result has overflowed and flag_trapping_math.
3119         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3120
3121 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3122
3123         * config/arm/unwind-arm.c (abort): Add prototype here.
3124         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
3125         (struct phase1_vrs): Add prev_sp.
3126         (unwind_phase2_forced): Save the original core registers instead of
3127         modifying entry_vrs.  Take a new flag argument for resuming unwinding
3128         and set action flags accordingly.  Always set _US_END_OF_STACK when
3129         get_eit_entry fails.  Unwind before calling the stop function.
3130         (_Unwind_GetCFA): New function.
3131         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
3132         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
3133         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
3134         just call unwind_phase2_forced.
3135         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
3136         * config/arm/unwind-arm.h (abort): Remove prototype.
3137         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
3138         prototypes.
3139         (_Unwind_GetCFA): New prototype.
3140         * config/arm/pr-support.c (abort): Add prototype here.
3141         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
3142         forced unwinding.
3143         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
3144         not schedule the prologue with non-call exceptions and EABI.
3145
3146 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
3147
3148         * config/arm/unwind-arm.h: Reorder interface function declarations.
3149         (_URC_END_OF_STACK): New enumeration value.
3150         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
3151         (struct _Unwind_Control_Block): Document reserved field use.
3152         (_Unwind_Stop_Fn): New typedef.
3153         (_Unwind_ForcedUnwind): Declare.
3154         (_Unwind_Resume_or_Rethrow): Declare.
3155         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
3156         argument.  Adjust.
3157         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
3158         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
3159         (UCB_FORCED_STOP_ARG): New.
3160         (search_EIT_table): Update boundary condition checks.
3161         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
3162         (unwind_phase2): Replace for with do..while.
3163         (unwind_phase2_forced): New.
3164         (__gnu_Unwind_RaiseException): Replace for with do..while.
3165         (__gnu_Unwind_ForcedUnwind): New.
3166         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
3167         Use appropriate phase2 unwinder.
3168         (__gnu_Unwind_Resume_or_Rethrow): New.
3169         (__gnu_unwind_pr_common): Cope with forced unwinding.
3170
3171 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
3172
3173         PR target/24772
3174         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
3175
3176         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
3177         roundsf2): Remove "s" from mnemonic.
3178
3179 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3180
3181         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
3182         __PIC__ is defined.
3183         * config/bfin/crtn.s: Change epilogues to match.
3184         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
3185         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
3186         __PIC__ and __pic__.
3187
3188 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3189
3190         PR 24357
3191         * doc/invoke.texi: Distinguish between free and fixed form instead of
3192         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
3193         languages.
3194         * gcc.c (default_compilers): Remove double entries, add entries for
3195         suffixes '.F90' and '.F95'.
3196
3197 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
3198
3199         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
3200         in the stack probing loop.
3201
3202 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
3203
3204         * configure.ac: Use .machine power5 not power5x.
3205         * configure: Regenerate.
3206
3207 2005-11-15  Mike Stump  <mrs@apple.com>
3208
3209         * c-decl.c (lookup_name_two): Add.
3210         * c-tree.h (lookup_name_two): Likewise.
3211         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
3212         * config/darwin-c.c (darwin_pragma_unused): Likewise.
3213
3214 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
3215
3216         PR rtl-optimization/23392
3217         * regrename.c (enum scan_actions) Add mark_access.
3218         (scan_actions_name): Ditto.
3219         (scan_rtx_reg): Handle mark_access.
3220         (scan_rtx_address): Do nothing for mark_access.
3221         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
3222         and regs in REG_INC notes before closing chains for dead regs.
3223         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
3224         opening chains for new writes.
3225
3226 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
3227
3228         * c.opt (ffixed-line-length-none): New.
3229
3230 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
3231
3232         * mklibgcc.in: Change contents of eh_dummy.c.
3233
3234 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
3235
3236         * loop.c (scan_loop): Do not insert temporaries for hard registers.
3237
3238 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
3239
3240         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
3241         of making syscalls.
3242         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
3243
3244 2005-11-15  Jan Hubicka  <jh@suse.cz>
3245
3246         * invoke.texi (large-unit-insns): Document.
3247         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
3248         * params.def (large-unit-insns): New param.
3249
3250 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
3251
3252         PR target/24869
3253         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
3254         special register for operand 3.  Reindent constraints to align
3255         them vertically.
3256
3257 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
3258
3259         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
3260         -mpopcntb, -mfprnd. Add -mcpu=power5+.
3261         * configure.ac: Add test for FP rounding instructions.
3262         * configure: Regenerate.
3263         * config.in: Regenerate.
3264         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3265         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
3266         features enabled.
3267         * config/rs6000/rs6000.opt (mfprnd): New.
3268         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
3269         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
3270         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
3271         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
3272         (TARGET_FPRND): New.
3273         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
3274         UNSPEC_FRIZ): New.
3275         (btrunc<mode>2): New.
3276         (ceil<mode>2): New.
3277         (floor<mode>2): New.
3278         (round<mode>2): New.
3279
3280 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
3281
3282         * gcc.c (version_compare_spec_function): Use fatal() rather than
3283         abort().
3284
3285         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
3286         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
3287         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
3288         as empty.
3289         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
3290         link in crt2.o.
3291
3292         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
3293         on -mmacosx-version-min setting.
3294
3295 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3296
3297         PR 24840
3298         * tree-vrp.c (infer_value_range): Return false if STMT is a
3299         block terminator and its basic block has no successors.
3300
3301 2005-11-14  Mike Stump  <mrs@apple.com>
3302
3303         * config/i386/i386.c (override_options): -masm=intel isn't
3304         supported on darwin.
3305         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
3306
3307 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
3308
3309         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
3310         vfork after including auto-host.h.
3311
3312 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
3313
3314         PR rtl-optimization/22002
3315         * combine.c (distribute_notes): Detect cases where a reg dies
3316         two or more times in a bb, including on the insn we are combining,
3317         and place the death note on the correct range.
3318
3319 2005-11-14  Dale Johannesen  <dalej@apple.com>
3320
3321         * expmed.c (store_bit_field):  Add offset unconditionally for
3322         memory targets.
3323         (extract_bit_field):  Don't force extzv or extv operand into
3324         a register if field is too big.
3325
3326 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
3327
3328         * config/arm/arm.c (pic_labelno): New.
3329         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
3330         LABEL_REF.  Pass only the labelno to PIC insns.
3331         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3332         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
3333         * arm.md (UNSPEC_PIC_LABEL): New constant.
3334         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3335         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
3336         Use the correct label prefix.
3337
3338 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
3339
3340         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
3341         REQ_EQUIV note.
3342
3343 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
3344
3345         * loop-invariant.c: Include tm_p.h.
3346         * Makefile.in: Updated.
3347
3348 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3349
3350         * pa.c (store_reg): Revise generation of frame notes in large frames.
3351         (set_reg_plus_d): Likewise.
3352
3353 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
3354
3355         PR tree-optimization/24709
3356         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
3357         loop check.
3358
3359 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3360
3361         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
3362         and duplicate declaration of pthread_self.
3363
3364 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3365             Ian Lance Taylor  <ian@airs.com>
3366
3367         PR middle-end/24003
3368         * calls.c (expand_call): If TARGET is a MEM and some part of the
3369         argument area has been saved, force TARGET to a register.
3370
3371 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
3372
3373         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
3374         checking.
3375
3376 2005-11-13  Jason Merrill  <jason@redhat.com>
3377
3378         PR c++/22489
3379         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
3380         lazily declared methods.
3381         (force_decl_die): Stop if forcing out the context already make a
3382         DIE for the decl.
3383         (force_type_die): Likewise.
3384
3385 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
3386
3387         PR middle-end/24820
3388         * builtins.c (integer_valued_real_p): Add break in
3389         REAL_CST having TREE_OVERFLOW set.
3390
3391 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
3392
3393         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
3394         addressing modes during calculation of costs.
3395
3396 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3397
3398         * function.c (assign_stack_local_1): Restrict sanity check
3399         on frame size overflow to 32-bit and above platforms.
3400
3401 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3402
3403         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
3404         * config/cris/cris.c: Include reload.h.
3405         (cris_initial_elimination_offset): New function.
3406         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
3407         Prototype.
3408
3409 2005-11-12  Richard Guenther  <rguenther@suse.de>
3410
3411         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
3412
3413 2005-11-12  Jan Hubicka  <jh@suse.cz>
3414
3415         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
3416         to compare against 0 when possible.
3417
3418 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
3419
3420         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
3421         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3422         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
3423         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
3424         in the new order.
3425
3426 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3427
3428         * recog.c (constrain_operands) <case 'g'>: For a match, require
3429         that a non-register matches general_operand when strict >= 0.
3430
3431 2005-11-11  Steven Bosscher  <stevenb@suse.de>
3432
3433         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
3434         previous checkin.
3435
3436 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
3437
3438         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
3439         (memory_address_same): New.
3440         (dse_optimize_stmt): Call memory_address_same.
3441
3442 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3443
3444         PR middle-end/24750
3445         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
3446         ZERO_EXTEND>: New cases.
3447
3448 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
3449
3450         * longlong.h (__clz_tab): Always provide.
3451
3452 2005-11-11  Steven Bosscher  <stevenb@suse.de>
3453
3454         PR 24265
3455         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
3456         can be assigned to.
3457         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
3458         before check_maybe_invariant.
3459         (move_invariant_reg): Use gen_move_insn instead of replacing
3460         SET_DEST with the temporary for the invariant.
3461         (move_loop_invariants): If checking is enabled, do internal
3462         consistency checks after completing the pass.
3463
3464 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
3465
3466         PR 24644
3467         * common.opt (Wvolatile-register-var): New.
3468         * varasm.c (make_decl_rtl): Only emit warning when option
3469         specified.  Clarify warning message.
3470         * doc/invoke.texi (Wvolatile-register-var): Document new option.
3471
3472         * doc/md.texi (copysign): Document standard named pattern.
3473
3474 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
3475
3476         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
3477         bytes when align is 2.
3478         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
3479         by the first instruction of the loop.
3480
3481 2005-11-11  Jason Merrill  <jason@redhat.com>
3482
3483         PR c++/24686
3484         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
3485         the cleanup list.
3486
3487 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
3488
3489         PR rtl-optimization/22509
3490         * local-alloc.c (memref_used_between_p): Check whether a function call
3491         could not reference the memref.
3492
3493 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
3494
3495         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
3496         algorithm so as to choose the best, not the worst, alternative.
3497         Reset accumulated register class before processing next alternative.
3498
3499 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3500
3501         PR target/24445
3502         * calls.c (expand_call): Copy a return value to a plain register
3503         if needed.
3504
3505 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
3506
3507         PR target/24778
3508         * varasm.c (assemble_name): Recompute name only for transparent
3509         aliases.
3510
3511 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
3512
3513         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
3514
3515 2005-11-04  Jeff Law  <law@redhat.com>
3516
3517         PR middle-end/23181
3518         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
3519         perform reassociation if the parent statement will not die as
3520         a result of the optimization.
3521
3522 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
3523
3524         * tree-ssa-alias.c (compute_may_aliases): Remove call to
3525         delete_old_heap_vars.
3526         * tree-dfa.c (referenced_var_remove): Remove function.
3527         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
3528         (delete_tree_ssa): Remove call to delete_old_heapvars.
3529         Add call to delete_alias_heapvars.
3530         * tree-flow.h (referenced_var_remove): Remove prototype
3531         (init_alias_heapvars): New prototype.
3532         (delete_alias_heapvars): Ditto.
3533         * Makefile.in (tree-ssa-structalias.o): Add
3534         gt-tree-ssa-structalias.o
3535         (GTFILES): Add tree-ssa-structalias.h and
3536         tree-ssa-structalias.c.
3537         (s-gtype): Add gt-tree-ssa-structalias.h.
3538         * tree-ssa-structalias.c (heapvars): Remove.
3539         (oldheapvars): Remove.
3540         (heapvar_for_stmt): New variable.
3541         (heapvar_lookup): New function.
3542         (heapvar_insert): Ditto.
3543         (get_constraint_for): See if we have an old heapvar
3544         to reuse.
3545         (init_alias_heapvars): New function.
3546         (delete_alias_heapvars): Ditto.
3547         Add include of gt-tree-ssa-structalias.h.
3548
3549 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3550
3551         PR middle-end/22127
3552         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
3553
3554 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3555
3556         * tree.c (int_fits_type_p): Only look at the base type
3557         if it has the same precision as the original type.
3558
3559 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
3560
3561         PR other/4372
3562         * varasm.c (assemble_alias): Use %q+D in the error
3563         message instead of %J and %qD.
3564
3565 2005-11-10  Richard Guenther  <rguenther@suse.de>
3566
3567         * gcse.c (free_ldst_entry): Only free hashtable if
3568         it exists.
3569
3570 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3571
3572         * function.c (assign_stack_local_1): Issue an error message if
3573         the frame size overflows in the signed target arithmetics.
3574
3575 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3576
3577         * tree.c (build_qualified_type): Chain the new type to the original
3578         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
3579         a POINTER_TYPE or a REFERENCE_TYPE respectively.
3580         (build_pointer_type_for_mode): Only return unqualified types.
3581         (build_reference_type_for_mode): Likewise.
3582
3583 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
3584
3585         * Makefile.in (gnucompare): Do comparison of all files using one of
3586         the chosen methods and only afterwards decide if just warning should
3587         be issued or comparison failure raised.
3588
3589 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3590
3591         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
3592         (noce_try_abs): Negate if the comparison is reversed.
3593         Look only one instruction backwards for a REG_EQUAL note.
3594
3595 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
3596
3597         PR other/4372
3598         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
3599         gthr-tpf.h: Define __gthrw.  For all identifiers that might
3600         be weak, introduce weakrefs or non-weak aliases with __gthrw,
3601         and prefix all uses with __ghtrw.
3602
3603 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
3604
3605         PR other/4372
3606         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
3607         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
3608         * c-common.c (handle_weakref_attribute): New.
3609         (c_common_attribute_table): Add weakref.
3610         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
3611         in the assembler.
3612         * configure, config.in: Rebuilt.
3613         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
3614         * doc/extend.texi: Document weakref attribute.
3615         * varasm.c (ultimate_transparent_alias_target): New
3616         (assemble_name): Use it.
3617         (weak_finish_1): Split out of...
3618         (weak_finish): ... and deal with weakrefs in...
3619         (weakref_targets): ... new list.
3620         (globalize_decl): Clean up weakref_targets.
3621         (do_assemble_alias): Handle weakrefs.
3622         (finish_aliases_1): Do not reject weakrefs to external symbols.
3623         (assemble_alias): Handle weakrefs.
3624
3625 2005-11-09  Richard Guenther  <rguenther@suse.de>
3626
3627         PR tree-optimization/24716
3628         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
3629         t_bool to track results from follow_ssa_edge.
3630
3631 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3632
3633         * final.c (force_source_line): New global variable.
3634         (final_scan_insn): Set it to true instead of clearing last_filename.
3635         (notice_source_line): Return true if force_source_line is true,
3636         unless source info is absent.
3637
3638 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
3639
3640         PR c/24644
3641         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
3642         a linkage name for a variable if it a register variable.
3643         * c-decl.c (grokdeclarator): Global register variables
3644         should be set as PUBLIC.
3645
3646 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3647
3648         PR 24624
3649         * config/s390/s390.c (struct s390_frame_layout): New fields
3650         first_save_gpr_slot and last_save_gpr_slot.
3651         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
3652         s390_emit_epilogue, s390_initial_elimination_offset): Replaced
3653         first_save_gpr and last_save_gpr with the _slot variants.
3654         (s390_register_info): Calculate first_save_gpr_slot and
3655         last_save_gpr_slot using regs_ever_live.
3656
3657 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3658
3659         PR 24623
3660         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
3661         for a function containing a landing pad.
3662
3663 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3664
3665         PR 24034
3666         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
3667         is live afterwards.
3668
3669 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
3670
3671         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
3672         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
3673
3674 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3675
3676         Add ms2 support
3677         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
3678         constants.
3679         (call,load,store): New insn types.
3680         (mem_access, branch_access): Adjust reservation conditions.
3681         (define_delay): Adjust condition.
3682         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
3683         type.
3684         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
3685         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
3686         insn type.
3687         (call_internal, call_value_internal, return_internal,
3688         return_interrupt_internal, eh_return_internal, indirect_jump,
3689         tablejump): Set call insn type.
3690         (blockage, ei, di): Use appropriate unspec const.
3691         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
3692         (ms1_get_attr_type): Adjust to give load & store types.
3693         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
3694         backwards past a barrier.
3695         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
3696         branch scheduling.
3697         (struct branch_info, struct label_info): New.
3698         (ms1_labels): New.
3699         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
3700         (ms1_machine_reorg): New.
3701         (TARGET_MACHINE_DEPENDENT_REORG): Override.
3702         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
3703         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
3704         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
3705         (TARGET_MS2): New.
3706
3707 2005-11-09  Per Bothner  <per@bothner.com>
3708             Uros Bizjak  <uros@kss-loka.si>
3709
3710         PR c/24101
3711         * toplev.c (process_options): Initialize debug_hooks early
3712         in case lang_hooks.post_options ends up calling a debug_hook.
3713
3714 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
3715
3716         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
3717         DBX_REGISTER_NUMBER being contiguous.
3718
3719 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
3720             Diego Novillo  <dnovillo@redhat.com>
3721
3722         PR 23046
3723         * tree-vrp.c (register_edge_assert_for): Do not register
3724         always-false predicates.
3725
3726 2005-11-08  Devang Patel <dpatel@apple.com>
3727
3728         PR tree-optimization/23115
3729         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
3730         relation.
3731
3732 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
3733
3734         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
3735         -mcpu=440.
3736
3737 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
3738
3739         Fix PR tree-optimization/23382
3740
3741         * tree-ssa-alias.c (compute_may_aliases): Call
3742         delete_old_heap_vars.
3743         * tree-dfa.c (referenced_var_remove): New function.
3744         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
3745         * tree-flow.h (referenced_var_remove): Add prototype.
3746         (delete_old_heap_vars): Ditto.
3747         * tree-ssa-structalias.c (heapvars): New variable.
3748         (oldheapvars): Ditto.
3749         (get_constraint_for): Put heap vars on heapvars list.
3750         (delete_old_heap_vars): New function.
3751
3752 2005-11-08  Jason Merrill  <jason@redhat.com>
3753
3754         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
3755
3756 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
3757
3758         PR target/19340
3759         * reg-stack.c (reg_to_stack): Update register liveness also
3760         for flag_sched2_use_traces.
3761
3762 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
3763
3764         PR target/23704
3765         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
3766         override prior explicit -mno-powerpc-gfxopt.
3767
3768 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
3769
3770         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
3771         if the bitsize is zero.
3772         * doc/md.texi (Standard Pattern Names): Document it.
3773
3774         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
3775         (TARGET_PASS_BY_REFERENCE): Likewise.
3776
3777 2005-11-07  Ian Lance Taylor  <ian@airs.com>
3778
3779         PR rtl-optimization/24683
3780         * config/i386/i386.c (legitimize_pic_address): If constant operand
3781         to PLUS is too large, put it in a register.
3782
3783 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
3784
3785         * configure.ac: Enable checking assembler dwarf2 support for bfin
3786         target.
3787         * configure: Regenerate.
3788
3789 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
3790
3791         PR target/24230
3792
3793         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
3794         gen_easy_vector_constant_add_self): Delete.
3795         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
3796         New.
3797         (output_vec_const_move): Use gen_easy_altivec_constant.
3798         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
3799         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
3800         (easy_vector_constant_add_self): Rewritten.
3801         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
3802         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
3803         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
3804         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
3805         Macroize and adjust for the other changes.
3806
3807 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
3808
3809         PR c/24599
3810
3811         * c-typeck.c (build_c_cast): Try using a shared constant, and see
3812         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
3813
3814 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3815
3816         PR rtl-optimization/23567
3817         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
3818         (noce_process_if_block): Don't do any optimizations except
3819         if (cond) x = x; if !set_b and write into orig_x may trap
3820         or fault.  Remove the MEM_READONLY_P check.
3821
3822 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
3823
3824         PR 24670
3825         * tree-vrp.c (fix_equivalence_set): New.
3826         (extract_range_from_assert): Call it.
3827
3828 2005-11-05  Ian Lance Taylor  <ian@airs.com>
3829
3830         PR target/22432
3831         * combine.c (apply_distributive_law): Don't distribute across a
3832         vector mode subreg.
3833
3834 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
3835
3836         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
3837         config/ms1/ms1.h, config/rs6000/predicates.md,
3838         config/s390/s390.c, params.def, postreload-gcse.c,
3839         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
3840         tree-vrp.c, tree.c: Fix comment typos.
3841         * doc/invoke.texi: Fix typos.
3842
3843 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
3844
3845         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
3846         for testing whether the data_dependence_relation contains distance
3847         vectors.  Iterate over all distance vectors of the ddr.
3848         * lambda.h: Define a vec of lambda_vector pointers.
3849         * tree-data-ref.c (dump_data_dependence_relation,
3850         dump_data_dependence_direction): Iterate over all distance and
3851         direction vectors of the ddr.
3852         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
3853         DDR_DIST_VECTS.
3854         (build_classic_dist_vector, build_classic_dir_vector): Push a set
3855         of distance/direction vectors instead of a single one.
3856         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
3857         lambda_vectors with a vec of lambda_vectors.
3858         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
3859         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
3860         DDR_NUM_DIST_VECTS): New.
3861         * tree-loop-linear.c (gather_interchange_stats): Test for the
3862         existence of distance vectors only after having checked that there
3863         is a dependence.  Iterate over all distance vectors of the ddr.
3864         (linear_transform_loops): Use dump_data_dependence_relation.
3865         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
3866         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
3867         distance vectors of the ddr.
3868
3869 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3870
3871         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
3872         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
3873         IS_INTHANDLER; all callers changed.
3874         (n_regs_saved_by_prologue): Take interrupt handler attributes into
3875         account.
3876         (do_link, do_unlink): New argument ALL; all callers changed.
3877         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
3878         If function isn't leaf, save and restore all registers.
3879         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
3880         exception handler.
3881
3882 2005-11-05  Jan Hubicka  <jh@suse.cz>
3883
3884         PR rtl-optimization/23490
3885         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
3886         max-flow-memory-location): Document.
3887         * flow.c: Include params.h
3888         (MAX_MEM_SET_LIST_LEN): Kill.
3889         (add_to_mem_set_list): Use new param.
3890         * cse.c (cse_basic_block): Replace 1000 by new param.
3891         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
3892         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
3893         * predict.c (predict_loops): Use new param.
3894         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
3895
3896         * ipa-inline.c (cgraph_decide_inlining_of_small_function,
3897         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
3898         Do not hold memory returned by cgraph_node_name across other call.
3899
3900 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
3901
3902         PR target/23424
3903         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
3904         Disable.
3905
3906 2005-11-04  Jeff Law  <law@redhat.com>
3907
3908         PR/21883
3909         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
3910         * tree-ssa-dom.c: Include params.h.
3911         (thread_across_edge): If there are too many statements in the
3912         target block, then do not thread through it.
3913         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
3914         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
3915
3916 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
3917
3918         PR 24627
3919         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
3920         TODO_update_ssa instead of TODO_update_ssa_no_phi.
3921
3922 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
3923
3924         PR/18595
3925         * tree-scalar-evolution.c (instantiate_parameters_1,
3926         instantiate_parameters, resolve_mixers): Compute the size of an
3927         expression to be instantiated and give up the instantiation if the
3928         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
3929
3930 2005-11-04  Richard Guenther  <rguenther@suse.de>
3931
3932         * tree-flow.h (ref_contains_indirect_ref): Rename to
3933         array_ref_contains_indirect_ref.
3934         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
3935         (array_ref_contains_indirect_ref): Make comment match the code
3936         and vice-versa.
3937         (ref_contains_array_ref): Likewise.
3938         * tree-ssa-structalias.c (find_func_aliases): Remove call to
3939         ref_contains_indirect_ref.
3940         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
3941         Rename calls to ref_contains_indirect_ref.
3942
3943 2005-11-04 Paul Brook  <paul@codesourcery.com>
3944
3945         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
3946         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
3947         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3948         * config/arm/arm.md: Use match_operand in peephole input templates
3949         and match_dup in peephole output templates.
3950
3951 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
3952
3953         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
3954         __aeabi_uidiv.
3955
3956 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
3957             Daniel Jacobowitz  <dan@codesourcery.com>
3958
3959         * longlong.h (add_ssaaaa): Clobber condition code register
3960         in ARM version.
3961         (sub_ddmmss): Likewise.
3962         (umul_ppmm): Likewise.
3963
3964 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
3965             Paul Brook  <paul@codesourcery.com>
3966             Phil Blundell  <pb@reciva.com>
3967
3968         * configure.ac: Add test for ARM TLS support.
3969         * configure: Regenerated.
3970         * config/arm/arm-protos.h (legitimize_tls_address)
3971         (arm_tls_referenced_p, tls_mentioned_p)
3972         (arm_output_addr_const_extra): New prototypes.
3973         (thumb_legitimize_pic_address): Delete.
3974         * config/arm/arm.c: Include "gt-arm.h".
3975         (enum tls_reloc): New.
3976         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
3977         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
3978         (arm_call_tls_get_addr, legitimize_tls_address)
3979         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
3980         (arm_init_tls_builtins, arm_emit_tls_decoration)
3981         (arm_output_addr_const_extra): New functions.
3982         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
3983         (TARGET_HAVE_TLS): Define.
3984         (target_thread_pointer): New.
3985         (arm_override_options): Handle -mtp=.
3986         (legitimize_pic_address): Ignore UNSPECs.
3987         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
3988         relative symbols.
3989         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
3990         (tls_get_addr_libfunc): New variable.
3991         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
3992         (arm_init_builtins): Call arm_init_tls_builtins.
3993         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
3994         (arm_encode_section_info): Call default_encode_section_info.
3995         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
3996         (enum arm_tp_type): New.
3997         (target_thread_pointer): Add declaration.
3998         (LEGITIMATE_CONSTANT_P): Handle TLS.
3999         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
4000         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
4001         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
4002         * config/arm/arm.md: Add UNSPEC_TLS.
4003