OSDN Git Service

2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
2
3         * config/rs6000/sysv4.opt: Fix typo.
4
5 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
6             Jakub Jelinek  <jakub@redhat.com>
7
8         PR target/21329
9         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
10         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
11         Don't use rep; movs{l,q} if the repetition count is really small,
12         instead use a sequence of movs{l,q} instructions.
13
14 2005-05-06  Jeff Law  <law@redhat.com>
15
16         PR tree-optimization/21380
17         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
18         thread through a block with no preds.
19
20 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
21
22         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
23         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
24         add_call_read_ops): Use VEC instead of VARRAY.
25
26 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
27
28         * config/mcore/mcore.c (mcore_print_operand_address): Use
29         gcc_assert and gcc_unreachable as appropriate.
30         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
31         mcore_output_andn, output_inline_const, mcore_output_move,
32         mcore_output_movedouble, mcore_expand_block_move,
33         layout_mcore_frame, mcore_initial_elimination_offset,
34         mcore_expand_prolog, mcore_mark_dllexport,
35         mcore_mark_dllimport): Likewise.
36         * config/mcore/mcore.h (switch_to_section): Likewise.
37         * config/mcore/mcore.md: Likewise.
38
39 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
40
41         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
42         TARGET_PROFILE_KERNEL.
43
44         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
45         TARGET_PROFILE_KERNEL use.
46
47 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
48
49         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
50         and gcc_unreachable, as appropriate.
51         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
52         m32r_expand_prologue, m32r_output_function_epilogue,
53         m32r_legitimize_pic_address, m32r_print_operand_address,
54         emit_cond_move, m32r_function_symbol,
55         m32r_output_block_move): Likewise.
56         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
57         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
58         *rev_zero_branch_insn): Likewise.
59         
60 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
61
62         PR c++/20961
63         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
64         if both NEWDECL and OLDDECL are already weak.
65
66 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
67
68         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
69
70 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
71             Kaz Kojima  <kkojima@gcc.gnu.org>
72
73         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
74         and plus_constant.
75
76 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
77             David Edelsohn  <edelsohn@gnu.org>
78
79         * config.gcc: Add .opt magic for the rs6000 ports.
80
81         * doc/invoke.texi: Document -mabi= option properly.  Document
82         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
83         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
84         -misel=.
85
86         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
87         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
88         TARGET_XL_COMPAT.
89
90         * config/rs6000/aix.opt: New.
91         * config/rs6000/aix41.opt: New.
92         * config/rs6000/aix64.opt: New.
93         * config/rs6000/darwin.opt: New.
94         * config/rs6000/linux64.opt: New.
95         * config/rs6000/rs6000.opt: New.
96         * config/rs6000/sysv4.opt: New.
97
98         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
99         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
100         SUBTARGET_SWITCHES.
101         Define TARGET_USES_SYSV4_OPT.
102         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
103         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
104         TARGET_USES_AIX64_OPT.
105         * config/rs6000/aix51.h: Same.
106         * config/rs6000/aix52.h: Same.
107         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
108         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
109         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
110         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
111         * config/rs6000/linux64.h: Use
112         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
113
114         * config/rs6000/rs6000.c: Remove definitions of
115         rs6000_sched_restricted_insns_priority,
116         rs6000_long_double_size_string, rs6000_altivec_vrsave,
117         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
118         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
119         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
120         rs6000_alignment_string.  Define rs6000_explicit_options.
121         (rs6000_parse_abi_options): Remove.
122         (rs6000_parse_alignment_option): Remove.
123         (rs6000_parse_float_gprs_option): Remove.
124         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
125         TARGET_DEFAULT_TARGET_FLAGS.
126         (rs6000_override_options): Revamp to use new .opt machinery.
127
128         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
129         of new .opt machinery.  Remove target_flags.  Redefine
130         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
131         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
132         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
133         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
134         rs6000_longcall_switch, rs6000_default_long_calls,
135         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
136         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
137         TARGET_ALTIVEC_VRSAVE.
138
139 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
140
141         * config.gcc (hppa1.1-*-rtems*): Remove.
142         * config/pa/rtems.h: Remove.
143
144 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
145
146         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
147         Exclude roe/603e multilib variants.
148
149 2005-05-04  Denis Chertykov  <denisc@overta.ru>
150
151         PR target/21284
152         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
153         for output.
154
155 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
156
157         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
158         arm/pe.opt to $extra_options.
159         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
160         (target_float_abi_name, target_float_switch, target_abi_name)
161         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
162         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
163         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
164         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
165         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
166         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
167         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
168         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
169         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
170         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
171         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
172         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
173         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
174         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
175         (arm_pic_register_string): Delete.
176         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
177         TARGET_TPCS_FRAME.
178         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
179         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
180         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
181         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
182         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
183         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
184         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
185         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
186         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
187         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
188         (SUBTARGET_SWITCHES): Delete.
189         * config/arm/arm.c (target_float_switch): Delete.
190         (arm_cpu_select): Moved from config/arm/arm.h.
191         (target_fpu_name, target_fpe_name, target_float_abi_name)
192         (target_abi_name, structure_size_string, arm_pic_register_string)
193         (arm_select): Make static.
194         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
195         (arm_handle_option): New function.
196         (arm_override_options): Update target_flags checks for new mask names.
197         Remove target_float_switch code.
198         (arm_expand_prologue, thumb_expand_prologue): Check
199         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
200         * config/arm/arm.opt, config/arm/pe.opt: New files.
201
202 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
203
204         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
205         gcc_unreachable as appropriate.
206         (arc_double_limm_p, arc_setup_incoming_varargs,
207         arc_compute_function_type, arc_output_function_prologue,
208         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
209         output_shift, arc_print_operand, arc_print_operand_address,
210         arc_final_prescan_insn): Likewise.
211         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
212
213 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
214
215         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
216         comparing Pmode.
217         (SDI): New.
218         (cmp): Delete.
219         (wd): New.
220         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
221         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
222         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
223         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
224         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
225         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
226         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
227         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
228
229 2005-05-05  Paul Brook  <paul@codesourcery.com>
230
231         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
232         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
233         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
234         and tree-data-ref.h with *_H variables.
235
236 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
237
238         * config/m32r/xm-m32r.h, config/m32r/linux.h: Delete files.
239
240 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
241
242         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
243
244 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
245
246         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
247
248 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
249
250         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
251         setting of vrsave register for current function after
252         call to save_world is emitted.
253
254 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
255
256         * config/mmix/predicates.md: New file.
257         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
258         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
259         (mmix_foldable_comparison_operator, mmix_comparison_operator)
260         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
261         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
262         Don't define.
263         * config/mmix/mmix.md: Include predicates.md.
264         ("call", "call_value"): Force address to register if it isn't a
265         mmix_symbolic_or_address_operand.
266
267 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
268
269         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
270         the flags are of appropriate types.
271         (num_ssa_operands): Generalize using the generic interface.
272         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
273         iterator.
274
275 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
276
277         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
278         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
279
280 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
281
282         * tree-outof-ssa.c (edge_leader, stmt_list,
283         analyze_edges_for_bb): Use VEC instead of VARRAY.
284         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
285         (perform_edge_inserts): Call init_analayze_edges_for_bb and
286         fini_analayze_edges_for_bb.
287
288 2005-05-04  James E Wilson  <wilson@specifixinc.com>
289
290         PR driver/21112
291         * gcc.c (process_command): In the second argv scan loop, ignore
292         Xassembler and Xpreprocessor, along with their argument.
293
294 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
295
296         * tree-flow-inline.h, tree-ssa-operands.c,
297         tree-ssa-operands.h, tree-ssa-opfinalize.h:
298         Likewise. tree-vn.c: Fix comment typos.
299         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
300
301 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
302
303         * doc/tm.texi (Target Hooks): Document
304         TARGET_RESOLVE_OVERLOADED_BUILTIN.
305
306 2005-05-04  Paul Brook  <paul@codesourcery.com>
307
308         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
309
310 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
311
312         * dwarf2out.c (incomplete_types, retry_incomplete_types,
313         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
314         of VARRAY.
315
316         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
317         get_expansion, expand_var_during_unrolling,
318         insert_var_expansion_initialization,
319         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
320         instead of VARRAY.
321
322         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
323         update_stmt.
324
325 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
326
327         PR middle-end/15618
328         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
329         the same as INTEGER_TYPE.
330         (fold_binary): Fold "bool_var != 0" to bool_var.
331         Fold "bool_var == 1" to bool_var.
332
333 2004-05-03  Richard Henderson  <rth@redhat.com>
334
335         PR middle-end/21318
336         * function.c (instantiate_virtual_regs_in_insn): Use the mode
337         from recog_data instead of insn_data.
338
339 2005-05-03  DJ Delorie  <dj@redhat.com>
340
341         * common.opt (fdiagnostics-show-option): No variable is needed.
342         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
343         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
344         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
345         Save and restore original message format.  Use flag in context
346         instead of global.
347         (warning): Don't test for enabled warnings here.
348         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
349         here.
350
351 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
352
353         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
354         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
355         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
356         * aclocal.m4: Don't include accross.m4.
357         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
358         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
359         * configure, config.in: Regenerate.
360         
361 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
362
363         PR middle-end/21265
364         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
365         (clear_storage): Add argument.
366         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
367         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
368         tailcall.
369         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
370         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
371         (store_expr, store_constructor): Adjust callers.
372         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
373         to emit_block_move if CALL_EXPR_TAILCALL (exp).
374         (expand_builtin_memmove): Add ORIG_EXP argument, copy
375         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
376         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
377         with EXP.  Pass EXP to expand_builtin_memmove.
378         (expand_builtin_memset): Add ORIG_EXP argument, pass
379         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
380         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
381         Pass EXP to expand_builtin_memset.
382         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
383         the new CALL_EXPR.
384         (expand_builtin_strncmp): Likewise.
385         (expand_builtin_printf): Replace ARGLIST argument with EXP.
386         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
387         (expand_builtin_fprintf): Likewise.
388         (expand_builtin): Adjust calls to
389         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
390
391         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
392         item in V4SF mode.
393
394         PR rtl-optimization/21239
395         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
396
397 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
398
399         * tree-flow.h (tree_ann_common_d): Move aux to ...
400         (stmt_ann_d): ... here.
401         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
402         move_computations_stmt, schedule_sm): Update references to
403         aux.
404         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
405
406         * tree-cfg.c (remove_bb): Remove a redundant call to
407         set_bb_for_stmt.
408         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
409         Likewise.
410
411 2005-05-03  Richard Henderson  <rth@redhat.com>
412
413         * config/rs6000/rs6000.c: Remove conflict markers.
414
415         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
416
417 2005-05-03  James E Wilson  <wilson@specifixinc.com>
418
419         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
420
421 2005-05-03  DJ Delorie  <dj@redhat.com>
422
423         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
424         decide if the warning will be printed.
425         * calls.c (expand_call): Likewise.
426         * function.c (init-function_start): Likewise.
427
428         * common.opt (-fdiagnostics-show-option): New.
429         * opts.c (option_enabled): Accept the option index instead of a
430         pointer to the option descriptor.
431         * opts.h (option_enabled): Likewise.
432         * toplev.c (print_switch_values): Pass option index, not option
433         descriptor.
434         * diagnostic.h (diagnostic_info): Add option_index.
435         * diagnostic.c: Include opts.h.
436         (diagnostic_set_info): Initialize option_index.
437         (diagnostic_report_diagnostic): Amend option name if appropriate.
438         (warning): Check to see if the specified warning is enabled.
439         Store option index.
440         * doc/invoke.texi (-fdiagnostics-show-options): Document.
441
442 2005-05-03  Richard Henderson  <rth@redhat.com>
443
444         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
445         SPEC_OR_GEN_REGS definitions.
446
447 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
448
449         PR target/16888
450         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
451         for unavailable registers.
452
453 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
454
455         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
456
457         * cfglayout.c (block_locators_blocks,
458         insn_locators_initialize, insn_scope): Use VEC instead of
459         VARRAY.
460
461         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
462         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
463         VARRAY.
464
465 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
466
467         * config/sparc/predicates.md (const_compl_high_operand): New.
468         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
469         gen_safe_HIGH64.
470         (sparc_emit_set_const64_quick1): Adjust for above change.
471         (sparc_emit_set_const64_quick2): Likewise.
472         (sparc_emit_set_const64_longway): Likewise.
473         (sparc_emit_set_const64): Likewise.
474         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
475         movdi_const64_special): Delete.
476         (logical constant splitters): Use const_compl_high_operand.
477
478 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
479
480         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
481         rather than STRIP_NOPS.
482
483 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
484
485         PR rtl-optimization/21330
486         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
487         returning non-NULL.
488         (unswitch_single_loop): Clear cinsn when retrying.
489
490         PR target/21297
491         * config/i386/i386.c (legitimize_address): When canonicalizing
492         ASHIFT into MULT, multiply by 1 << shift_count instead of
493         1 << log2 (shift_count).
494
495 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
496
497         * lambda-code.c (gcc_loop_to_lambda_loop, 
498         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
499         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
500         generic operand interface.
501         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
502         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
503         generic operand interface.
504         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list, 
505         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
506         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
507         num_imm_uses): Use ssa_use_operand_t.
508         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
509         get_v_must_def_ops): Delete.
510         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
511         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
512         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
513         get_v_must_def_kill_ptr): Delete.
514         (delink_stmt_imm_use): Move and use new operand interface.
515         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
516         op_iter_next_tree): Use new operand implementation.
517         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
518         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator 
519         type check.
520         (op_iter_next_mustdef, op_iter_next_maydef, 
521         op_iter_next_must_and_may_def): Delete. Replace with...
522         (op_iter_next_maymustdef): New.  Combine must and may next operations.
523         (op_iter_init_maydef, op_iter_init_mustdef, 
524         op_iter_init_must_and_may_def): Use new interface.
525         (single_ssa_tree_operand ): New.  Process single operands only as trees.
526         (single_ssa_use_operand): New.  Process single operands only as uses.
527         (single_ssa_def_operand): New.  Process single operands only as defs.
528         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
529         specified types.
530         (num_ssa_operands): New.  Count the number of specified operands.
531         (compare_ssa_operands_equal): New.  Compare two statements' operands.
532         (single_phi_def): New.  Return true if PHI has one def of the specified
533         operand type.
534         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
535         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
536         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
537         (struct stmt_ann_d): Operands field no longer require GTY().
538         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
539         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
540         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, 
541         dump_replaceable_exprs, rewrite_trees): Use generic interface.
542         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node): 
543         Use use_operand_p instead of ssa_imm_use_t *.
544         * tree-pretty-print.c (dump_vops): check if operands are active before
545         dumping virtual operands.
546         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
547         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
548         (ccp_fold): Use new interface.
549         (ccp_visit_stmt): Remove unused variables and code.
550         (convert_to_gimple_builtin): Insert statements before calling 
551         mark_new_vars_to_rename.
552         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
553         (copy_prop_visit_cond_stmt): Use generic interface.
554         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the 
555         annotation in table.
556         (thread_across_edge): Use generic interface.
557         (initialize_hash_element): Initialzie with stmt, not annotation.
558         (eliminate_redundant_computations): Use generic interface.
559         (record_equivalences_from_stmt): Pass stmt, not annotation.
560         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
561         interface.
562         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
563         * tree-ssa-loop-ivopts.c (find_invariants_stmt, 
564         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use 
565         generic operand interface.
566         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
567         interface.
568         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
569         Interface.
570         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
571         (build_defs, build_uses, build_v_may_defs, build_vuses, 
572         build_v_must_defs): Change type to struct opbuild_list_d.
573         (ops_active): New.  Operands active boolean.
574         (operand_memory, operand_memory_index): New.  Operand memory managers.
575         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
576         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
577         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): 
578         Change from functions to static variable list heads.
579         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
580         (opbuild_initialize_real): New.  Initialize a virtual build list.
581         (opbuild_free): New.  Free a build list.
582         (opbuild_num_elems): New.  Number of items in a list.
583         (opbuild_append_real): New.  Add a real (tree *) operand.
584         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
585         (opbuild_first): New.  Return first element index in a list.
586         (opbuild_next): New.  Return next element in a list.
587         (opbuild_elem_real): New.  Return real element.
588         (opbuild_elem_virtual): New.  Return virtual element.
589         (opbuild_elem_uid): New.  Return UID of virtual element.
590         (opbuild_clear): New.  Reset an operand list.
591         (opbuild_remove_elem): New.  Remove an element form a list.
592         (ssa_operands_active): New.  Return true if operand cache is active.
593         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
594         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
595         (correct_use_link): Use use_operand_p.
596         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
597         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation. 
598         (cleanup_v_may_defs): Use new implmentation.
599         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New 
600         implementation.
601         (append_def, append_use, append_v_may_def, append_vuse, 
602         append_v_must_def): Call opbuild_append routine instead of using varray.
603         (build_ssa_operands): Simplify to simply use stmt, don't maintain a 
604         global parse_old_ops variable.
605         (free_ssa_operands): New implementation.
606         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
607         (copy_virtual_operands): Move. New generic implementation.
608         (create_ssa_artficial_load_stmt): Move. New implementation.
609         (swap_tree_operands): Update for new implementation.
610         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
611         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
612         rather than a varray.
613         (verify_imm_links): Use use_operand_p.
614         (dump_immediate_uses_for): If the immediate use variable is a virtual 
615         variable, show the virtual ops in the stmt.
616         * tree-ssa-operands.h (def_operand_p): No longer a structure.
617         (NULL_DEF_OPERAND_P): Now a #define.
618         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
619         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
620         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
621         mustdef_optype_d): New.  Use Linked list representation.
622         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
623         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
624         (struct stmt_operands_d): Change to new pointers that are not GTY.
625         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
626         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
627         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
628         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT, 
629         SET_V_MUST_DEF_KILL): Delete.
630         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT, 
631         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
632         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT, 
633         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
634         (enum ssa_op_iter_type): Operand iterator typechecking values.
635         (struct ssa_operand_iterator_d): Use linked lists of operands.
636         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
637         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
638         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
639         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
640         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
641         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
642         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND, 
643         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
644         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
645         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
646         alloc_vuse, and alloc_mustdef.
647         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops, 
648         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
649         and finalize_ssa_v_must_def_ops.
650         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
651         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
652         stmt around.
653         (compute_avail): Use generic iterator interface.
654         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
655         (stmt_makes_single_load, stmt_makes_single_store): Use 
656         ZERO_SSA_OPERANDS.
657         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
658         (statement_sink_location): Use generic interface.
659         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
660         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
661         reset the immediate use link nodes.
662         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
663         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
664         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
665         (eliminate_tail_call): Use generic operand interface.
666         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
667         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic 
668         interface.
669         * tree-vect-transform.c (update_vuses_to_preheader): Use generic 
670         interface.
671         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
672         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
673         vuse_optype.
674         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add): 
675         Use statement pointer instead of vuse_optype.  Use generic interface.
676         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
677         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
678         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
679         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
680         * doc/tree-ssa.texi: Update documentation for operand interface.
681
682 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
683
684         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
685         gcc_unreachable as appropriate.
686         (machopic_function_base_name, machopic_indirect_data_reference,
687         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
688         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
689         * config/rs6000/altivec.md (*mov<mode>_internal,
690         build_vector_mask_for_load): Likewise.
691         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
692         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
693         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
694         * config/rs6000/predicates.md (easy_fp_constant,
695         logical_operand): Likewise.
696         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
697         compute_save_world_info, rs6000_emit_prologue,
698         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
699         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
700         directly.
701
702 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
703
704         PR middle-end/21282
705         * convert.c (convert_to_integer): Convert ceil and floor in
706         c99 mode only.
707
708 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
709
710         PR target/20813
711         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
712         define_insn_and_split.  Split only when memory operand is
713         offsettable.  Use adjust_address rather than plus_constant.
714         (floatunssidf2_internal): Likewise.
715         (fix_truncdfsi2_internal): Split only when memory operand is
716         offsettable.  Use adjust_address rather than plus_constant.
717         (fix_trunctfsi2_internal): Likewise.
718         (floatsidf2_internal): Likewise.
719
720 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
721
722         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
723         (set_value_range_to_null): Likewise.
724         (set_value_range_to_varying): New function.  Use it in all
725         call sites that used to call set_value_range (vr, VR_VARYING, ...).
726         (extract_range_from_assert): If the integral type has a
727         super-type, and LIMIT is not within MIN and MAX values of that
728         type, set the resulting range to VR_VARYING.
729
730 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
731
732         * config/mmix/mmix.opt: New file.
733         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
734         (mmix_cc1_ignored_option): Don't declare.
735         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
736         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
737         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
738         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
739         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
740         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
741         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
742         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
743         Don't define.
744         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
745         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
746         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
747
748 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
749
750         PR c/15698
751         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
752         * c-decl.c (current_function_prototype_built_in,
753         current_function_prototype_arg_types): New.
754         (merge_decls): Keep source location of prototype followed by
755         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
756         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
757         (start_function): Always set current_function_prototype_locus,
758         current_function_prototype_built_in and
759         current_function_prototype_arg_types.  Check for external
760         prototype whether or not visible for external function and set
761         current_function_prototype_arg_types accordingly.
762         (store_parm_decls_oldstyle): Use
763         current_function_prototype_arg_types for checking old-style
764         definition against prototype.  Give warnings only if
765         current_function_prototype_built_in).
766
767 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
768
769         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
770         (ggc_alloc_zone_stat): Don't define.
771         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
772         ggc_alloc_zone_pass_stat.
773         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
774         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
775         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
776
777 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
778
779         * calls.c (expand_call): Handle current_function_pretend_args_size
780         when checking for sibcalls.
781
782 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
783
784         PR tree-optimization/21294
785         * tree-vrp.c (vrp_expr_computes_nonzero): New.
786         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
787
788 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
789
790         PR 19985
791         * gcov-io.h: Declare gcov external functions hidden.
792
793 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
794
795         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
796         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
797         Use VEC instead of VARRAY.
798         (equiv_free): New.
799
800         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
801         out common code.
802
803 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
804
805         * c-common.c (resolve_overloaded_builtin): Forward to target
806         hook for BUILT_IN_MD built-ins.
807         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
808         for all types of built-in.
809         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
810         in the definition of the target hooks struct.
811         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
812         * config/rs6000/altivec.h: Rewritten.
813         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
814         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
815         rs6000_builtin_type, rs6000_builtin_type_compatible,
816         altivec_overloaded_builtins, rs6000_builtin_type,
817         rs6000_builtin_type_compatible): New.
818         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
819         New.
820         (def_builtin): Turn into a function.  Check for duplicates and store
821         the builtin into rs6000_builtin_decls.
822         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
823         bdesc_1arg): Add overloaded builtins.
824         (altivec_expand_builtin): Check for unresolved overloaded builtins,
825         do not support ALTIVEC_COMPILETIME_ERROR.
826         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
827         nodes to represent front-end types.
828         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
829         with opaque arguments and/or return values.
830         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
831         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
832         (rs6000_builtin_type_index): New.
833         (is_ev64_opaque_type): Rename to...
834         (rs6000_is_opaque_type): ... this.
835         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
836         target hook.
837
838 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
839
840         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
841         instead of VARRAY.
842
843 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
844             Bernd Schmidt  <bernd.schmidt@analog.com>
845
846         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
847         print_address_operand, print_operand, legitimize_pic_address,
848         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
849         output_pop_multiple): Use gcc_assert or gcc_unreachable as
850         appropriate.
851         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
852
853 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
854
855         * doc/passes.texi: Document vectorization pass.
856
857 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
858
859         * tree-scalar-evolution.c (get_exit_conditions_rec,
860         select_loops_exit_conditions,
861         number_of_iterations_for_all_loops,
862         analyze_scalar_evolution_for_all_loop_phi_nodes,
863         scev_analysis): Use VEC instead of VARRAY.
864
865 2005-05-02  Michael Matz  <matz@suse.de>
866
867         PR c++/19542
868         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
869         (warn_strict_null_sentinel): Define.
870         (check_function_sentinel): Check for null_node as valid sentinel too.
871         * c-common.h (c_tree_index): Added CTI_NULL.
872         (null_node) Define global_tree[CTI_NULL].
873         (warn_strict_null_sentinel): Declare.
874         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
875         * c.opt: (Wstrict-null-sentinel): New C++ option.
876         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
877
878 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
879
880         * gimplify.c (gimplify_compound_lval): Use VEC instead of
881         VARRAY.
882
883         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
884
885         * dwarf2out.c (decl_scope_table, push_decl_scope,
886         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
887         instead of VARRAY.
888
889 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
890
891         PR C++/14391
892         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
893         if !flag_weak.
894         * doc/cpp.texi (__DEPRECATED): Document.
895         (__EXCEPTIONS): Likewise.
896         (__GXX_WEAK__): Likewise.
897
898         * function.c (INVOKE__main): Do not define.
899         (expand_main_function): Check HAS_INIT_SECTION when determining
900         whether or not to call __main.
901
902 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
903
904         * tree-ssa-loop-ivopts.c: Fix a comment typo.
905
906 2005-01-05  Paul Brook  <paul@codesourcery.com>
907
908         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
909         (INITIALIZE_TRAMPOLINE): Use it.
910         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
911         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
912         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
913
914 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
915
916         * doc/install.texi (Specific): Omit dots in the @anchors names
917         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
918         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
919
920 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
921
922         PR tree-optimization/18316
923         PR tree-optimization/19126
924         * tree.c (build_int_cst_type): Avoid shift by size of type.
925         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
926         argument.
927         * tree-scalar-evolution.h (simple_iv): Declaration changed.
928         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
929         field.
930         (dump_cand): Dump depends_on information.
931         (determine_biv_step): Add argument to simple_iv call.
932         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
933         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
934         constant.
935         (add_candidate_1): Record depends_on for candidates.
936         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
937         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
938         Handle ivs with nonconstant step.
939         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
940         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
941         (create_new_iv): Unshare the step before passing it to create_iv.
942         (free_loop_data): Free cand->depends_on.
943         (build_addr_strip_iref): New function.
944         (find_interesting_uses_address): Use build_addr_strip_iref.
945         (strip_offset_1): Split the recursive part from strip_offset.
946         Strip constant offset component_refs and array_refs.
947         (strip_offset): Split the recursive part to strip_offset_1.
948         (add_address_candidates): Removed.
949         (add_derived_ivs_candidates): Do not use add_address_candidates.
950         (add_iv_value_candidates): Add candidates with stripped constant
951         offset.  Consider all candidates with initial value 0 important.
952         (struct affine_tree_combination): New.
953         (aff_combination_const, aff_combination_elt, aff_combination_scale,
954         aff_combination_add_elt, aff_combination_add,
955         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
956         fold_affine_sum): New functions.
957         (get_computation_at): Use fold_affine_sum.
958         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
959         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
960         to simple_iv call.
961
962 2005-04-30  Michael Matz  <matz@suse.de>
963
964         * config/i386/i386.md (movmemsi): Also active when
965         TARGET_INLINE_ALL_STRINGOPS.
966
967 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
968
969         PR bootstrap/20633
970         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
971
972 2005-04-30  Paul Brook  <paul@codesourcery.com>
973
974         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
975         thumb mode.
976         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
977         * config/arm/ieee754-sf.S: Ditto.
978         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
979         (FUNC_ALIAS): Use .thumb_set for thumb routines.
980
981 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
982
983         * tree-ssanames.c: Fix a comment typo.
984         * doc/options.texi: Fix a typo.
985
986 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
987
988         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
989         gcc_unreachable as appropriate.
990         (split_adds_subs, cond_string, print_operand,
991         h8300_initial_elimination_offset, h8300_classify_operand,
992         h8300_unary_length, h8300_short_immediate_length,
993         h8300_bitfield_length, h8300_binary_length,
994         h8300_insn_length_from_table, compute_mov_length, output_plussi,
995         compute_plussi_length, compute_plussi_cc, output_logical_op,
996         compute_logical_op_length, compute_logical_op_cc,
997         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
998         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
999         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
1000         h8300_regs_ok_for_stm): Likewise.
1001         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
1002         monitor_prologue): Likewise.
1003
1004 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
1005
1006         * loop-invariant.c (invariants, create_new_invariant,
1007         get_inv_cost, best_gain_for_invariant,
1008         find_invariants_to_move, move_invariants,
1009         init_inv_motion_data, free_inv_motion_data): Use VEC instead
1010         of VARRAY.
1011
1012 2005-04-29  Richard Henderson  <rth@redhat.com>
1013
1014         * function.c (instantiate_decls): Remove valid_only argument.
1015         (instantiate_decls_1, instantiate_decl): Likewise.
1016         (instantiate_virtual_regs_1): Delete.
1017         (instantiate_virtual_regs_lossage): Delete.
1018         (instantiate_virtual_regs_in_rtx): New.
1019         (safe_insn_predicate): New.
1020         (instantiate_virtual_regs_in_insn): New.
1021         (instantiate_virtual_regs): Update to match all that.  Only run
1022         instantiate_decls once.
1023
1024 2005-04-29  Richard Henderson  <rth@redhat.com>
1025             Daniel Jacobowitz  <dan@codesourcery.com>
1026
1027         * gengtype.c (write_func_for_structure): Split out ...
1028         (output_type_enum): ... new function.  Fix thinko accessing
1029         TYPE_PARAM_STRUCT data.
1030
1031 2005-04-29  Tom Tromey  <tromey@redhat.com>
1032
1033         * tree.c (build_block): Removed unused 'tags' argument.
1034         * tree.h (build_block): Removed argument.
1035
1036 2005-04-29  Michael Matz  <matz@suse.de>
1037
1038         PR rtl-optimization/21144
1039         * postreload.c (reload_cse_move2add): Check for VOIDmode.
1040
1041 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
1042
1043         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
1044         flag_reorder_blocks.
1045
1046 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
1047
1048         PR tree-optimization/21030
1049         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
1050         ranges where VR->MAX is smaller than VR->MIN.
1051
1052 2005-04-29  Devang Patel  <dpatel@apple.com>
1053
1054         PR tree-optimization/21272
1055         PR tree-optimization/21266
1056         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
1057         
1058 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
1059
1060         * tree-flow-inline.h: Fix a comment typo.
1061         * doc/tree-ssa.texi: Fix a typo.
1062
1063         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
1064
1065 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1066
1067         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
1068         gcc_unreachable as appropriate.
1069         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
1070         fr30_print_operand, fr30_move_double): Likewise.
1071         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
1072
1073 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
1074
1075         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
1076         definition has already been provided.
1077         (ARM_EABI_DTORS_SECTION_OP): Likewise.
1078         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
1079         (ARM_EABI_DTORS_SECTION_OP): Likewise.
1080
1081 2005-04-29  Jim Tison  <jtison@us.ibm.com>
1082
1083         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
1084         trace hooks calls to improve performance.
1085
1086 2005-04-29  Julian Brown  <julian@codesourcery.com>
1087             Mark Mitchell  <mark@codesourcery.com>
1088             Paul Brook  <paul@codesourcery.com>
1089
1090         * crtstuff.c: Handle targets that use .init_array.
1091         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
1092         that INVOKE__main is set correctly.
1093         (expand_main_function): Test INVOKE__main.
1094         * libgcc2.c: Do not define __main when using .init_array.
1095         * config/arm/arm.c (arm_elf_asm_constructor): New function.
1096         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
1097         libgcc version.
1098         (DTORS_SECTION_ASM_OP): Likewise.
1099         (CTOR_LIST_BEGIN): Define specially when in libgcc.
1100         (CTOR_LIST_END): Likewise.
1101         (DTOR_LIST_BEGIN): Likewise.
1102         (DTOR_LIST_END): Likewise.
1103         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
1104         (FINI_SECTION_ASM_OP): Likewise.
1105         (INIT_ARRAY_SECTION_ASM_OP): Define.
1106         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
1107         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
1108         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
1109         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
1110         (FINI_ARRAY_SECTION_ASM_OP): Likewise.  
1111
1112 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1113
1114         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
1115         gcc_assert and gcc_unreachable as appropriate.
1116         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
1117         const_int_cost, output_move_const_into_data_reg,
1118         output_move_qimode, output_move_double, find_addr_reg,
1119         print_operand, print_operand_address): Likewise.
1120         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
1121         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
1122         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
1123         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
1124         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
1125         conditional_trap): Likewise.
1126         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
1127
1128 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1129
1130         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
1131         gcc_unreachable as appropriate.
1132         (gen_conditional_move, xtensa_split_operand_pair,
1133         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
1134         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
1135         xtensa_copy_incoming_a7, xtensa_output_literal,
1136         xtensa_output_literal, xtensa_output_literal): Likewise.
1137         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1138         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
1139         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
1140         movsicc_internal1, movsfcc_internal0,
1141         movsfcc_internal1): Likewise.
1142
1143 2005-04-28  James E Wilson  <wilson@specifixinc.com>
1144
1145         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
1146         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
1147
1148 2005-04-28  DJ Delorie  <dj@redhat.com>
1149
1150         * opt-functions.awk (var_set): Emit proper initializer for
1151         non-target bitfields.
1152
1153 2005-04-28  Devang Patel  <dpatel@apple.com>
1154
1155         * dbxout.c (have_used_extensions): Remove.
1156         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
1157         have_used_extensions.
1158         
1159 2005-04-28  James E Wilson  <wilson@specifixinc.com>
1160
1161         * doc/install.texi: Update -enable-languages info.  Correct path to
1162         html docs.
1163
1164 2005-04-28  DJ Delorie  <dj@redhat.com>
1165
1166         * optc-gen.awk (END): Make sure no variable is defined more
1167         than once.
1168         * opth-gen.awk (END): Allocate bits on a per-variable basis.
1169         Allow for bitfield variables other than target_flags.
1170         * doc/options.text (Mask): Document that you may specify a
1171         variable other than target_flags.
1172
1173 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
1174
1175         PR rtl-optimization/18877
1176         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
1177         number in val.start.
1178
1179 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
1180
1181         PR target/20813
1182         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
1183         MASK_PPC_GFXOPT.
1184         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
1185         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
1186         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
1187
1188 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
1189
1190         * arm.c (legitimize_pic_address): Fix sense of assertion test for
1191         creating pseudos when the base offset is too large.
1192
1193 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
1194
1195         * global.c (earlyclobber_regclass): Change the type to
1196         VEC(int,heap).
1197         (check_earlyclobber): Update uses of earlyclobber_regclass.
1198         (mark_reg_use_for_earlyclobber): Likewise.
1199         (calculate_local_reg_bb_info): Allocate and free
1200         earlyclobber_regclass using the VEC API.
1201
1202 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
1203
1204         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
1205         assert.
1206
1207 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
1208
1209         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
1210         (*targetm.foo).
1211
1212         * config.gcc: Obsolete c4x-* and tic4x-*.
1213
1214         * tree.h (edge_def): Remove.
1215
1216         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
1217         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
1218         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
1219         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
1220         where appropriate.
1221
1222         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
1223         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
1224         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
1225         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
1226         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
1227         machmode.def, mips-tfile.c, params.c, pretty-print.c,
1228         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
1229         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
1230         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
1231         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
1232         config/i386/cygming.h, config/i386/djgpp.h,
1233         config/i386/lynx.h, config/i386/netware.c,
1234         config/i386/winnt.c, config/ia64/ia64-c.c,
1235         config/iq2000/iq2000.c, config/m32r/little.h,
1236         config/m68k/m68k-protos.h, config/m68k/m68k.h,
1237         config/m68k/m68k.md, config/mcore/mcore.c,
1238         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
1239         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
1240         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
1241         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
1242         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
1243         config/pdp11/pdp11.h, config/rs6000/darwin.h,
1244         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
1245         config/s390/2064.md, config/s390/2084.md,
1246         config/s390/s390-modes.def, config/s390/s390-protos.h,
1247         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
1248         config/stormy16/stormy16.c, config/vax/vax-protos.h,
1249         config/vax/vax.c, config/vax/vax.h,
1250         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
1251         copyright.
1252
1253 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
1254
1255         * c-typeck.c (build_compound_expr): Correct logic in last change.
1256
1257 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
1258
1259         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
1260         parameters.  Replace conditional move code with assert checking for
1261         ar.lc.  Delete obsolete comments.
1262         (set_src_needs_barrier): Delete cond parameter, and code using it.
1263         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
1264         assert checking for PR_REGS.  Fix calls to update_set_flags and
1265         set_src_needs_barrier.
1266         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
1267         callers.  Rewrite explanatory comment before the function.
1268         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
1269         Fix all callers.
1270
1271 2005-04-27  Mike Stump  <mrs@apple.com>
1272
1273         * doc/cpp.texi: gcc now implements universal character names.
1274
1275 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
1276
1277         PR c/21159
1278         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
1279         being a compound expression whose right-hand side is cast to void.
1280
1281 2005-04-27  Caroline Tice  <ctice@apple.com>
1282
1283         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1284         Remove targetm.have_named_sections test.
1285         (fix_edges_for_rarely_executed_code): Likewise.
1286         (insert_section_boundary_note): Likewise.
1287         (reorder_basic_blocks): Check partitioning flag before calling
1288         verify_hot_cold_block_grouping.
1289         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
1290         the function struct rather than global variables.
1291         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
1292         (COLD_END_LABEL): Likewise
1293         (cold_text_section_label): New static global variable.
1294         (cold_end_label): Likewise.
1295         (dwarf2out_switch_text_section): Get hot/cold section labels from
1296         the function struct rather than global variables; test to make sure
1297         cfun is defined.
1298         (output_aranges): Use cold_text_section_label and cold_end_label;
1299         check partitioning flag before putting out delta.
1300         (output_ranges): Remove incorrect code attempting to use
1301         hot/cold labels.
1302         (output_line_info): Get cold section label from function struct; test
1303         to make sure cfun is defined.
1304         (add_location_or_const_value_attribute): Likewise.
1305         (dwarf2out_var_location): Likewise.
1306         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
1307         write out cold_text_section_label if partition flag is set.
1308         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
1309         * function.h (struct function): Add new fields to point to hot/cold
1310         section labels: hot_section_label, cold_section_label,
1311         hot_section_end_label and cold_section_end_label; also add new field
1312         for cold text section name, unlikely_text_section_name.
1313         * opts.c (decode_options): Turn off partitioning flag if
1314         !targetm.have_named_sections.
1315         * output.h (hot_section_label): Remove.
1316         (hot_section_end_label): Remove.
1317         (cold_section_end_label): Remove.
1318         (unlikely_section_label): Remove.
1319         (unlikely_text_section_name): Remove.
1320         * passes.c (rest_of_handle_final):  Remove extra blank line.
1321         * varasm.c (unlikely_section_label): Remove.
1322         (hot_section_label): Remove.
1323         (hot_section_end_label): Remove.
1324         (cold_section_end_label): Remove.
1325         (unlikely_text_section_name):  Remove.
1326         (initialize_cold_section_name): Modify to call
1327         targetm.strip_name_encoding; to store cold section name in current
1328         function struct, if it exists; and to only use the decl_section_name
1329         if flag_named_sections is true.
1330         (unlikely_text_section): Modify to get section name out of current
1331         function struct, if there is one; otherwise build it from
1332         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
1333         (in_unlikely_text_section): Likewise.
1334         (named_section): Modify to get/put cold section name in current function
1335         struct, if there is one.
1336         (function_section):  Change 'bool unlikely' to 'int reloc'; check
1337         targetm.have_named_sections before calling named_section.
1338         (current_function_section): Likewise.
1339         (assemble_start_function): Modify to get/put unlikely_text_section_name
1340         in current function struct; modify to get hot/cold section labels
1341         from function struct; initialize labels using
1342         ASM_GENERATE_INTERNAL_LABEL;
1343         test partitioning flag before writing out hot section label.
1344         (assemble_end_function): Test partitioning flag before writing out
1345         hot/cold section labels.
1346         (default_section_type_flags_1):  Get cold text section name from
1347         function struct if there is one; Set flags correctly for
1348         cold text section if there is not a current function struct.
1349         
1350 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
1351
1352         * tree-ssa-propagate.c (set_rhs): Revert last change.
1353
1354 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
1355
1356         * explow.c (convert_memory_address): Add gcc_assert.
1357
1358 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
1359
1360         * configure.ac: Check for ld --sysroot support.
1361         * gcc.c: Document %R specifier for specs.
1362         (SYSROOT_SPEC): New macro.
1363         (sysroot_spec): New variable.
1364         (static_specs): Add sysroot_spec.
1365         (main): Pass the sysroot spec to the linker if appropriate.
1366         * configure: Regenerated.
1367         * config.in: Likewise.
1368
1369 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
1370
1371         * fold-const.c (fold_binary): Use build_fold_addr_expr
1372         for address calculation and INDIRECT_REF handling.
1373
1374 2005-04-27  Andrew Haley  <aph@redhat.com>
1375
1376         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
1377
1378 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1379
1380         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
1381         pointer when thumb backtracing is on.
1382
1383         * config/fp-bit.c (abort): Revert change.
1384
1385 2005-04-27  Ian Lance Taylor  <ian@airs.com>
1386
1387         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
1388
1389 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1390
1391         * tree-ssa-dce.c: Fix a comment typo.
1392
1393 2005-04-27  David S. Miller  <davem@davemloft.net>
1394
1395         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
1396         Kill setjmpless_size.  current_function_calls_setjmp is completely
1397         computed when we are called, so just use the optimized size value
1398         instead of using REG_SAVE_AREA notes.
1399         (optimize_save_area_alloca): Delete....
1400         * rtl.h (optimize_save_area_alloca): Likewise...
1401         * passes.c (rest_of_compilation): and don't call it any more.
1402         * reg-notes.def (SAVE_AREA): Delete.
1403         
1404 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1405
1406         * config/fp-bit.c (abort): Add noreturn attribute.
1407
1408         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
1409         gcc_unreachable as appropriate.
1410         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
1411         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
1412         ASM_OUTPUT_REG_POP): Likewise.
1413
1414 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
1415
1416         * tree-complex.c (expand_vector_operations_1): Do not build
1417         VIEW_CONVERT_EXPR's for the lhs.
1418
1419 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1420
1421         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
1422         unnecessary noncanonical RTL handling.
1423         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
1424         gcc_assert and gcc_unreachable.
1425
1426         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
1427         gcc_unreachable as appropriate.
1428         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
1429         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
1430         use_return_insn, const_ok_for_op, arm_gen_constant,
1431         arm_canonicalize_comparison, legitimize_pic_address,
1432         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
1433         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
1434         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
1435         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
1436         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
1437         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
1438         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
1439         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
1440         output_call, output_mov_long_double_fpa_from_arm,
1441         output_mov_long_double_arm_from_fpa,
1442         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
1443         output_move_double, arithmetic_instr, shift_op, int_log2,
1444         output_return_instruction, arm_output_function_prologue,
1445         arm_output_epilogue, arm_output_function_epilogue,
1446         emit_multi_reg_push, arm_get_frame_offsets,
1447         arm_compute_initial_elimination_offset, arm_expand_prologue,
1448         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
1449         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
1450         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
1451         thumb_compute_initial_elimination_offset,
1452         thumb_output_function_prologue, thumb_load_double_from_address,
1453         thumb_output_move_mem_multiple, thumb_reload_out_hi,
1454         arm_emit_vector_const, arm_dbx_register_number): Likewise.
1455         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
1456         * config/arm/arm.md (thumb_extendhisi2,
1457         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
1458         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
1459         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
1460         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
1461         * config/arm/cirrus.md (*cirrus_arm_movdi,
1462         *cirrus_movdf_hard_insn): Likewise.
1463         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
1464
1465 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1466
1467         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
1468         (num_ssa_names): Use VEC_length.
1469         (ssa_names): Use VEC_index.
1470         * tree-ssanames.c (ssa_names): Change the type to
1471         VEC(tree,gc).
1472         (init_ssanames, fini_ssa_names, make_ssanames,
1473         release_ssa_name): Update uses of ssa_names.
1474
1475         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
1476         Use fold_buildN instead of fold (buildN (...)).
1477
1478 2005-04-27  Devang Patel <dpatel@apple.com>
1479
1480         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
1481
1482 2005-04-27  Matt Thomas <matt@3am-software.com>
1483             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
1484
1485         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
1486         (vax_output_mi_thunk): Ditto.
1487         (vax_notice_cc_update): Ditto.
1488         (INDEX_REGISTER_P): Add trailing \.
1489         (BASE_REGISTER_P): Add trailing \.
1490         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
1491
1492 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
1493
1494         * tree-ssa-propagate.c (set_rhs): Check operand of
1495         ADDR_EXPR for gimpliness, too.
1496
1497 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1498
1499         * tree-ssa-pre.c: Fix a comment typo.
1500
1501 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
1502
1503         PR tree-optimization/21171
1504         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
1505         record address uses if the reference is volatile.
1506
1507 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
1508
1509         * tree-complex.c (expand_vector_operation): New, extracted from
1510         expand_vector_operations_1.
1511         (tree_vec_extract): Build a NOP_EXPR.
1512         (expand_vec_parallel): Do not care about returning the correct type.
1513         (expand_vector_operations_1): Call expand_vector_operation.
1514         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
1515
1516         * tree-complex.c (gate_expand_vector_operations): New.
1517         (pass_lower_vector_ssa): Use it.
1518         * tree-optimize.c (init_tree_optimization_passes): Include
1519         pass_lower_vector_ssa.
1520         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
1521         (vectorizable_operation): Use it.
1522         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
1523         integer modes for the vector type.
1524
1525         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
1526         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
1527         Do not cope with UNITS_PER_SIMD_WORD == 0.
1528         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
1529         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
1530         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
1531         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
1532         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1533         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1534         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1535
1536         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
1537         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
1538         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
1539
1540         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
1541         (UNITS_PER_SIMD_WORD): New.
1542
1543 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1544
1545         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
1546         gcc_unreachable as appropriate.
1547         (ia64_expand_load_address, ia64_expand_tls_address,
1548         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
1549         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
1550         next_scratch_gr_reg, ia64_initial_elimination_offset,
1551         ia64_expand_prologue, ia64_expand_epilogue,
1552         ia64_output_dwarf_dtprel, ia64_print_operand,
1553         ia64_register_move_cost, first_instruction, rws_access_regno,
1554         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
1555         ia64_sched_init, ia64_variable_issue,
1556         ia64_first_cycle_multipass_dfs_lookahead_guard,
1557         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
1558         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
1559         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
1560         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
1561         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
1562         * config/ia64/predicates.md (got_symbolic_operand,
1563         sdata_symbolic_operand): Likewise.
1564         * config/ia64/vect.md (vcondv2sf): Likewise.
1565
1566 2005-04-27  Matt Thomas <matt@3am-software.com>
1567
1568         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
1569         CONSTANT_ADDRESS_P in config/vax/vax.h
1570         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h. 
1571         (INDEX_REGISTER_P): New.
1572         (BASE_REGISTER_P): New.
1573         (indirectable_constant_address_p): New.  Adapted from
1574         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
1575         (indirectable_address_p): New.  Adapted from
1576         INDIRECTABLE_ADDRESS_P in vax.h.
1577         (nonindexed_address_p): New.  Adapted from
1578         GO_IF_NONINDEXED_ADDRESS in vax.h.
1579         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
1580         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
1581         (legitimate_address_p): New.  Adapted from
1582         GO_IF_LEGITIMATE_ADDRESS in vax.h.
1583         (vax_mode_dependent_address_p): New.  Adapted from
1584         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
1585         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
1586         legitimate_constant_address_p.
1587         (CONSTANT_P): Use legitimate_constant_p.
1588         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
1589         (INDIRECTABLE_ADDRESS_P): Removed.
1590         (GO_IF_NONINDEXED_ADDRESS): Removed.
1591         (INDEX_TEMP_P): Removed.
1592         (GO_IF_REG_PLUS_INDEX): Removed.
1593         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
1594         definitions, depending on whether REG_OK_STRICT is defined.
1595         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
1596         Two definitions, depending on whether REG_OK_STRICT is defined.
1597         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
1598         added.
1599         (legitimate_constant_p): Prototype added.
1600         (legitimate_address_p): Prototype added.
1601         (vax_mode_dependent_address_p): Prototype added.
1602
1603 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1604
1605         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
1606
1607 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
1608
1609         PR c/21213
1610         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
1611         transparent union.
1612
1613 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
1614
1615         PR c/20740
1616         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
1617         assertion failures, if __gcc_host_wide_int__ is not properly
1618         defined.
1619         (init_dynamic_diag_info): Give errors, not assertion failures, if
1620         location_t, tree or __gcc_host_wide_int__ are not properly
1621         defined.
1622
1623 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
1624
1625         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
1626         n_iv_uses, iv_use, n_iv_cands, iv_cand,
1627         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
1628         prepare_decl_rtl, free_loop_data,
1629         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
1630         VARRAY.
1631
1632         * tree.h (tree_phi_node): Add a comment about the order of PHI
1633         arguments.
1634
1635 2005-04-26  Paul Brook  <paul@codesourcery.com>
1636
1637         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
1638
1639 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
1640
1641         * config/mips.mips.c (mips_legitimize_tls_address): Use
1642         gcc_unreachable.
1643
1644         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
1645         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
1646         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
1647
1648         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
1649         'abort'.
1650
1651 2005-04-26  Jeff Law  <law@redhat.com>
1652
1653         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
1654         (op_iter_init_must_and_may_def): Likewise.
1655         (unmodifiable_var_p): Move to a later point in the file.
1656         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
1657         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
1658         (dse_record_phis): Directly check for virtual operands rather than
1659         using need_imm_uses_for.
1660         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
1661         store has multiple V_{MAY,MUST}_DEF operands.
1662
1663 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
1664
1665         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
1666         stmt.
1667
1668 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
1669
1670         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
1671         call to find_edge outside a loop to go through a PHI chain.
1672
1673 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
1674
1675         PR tree-optimization/17598
1676         * fold-const.c (fold_binary): Fold comparisons of addresses
1677         of COMPONENT_REFs which reference the same field to
1678         comparisons of the addresses of the base objects.
1679
1680 2005-04-26  Julian Brown  <julian@codesourcery.com>
1681
1682         * config/arm/arm.c (arm_return_in_msb): New function.
1683         (arm_must_pass_in_stack): New function.
1684         (TARGET_RETURN_IN_MSB): Define target hook.
1685         (TARGET_MUST_PASS_IN_STACK): Define target hook.
1686         (arm_function_value): Pad small aggregate return.
1687         (arm_pad_arg_upward): New function.
1688         (arm_pad_reg_upward): New function.
1689         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
1690         (FUNCTION_ARG_PADDING): Define macro.
1691         (BLOCK_REG_PADDING): Define macro.
1692         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
1693         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
1694         (arm_pad_reg_upward): Declare function.
1695
1696 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
1697
1698         * basic-block.h (ei_cond): New.
1699         (FOR_EACH_EDGE): Call ei_cond.
1700
1701         PR tree-optimization/21047
1702         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
1703         (fold): Don't handle ASSERT_EXPR.
1704
1705 2005-04-25  Roger Sayle  <roger@eyesopen.com>
1706
1707         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
1708         all writes to any stack register as a read/write dependency on
1709         FIRST_STACK_REG.
1710         (sched_analyze_2): Likewise, for reads from any stack register.
1711
1712 2005-04-25  Richard Henderson  <rth@redhat.com>
1713
1714         * final.c (output_addr_const): Revert 2005-04-09 change.
1715
1716 2005-04-25  Mike Stump  <mrs@apple.com>
1717
1718         * config/darwin.c (darwin_encode_section_info): Always set
1719         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
1720
1721 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1722
1723         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
1724         gensupport.c, protoize.c, toplev.c: Replace calls to
1725         `unlock_stream' with `unlock_std_streams'.
1726
1727 2005-04-25  Devang Patel <dpatel@apple.com>
1728
1729         * dbxout.c (dbxout_type): Emit attribute vector.
1730         
1731 2005-04-05  Paul Brook  <paul@codesourcery.com>
1732
1733         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
1734         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
1735         * config/arm/arm.c (arm_cxx_atexit_name): New function.
1736         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
1737         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
1738         (register_dtor_fn): Likewise.
1739         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
1740
1741 2005-04-25  Ian Lance Taylor  <ian@airs.com>
1742
1743         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
1744         * c-common.h (EXPR_STMT_EXPR): Don't define.
1745         (c_common_stmt_codes): Don't define.
1746         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
1747         * c-gimplify.c (gimplify_expr_stmt): Remove.
1748         (c_gimplify_expr): Remove EXPR_STMT case.
1749         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
1750         to INIT_STATEMENT_CODES.
1751         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
1752
1753 2005-04-25  Jan Hubicka  <jh@suse.cz>
1754
1755         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
1756
1757         * except.c: Include diagnostic.h
1758         (dump_eh_tree, verify_eh_tree): New functions.
1759         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
1760         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
1761         (dump_function_to_file): dump eh tree.
1762         * tree-eh.c (mark_eh_edge): New function.
1763         (mark_eh_edge_found_error): New static variable.
1764         (verify_eh_edges): New function.
1765
1766 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
1767
1768         * tree-ssa-alias.c (fieldoff_t): Remove.
1769         (fieldoff_s): typedef the structure itself.  Create a vector of
1770         objects.
1771         (push_fields_onto_fieldstack): Return count of fields pushed.
1772         Remove peeling of first field.  Adjust.
1773         (fieldoff_compare): Adjust.
1774         (create_overlap_variables_for): Adjust.
1775
1776 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
1777
1778         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
1779
1780 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
1781
1782         PR bootstrap/21215
1783         * doc/install.texi: Document correct assembler and linker to use
1784         on i?86-*-solaris2.10.
1785
1786 2005-04-25  Steven Bosscher  <stevenb@suse.de>
1787
1788         Fix PR tree-optimization/21173
1789
1790         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
1791         Unshare expression we pass to force_gimple_operand.
1792
1793 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
1794             Stephen Clarke <stevec@superh.com>
1795             Roger Sayle <roger@eyesopen.com>
1796
1797         PR rtl-optimization/20413
1798         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
1799         VOIDmode for LABEL_REF.
1800         * final.c (shorten_branches): Likewise.
1801         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
1802         * loop.c (reg_dead_after_loop): Likewise.
1803         * varasm.c (decode_addr_const): Likewise.
1804         * doc/rtl.texi: Document mode requirement for LABEL_REF.
1805
1806 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
1807
1808         * config.gcc (avr-*-*): Remove redundant "case".
1809
1810 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
1811
1812         * tree-vect-analyze.c (vect_mark_relevant): Take
1813         VEC(tree,heap) instead of varray_type as an argument.
1814         (vect_mark_stmts_to_be_vectorized): Change the type of
1815         worklist to VEC(tree,heap).  Adjust uses of worklist.
1816
1817 2005-04-24  Devang Patel  <dpatel@apple.com>
1818
1819         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1820         
1821 2005-04-24  Ian Lance Taylor  <ian@airs.com>
1822
1823         * c-semantics.c (build_stmt): Remove test of specific tree codes
1824         for TREE_SIDE_EFFECTS handling.
1825
1826 2005-04-24  Per Bothner  <per@bothner.com>
1827
1828         * c-opts.c (finish_options):  Make the line-number of the <built-in>
1829         location 0, as assumed elsewhere, rather than 1.
1830
1831 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
1832
1833         * tree-ssa-uncprop.c (equiv_stack): Change the type o
1834         VEC(tree,heap).
1835         (tree_ssa_uncprop, uncprop_finalize_block,
1836         uncprop_initialize_block): Update uses of equiv_stack.
1837
1838 2005-04-24  Richard Henderson  <rth@redhat.com>
1839
1840         PR rtl-opt/21163
1841         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
1842         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
1843         constm1_rtx.
1844         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
1845         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
1846         <DIV, MOD>: Likewise.
1847
1848 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1849
1850         * collect2.c (main): Unlock the stdio streams.
1851         * gcc.c (main): Likewise.
1852         * gcov-dump.c (main): Likewise.
1853         * gcov.c (main): Likewise.
1854         * gen-protos.c (main): Likewise.
1855         * gensupport.c (init_md_reader_args_cb): Likewise.
1856         * protoize.c (main): Likewise.
1857         * toplev.c (general_init): Likewise.
1858
1859 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
1860
1861         PR middle-end/20991
1862         * cgraph.h (cgraph_local_info): Add vtable_method field.
1863         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
1864         and node is vtable_method, finalized and not reachable, don't do
1865         anything.
1866
1867 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
1868
1869         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
1870         COMPARISON_CLASS_P.
1871         * tree-ssa-pre.c (create_value_expr_from): Use
1872         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
1873         * tree-ssa-propagate.c (stmt_makes_single_load,
1874         stmt_makes_single_store): Use REFERENCE_CLASS_P.
1875         * tree-vect-transform.c (vect_is_simple_cond): Use
1876         COMPARISON_CLASS_P.
1877         * tree-vrp.c (extract_range_from_assert,
1878         build_assert_expr_for, fp_predicate, has_assert_expr): Use
1879         COMPARISON_CLASS_P.
1880
1881         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
1882         of tpa_to_clear to VEC(int,heap).  Update uses of
1883         tpa_to_clear.  Free tpa_to_clear at the end.
1884
1885 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
1886
1887         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
1888         function decl.
1889
1890 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
1891
1892         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
1893         and gcc_unreachable as appropriate.
1894         (num_insns_constant, output_vec_const_move,
1895         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
1896         rs6000_emit_set_const, rs6000_emit_move,
1897         spe_build_register_parallel, function_arg,
1898         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
1899         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
1900         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
1901         rs6000_common_init_builtins, expand_block_clear,
1902         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
1903         extract_ME, rs6000_get_some_local_dynamic_name,
1904         rs6000_output_function_entry, print_operand,
1905         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
1906         output_cbranch, output_e500_flip_gt_bit,
1907         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
1908         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
1909         compute_save_world_info, rs6000_stack_info,
1910         rs6000_emit_load_toc_table, rs6000_frame_related,
1911         spe_synthesize_frame_save, rs6000_emit_epilogue,
1912         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
1913         output_function_profiler, rs6000_trampoline_size,
1914         rs6000_initialize_trampoline, find_addr_reg,
1915         rs6000_machopic_legitimize_pic_address,
1916         rs6000_initial_elimination_offset,
1917         rs6000_dbx_register_number): Likewise.
1918         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
1919         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
1920         *movti_power, *movti_string, call, call_value, sibcall,
1921         sibcall_value): Likewise.
1922         * config/rs6000/spe.md (*movdf_e500_double,
1923         *movv2si_internal): Likewise.
1924         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
1925         from comment.
1926
1927 2005-04-24  Richard Henderson  <rth@redhat.com>
1928
1929         PR target/21101
1930         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
1931         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
1932         Deny modes smaller than 4 bytes.
1933         * config/i386/i386-protos.h: Update.
1934
1935 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
1936
1937         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
1938         Switch h8300-*-rtems* to ELF.
1939
1940 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
1941
1942         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
1943
1944 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
1945
1946         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
1947
1948 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
1949
1950         PR middle-end/21082
1951         * fold-const.c: Fold &a[i]-&a[j] to i-j.
1952
1953 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
1954
1955         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
1956         definitions of ssa names in condition.  Split recusive part to ...
1957         (tree_simplify_using_condition_1): New function.
1958         (expand_simple_operations): New function.
1959
1960 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
1961
1962         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
1963         (find_interesting_uses_cond): Do not use integer_zerop and
1964         integer_nonzerop to check for integer constants.
1965         (set_use_iv_cost): Record the value field.
1966         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
1967         determine_use_iv_cost_outer): Set the value field of the cost pair.
1968         (may_eliminate_iv): Do not return the comparison code.
1969         (iv_elimination_compare): New function.
1970         (determine_use_iv_cost_condition): Set the value field.  Record
1971         noneliminable invariants correctly.
1972         (rewrite_use_compare, rewrite_use_outer): Use the value field.
1973
1974 2005-04-23  DJ Delorie  <dj@redhat.com>
1975
1976         * diagnostic.c (warning): Accept parameter to classify warning option.
1977         (warning0): New, for when a pointer to an error() like function is needed.
1978         * errors.c (warning): Likewise.
1979         * errors.h (warning, warning0): Adjust prototypes.
1980         * toplev.h (warning, warning0): Likewise.
1981
1982         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
1983         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
1984         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
1985         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
1986         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
1987         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
1988         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
1989         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
1990
1991         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
1992         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
1993         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
1994         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
1995         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
1996         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
1997         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
1998         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
1999         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
2000         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
2001         config/rs6000/aix52.h, config/rs6000/darwin.h,
2002         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
2003         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
2004         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
2005         config/stormy16/stormy16.c, config/v850/v850-c.c,
2006         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
2007         callers.
2008         
2009 2005-04-23  Richard Henderson  <rth@redhat.com>
2010
2011         PR rtl-opt/21102
2012         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
2013         performing some integral scalar simplifications.
2014
2015 2005-04-23  Richard Henderson  <rth@redhat.com>
2016
2017         PR target/21099
2018         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
2019         simplifying CONST_VECTOR.
2020
2021 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2022
2023         * tree-ssa-live.c (live_worklist): Take a stack allocated on
2024         heap as an argument.  Update uses of stack.
2025         (calculate_live_on_entry): Allocate stack on heap.
2026
2027         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
2028         partition_link and tpa_nodes on heap.
2029
2030         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
2031         (mark_stmt_necessary, propagate_necessity,
2032         mark_really_necessary_kill_operand_phis): Update uses of
2033         worklist.
2034         (tree_dce_init): Allocate worklist using VEC_alloc.
2035         (tree_dce_done): Free worklist using VEC_free.
2036
2037 2005-04-23  Mike Stump  <mrs@apple.com>
2038
2039         * config/darwin.c (machopic_indirection_name): Don't use
2040         quotes needlessly.
2041         (darwin_emit_unwind_label): Use user_label_prefix instead of
2042         "_".
2043
2044 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2045
2046         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
2047
2048 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
2049
2050         * config.gcc <cris-*>: Specify .opt files.
2051         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
2052         config/cris/linux.opt: New files.
2053         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
2054         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2055         (TARGET_ELF): Override to 0.
2056         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
2057         -melinux-stacksize=N.
2058         * config/cris/cris.c: (cris_handle_option): New function.
2059         (TARGET_DEFAULT_TARGET_FLAGS): Override.
2060         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
2061         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
2062         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
2063         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
2064         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
2065         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
2066         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
2067         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
2068         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
2069         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
2070         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
2071         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
2072         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
2073         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
2074         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
2075         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
2076         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2077         (TARGET_LINUX): Define 0.
2078         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2079         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
2080         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
2081         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
2082         (TARGET_LINUX): Override to 1.
2083         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2084
2085 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2086
2087         * haifa-sched.c (schedule_block): Fix thinko in previous
2088         assertification patch.
2089
2090 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
2091
2092         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
2093         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
2094         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
2095         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
2096         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
2097         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
2098         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
2099         for hpux11.[1-9]*.
2100         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
2101         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
2102         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
2103         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
2104         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
2105         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
2106         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
2107         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
2108         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
2109         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
2110         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
2111         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
2112         (SUBTARGET_OPTIONS): Delete.
2113         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
2114         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
2115         instead of a string.
2116         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
2117         (pa_cpu_string, pa_unix_string): Delete.
2118         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
2119         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
2120         TARGET_HPUX_10_10.
2121         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2122         (pa_handle_option): New function.
2123         (override_options): Remove handling of -march=, -mfixed-range=,
2124         -mschedule= and -munix=.
2125         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
2126         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
2127         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
2128         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
2129         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
2130         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
2131         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
2132         redefining.
2133         * config/pa/pa.opt: New file.
2134         * config/pa/pa-hpux.opt: New file.
2135         * config/pa/pa-hpux1010.opt: New file.
2136         * config/pa/pa-hpux1111.opt: New file.
2137         * config/pa/pa64-hpux.opt: New file.
2138
2139 2005-04-22  David S. Miller  <davem@davemloft.net>
2140
2141         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
2142         integer when it's mode is VOIDmode not DImode.
2143
2144 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
2145
2146         * config/rs6000/rs6000.md (sync_add<mode>_internal,
2147         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
2148         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
2149         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
2150         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
2151         "bne- $-xxx" rather than local labels.
2152         (sync_lock_release<mode>): Add second operand.
2153         (lwsync): Use .long rather than a more meaningful opcode.
2154         * doc/md.texi (Standard Names): Add description of second
2155         parameter to sync_lock_test_and_set.
2156
2157 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2158
2159         PR tree-optimization/21088
2160         * fold-const.c (fold_unary, fold_binary, fold_ternary):
2161         Export.
2162         * tree-vrp.c (compare_values): Use fold_binary to compare
2163         pointers.  Use boolean_type_node as the type of a comparison
2164         expression being folded.
2165         * tree.h: Add prototypes for fold_unary, fold_binary,
2166         fold_ternary.
2167
2168         * tree-ssa-dom.c: Fix formatting.
2169
2170 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
2171
2172         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
2173         * lambda-code.c (perfect_nestify): Mark virtual operands in
2174         the moved statement for renaming.
2175         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
2176         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
2177         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
2178         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
2179         * tree-flow.h (struct var_ann_d): Update comments.
2180         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
2181         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
2182         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
2183         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
2184         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
2185         debug_names_replaced_by): Remove declarations.
2186         (delete_update_ssa, get_current_def, set_current_def): Declare.
2187         (rewrite_into_loop_closed_ssa): Add new argument.  Update
2188         all callers.
2189         * tree-into-ssa.c: Include params.h.
2190         (old_virtual_ssa_names): Remove.  Update all users.
2191         (need_to_replace_names_p): Remove.  Update all users.
2192         (struct update_ssa_stats_d): Declare.
2193         (update_ssa_stats): New local.
2194         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
2195         dump_tree_ssa_stats, debug_tree_ssa_stats,
2196         dump_update_ssa, debug_update_ssa,
2197         dump_names_replaced_by, debug_names_replaced_by): Declare.
2198         (get_current_def, set current_def): Make extern.
2199         (is_old_name, is_new_name): Protect against references
2200         past the end of the sets.
2201         (add_new_name_mapping): Assert that OLD and NEW are
2202         different SSA names for the same symbol.
2203         When adding a virtual mapping, update stats for virtual
2204         mapping heuristic.
2205         (insert_phi_nodes_for): If UPDATE_P is true, create the
2206         LHS of the new PHI by duplicating SSA name VAR.
2207         (insert_phi_nodes_1): Remove.  Update all users.
2208         (insert_phi_nodes): Remove second argument.  Update all
2209         users.
2210         (maybe_replace_use, maybe_replace_def): New.
2211         (rewrite_update_stmt): Call them.
2212         (mark_def_interesting): Remove calls to is_gimple_reg.
2213         (prepare_phi_args_for_update): Remove.  Update all users.
2214         (prepare_block_for_update): Only process virtual operands
2215         and GIMPLE registers in normal form.
2216         (prepare_use_sites_for): New.
2217         (prepare_names_to_update): Rename from prepare_def_sites.
2218         Call prepare_use_sites_for.
2219         (dump_update_ssa): Rename from dump_repl_tbl.
2220         Update all users.
2221         Show statistics for virtual mapping heuristic.
2222         (debug_update_ssa): Rename from debug_debug_repl_tbl.
2223         (init_update_ssa): Initialize UPDATE_SSA_STATS.
2224         (delete_update_ssa): Make extern.
2225         (mark_set_for_renaming): If the set is empty, do nothing.
2226         (release_ssa_name_after_update_ssa): Update comment.
2227         (insert_updated_phi_nodes_for): Do not remove existing
2228         PHI nodes for symbols.
2229         (switch_virtuals_to_full_rewrite_p): New.
2230         (switch_virtuals_to_full_rewrite): New.
2231         (update_ssa): Call them.
2232         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
2233         for every statement before updating.
2234         If all the names in NEW_SSA_NAMES have been marked for
2235         removal, do nothing.
2236         Only start at the top of the CFG if there are symbols in
2237         SYMS_TO_RENAME.
2238         (ssa_rewrite_finalize_block): Remove.
2239         (ssa_register_new_def): Remove.
2240         (ssa_rewrite_stmt): Remove.
2241         (ssa_rewrite_phi_arguments): Remove.
2242         (ssa_rewrite_initialize_block): Remove.
2243         (ssa_mark_def_sites): Remove.
2244         (ssa_mark_def_sites_initialize_block): Remove.
2245         (ssa_mark_phi_uses): Remove.
2246         (rewrite_ssa_into_ssa): Remove.
2247         * tree-phinodes.c (find_phi_node_for): Remove.
2248         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2249         Call update_ssa.
2250         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
2251         Remove calls to verify_dominators and
2252         verify_loop_structure.
2253         (tree_unswitch_single_loop): Call update_ssa.
2254         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
2255         returns false.
2256         Call verify_stmts.
2257         (delete_tree_ssa): Assert that need_ssa_update_p returns
2258         false.
2259         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
2260         * tree-vectorizer.c (allocate_new_names, rename_def_op,
2261         free_new_names): Remove.  Update all users.
2262         (rename_use_op): Call get_current_def.
2263         (rename_variables_in_bb): Do not handle any real or
2264         virtual definition.
2265         (slpeel_update_phis_for_duplicate_loop): Call
2266         get_current_def and set_current_def instead of using
2267         SSA_NAME_AUX.
2268         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
2269         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
2270         ssa_names_to_replace and delete_update_ssa.
2271         * doc/invoke.texi: Document --param min-virtual-mappings
2272         and --param virtual-mappings-ratio.
2273
2274 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
2275
2276         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
2277         for newly created PHI nodes.
2278         Call create_new_def_for for every new V_MAY_DEF and
2279         V_MUST_DEF on the copied statement.
2280         (struct ssa_name_map_entry): Remove.
2281         (ssa_name_map_entry_hash): Remove.
2282         (ssa_name_map_entry_eq): Remove.
2283         (allocate_ssa_names): Remove.
2284         (rewrite_to_new_ssa_names_def): Remove.
2285         (rewrite_to_new_ssa_names_use): Remove.
2286         (rewrite_to_new_ssa_names_bb): Remove.
2287         (rewrite_to_new_ssa_names): Remove.
2288         (tree_duplicate_sese_region): Remove variables ver,
2289         definitions, phi, ssa_name_map and bi.
2290         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
2291         Call update_ssa.
2292         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
2293         update_ssa instead of rewrite_ssa_into_ssa.
2294         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
2295         create_new_def_for.
2296         (find_uses_to_rename_use): Add argument 'need_phis'.
2297         (find_uses_to_rename_stmt): Do not scan virtual operands.
2298         (find_uses_to_rename): Only scan PHI nodes for
2299         non-virtual names.
2300         (rewrite_into_loop_closed_ssa): Call update_ssa.
2301         (check_loop_closed_ssa_use): Ignore virtual operands.
2302         (check_loop_closed_ssa_stmt): Likewise.
2303         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
2304         NULL.
2305         (rename_variables, set_phi_def_stmts): Remove.
2306         (tree_duplicate_loop_to_header_edge): Reformat comment.
2307         Remove variables BB, I and DEFINITIONS.
2308         Call need_ssa_update_p.
2309         Call update_ssa.
2310         (lv_adjust_loop_header_phi): Reformat comment.
2311         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
2312         (marked_for_rewrite_p, any_marked_for_rewrite_p,
2313         mark_for_rewrite, unmark_all_for_rewrite,
2314         marked_ssa_names): Remove.  Update all users.
2315         (release_ssa_name): If VAR has been registered for SSA
2316         updating, do nothing.
2317         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
2318         (build_assert_expr_for): Call register_new_name_mapping.
2319         (insert_range_assertions): Update call to update_ssa.
2320         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
2321         marked_for_rewrite_p, any_marked_for_rewrite_p,
2322         marked_ssa_names): Remove.
2323
2324 2005-04-22  Jeff Law  <law@redhat.com>
2325
2326         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
2327         (restore_currdefs_to_original_value): Likewise.
2328         (register_definitions_for_stmt): Likewise.
2329         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
2330         for each variable.  Do not allocate/free block_defs_stack either.
2331         Do not iterate if we just thread jumps.  Only iterate if the
2332         tree_cleanup_cfg does useful work (temporary).
2333         (dom_opt_initialize_block): No longer push a marker on
2334         BLOCK_DEFS_STACK.
2335         (dom_opt_finalize_block): Removal call to restore currdefs.
2336         Relax restrictions for recording edge equivalences.
2337         (record_equivalences_from_phis): No longer need to track
2338         CURRENT_DEF.
2339         (optimize_stmt): Similarly.
2340         (thread_across_edge): Simplify by removing the requirement that
2341         statements in the block we are threading through must be nops.
2342         (initialize_hash_element): Handle GOTO_EXPR.
2343
2344 2005-04-22  David S. Miller  <davem@davemloft.net>
2345
2346         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
2347         CONST_DOUBLE_HIGH.
2348         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
2349         fix check on CONST_DOUBLE mode.  It should be VOIDmode
2350         when it is representing an integer.
2351
2352 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2353
2354         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
2355         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
2356         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
2357         find_char_info_specifier_index,
2358         find_length_info_modifier_index): Likewise.
2359         * c-typeck.c (composite_type, pop_init_level): Likewise.
2360         * combine.c (cant_combine_insn_p, try_combine): Likewise.
2361         * cse.c (cse_insn): Likewise
2362         * dominance.c (calc_dfs_tree): Likewise
2363         dwarf2out.c (loc_descriptor_from_tree_1,
2364         add_abstract_origin_attribute, force_decl_die,
2365         force_type_die): Likewise
2366         emit-rtl.c (operand_subword_force): Likewise
2367         explow.c (hard_function_value): Likewise
2368         expmed.c (store_bit_field, expand_divmod,
2369         emit_store_flag_force): Likewise
2370         expr.c (emit_move_multi_word, store_expr,
2371         expand_expr_real_1): Likewise
2372         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
2373         output_operand): Likewise
2374         flow.c (recompute_reg_usage): Likewise
2375         * function.c (assign_stack_temp_for_type, assign_temp, 
2376         handle_epilogue_set): Likewise
2377         * genextract.c (main): Likewise
2378         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
2379         gimplify_modify_expr_rhs, gimplify_expr): Likewise
2380         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
2381         ready_remove, rm_line_notes, rm_other_notes,
2382         schedule_block): Likewise
2383         mips-tfile.c (copy_object, out_of_bounds): Likewise
2384
2385 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
2386
2387         PR target/20813
2388         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
2389         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
2390         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
2391         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
2392         TARGET_XL_COMPAT.
2393         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
2394
2395 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2396
2397         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
2398         (gcc_tree_to_linear_expression): Convert to heap allocated
2399         vectors.
2400         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
2401         lbv_to_gcc_expression, lle_to_gcc_expression,
2402         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
2403         perfect_nestify): Likewise.
2404         lambda.h (gcc_loopnest_to_lambda_loopnest,
2405         lambda_loopnest_to_gcc_loopnest): Likewise.
2406         tree-loop-linear.c (linear_transform_loops): Likewise.
2407
2408 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2409
2410         * config/sparc/predicates.md (arith_double_operand): Use
2411         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
2412         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
2413         (DImode, DFmode constant splitters): Likewise.  Remove code for
2414         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
2415         (logical constant splitters): Use const_int_operand predicate.
2416         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
2417         HOST_BITS_PER_WIDE_INT < 64.
2418
2419 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2420
2421         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
2422         gcc_unreachable as appropriate.
2423         (force_mode, emit_move_sequence, singlemove_string,
2424         output_move_double, output_fp_move_double, find_addr_reg,
2425         output_block_move, output_block_clear, output_and,
2426         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
2427         pa_adjust_cost, pa_issue_rate, print_operand,
2428         output_global_address, output_arg_descriptor, output_cbranch,
2429         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
2430         output_call): Likewise.
2431         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
2432         prefetch, prefetch_cc, prefetch_nocc): Likewise.
2433
2434 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
2435
2436         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
2437         _gcov_pow2_profiler and _gcov_one_value_profiler.
2438         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
2439         (GTFILES): Add $(srcdir)/tree-profile.c.
2440         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
2441         __gcov_one_value_profiler): Declare.
2442         * gimplify.c (force_gimple_operand): Check whether the statements
2443         should be produced in ssa form.
2444         (force_gimple_operand_bsi): New function.
2445         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
2446         __gcov_one_value_profiler): New functions.
2447         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
2448         the profiled value is a power of two or not.
2449         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
2450         * tree-flow.h (in_ssa_p): Declare.
2451         (force_gimple_operand_bsi): Declare.
2452         * tree-into-ssa.c (in_ssa_p): New variable.
2453         (rewrite_into_ssa): Set in_ssa_p.
2454         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
2455         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
2456         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
2457         tree_one_value_profiler_fn): New variables.
2458         (tree_init_edge_profiler): Initialize the profiler function decls.
2459         (tree_gen_edge_profiler): Use global gcov_type_node.
2460         (prepare_instrumented_value): New function.
2461         (tree_gen_interval_profiler, tree_gen_interval_profiler,
2462         tree_gen_one_value_profiler): Call the library functions instead of
2463         creating instrumentation code.
2464         * tree.c (build_fn_decl): New function.
2465         * tree.h (build_fn_decl): Declare.
2466         * value-prof.c (rtl_divmod_values_to_profile,
2467         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
2468         tree_mod_pow2_value_transform, tree_find_values_to_profile):
2469         Do not handle may_be_other and precise values of exponents at pow2
2470         profiler.
2471         (tree_mod_subtract_transform): Reflect that value field of
2472         histogram has changed meaning.
2473         (tree_divmod_values_to_profile): Record the values correctly.
2474         (tree_values_to_profile): Update comment.
2475         * value-prof.h (struct histogram_value_t): Remove pow2 data.
2476
2477 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
2478
2479         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
2480         (decl).
2481
2482 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2483
2484         * config/i386/i386.md (length_immediate): Use gcc_assert or
2485         gcc_unreachable, as appropriate.
2486         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
2487         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
2488         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
2489         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
2490         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2491         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
2492         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
2493         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
2494         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
2495         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
2496         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
2497         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2498         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
2499         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
2500         *prefetch_sse_rex): Likewise.
2501         * config/i386/predicates.md (x86_64_immediate_operand,
2502         x86_64_zext_immediate_operand, symbolic_operand,
2503         no_seg_address_operand, aligned_operand,
2504         memory_displacement_operand): Likewise.
2505         * config/i386/sse.md (*mov<mode>_internal,
2506         *movv2df_internal): Likewise.
2507
2508 2005-04-22  Jan Hubicka  <jh@suse.cz>
2509
2510         * Makefile.in (ipa.o, ipa-inline.o): New files.
2511         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
2512         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
2513         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
2514         * cgraphunit.c (cgraph_default_inline_p,
2515         cgraph_decide_inlining_incrementally,  ncalls_inlined,
2516         nfunctions_inlined, initial_insns, overall_insns, 
2517         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
2518         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
2519         cgraph_mark_inline, cgraph_check_inline_limits,
2520         cgraph_default_inline_p, cgraph_recursive_inlining_p,
2521         update_callee_keys, lookup_recursive_calls,
2522         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
2523         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
2524         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
2525         pass_ipa_inline): Move to ipa-inline.c
2526         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
2527         * ipa.c: New file.
2528         * ipa-inline.c: New file.
2529
2530 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2531
2532         * doc/invoke.texi (SPARC options): Document that -mapp-regs
2533         is turned off by default on Solaris.
2534
2535 2005-04-21  Roger Sayle  <roger@eyesopen.com>
2536
2537         * c-common.h (objc_build_method_signature): Update prototype.
2538         * stub-objc.c (objc_build_method_signature): Update the stub
2539         implementation to accept and ignore additional parameter.
2540         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
2541         the value of ellipsis to objc_build_method_signature instead
2542         of setting TREE_OVERFLOW on the parms TREE_LIST node.
2543
2544 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
2545
2546         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
2547         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
2548         gen_rtx_* not gen_rtx_fmt_*.
2549         (rs6000_emit_vector_select): Likewise.
2550         (rs6000_emit_sync): New.
2551         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
2552         (larx, stcx, cmp): New mode substitutions.
2553         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
2554         UNSPEC_ISYNC): New constants.
2555         (rlwinm): Give name.
2556         (memory_barrier, isync, lwsync): New insns.
2557         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
2558         (sync_lock_release<mode>): New expander.
2559         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
2560         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
2561         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
2562         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
2563         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
2564         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
2565         (sync_add<mode>_internal, sync_addshort_internal,
2566         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
2567         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
2568         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
2569
2570         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
2571         is the memory before, not after, the operation.  Clarify
2572         barrier requirements.
2573
2574 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2575
2576         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
2577         * lambda.h (lambda_vector_min_nz): Likewise.
2578         * langhooks.h (struct lang_hooks_for_types,
2579         struct lang_hooks): Likewise.
2580         * output.h (assemble_integer, this_is_asm_operands): Likewise.
2581         * tree.h: Likewise.
2582         * vec.h: Likewise.
2583         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
2584         
2585         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
2586         comments to avoid 'abort'.  Use gcc_assert as necessary.
2587         * opts.c (common_handle_option): Likewise.
2588         * pretty-print.c (pp_base_format_text): Likewise.
2589         * print-rtl.c (print_rtx): Likewise.
2590         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
2591         * regmove.c (try_auto_increment): Likewise.
2592         * reload.c (find_valid_class, find_reloads_toplev,
2593         find_equiv_reg): Likewise.
2594         * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
2595         merge_assigned_reloads): Likewise.
2596         * tree-inline.c (inline_forbidden_p_1,
2597         estimate_num_insns_1): Likewise.
2598         * tree-optimize.c (execute_todo): Likewise.
2599         * tree-outof-ssa.c (eliminate_phi): Likewise.
2600         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
2601         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
2602         * tree-ssa-operands.c (parse_ssa_operands,
2603         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
2604         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
2605         * tree-ssanames.c (release_ssa_name): Likewise.
2606         * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
2607         walk_tree): Likewise.
2608
2609         * tree-ssa-operands.c (verify_abort): Fold into ..
2610         (verify_imm_links): ... here.
2611
2612 2005-04-21  Richard Henderson  <rth@redhat.com>
2613
2614         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
2615         on non-memory operand for previous inversion.
2616
2617 2005-04-21  Devang Patel  <dpatel@apple.com>
2618
2619         PR optimization/20994
2620         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
2621         x = !(a == b) : p , q;.
2622         (pass_if_conversion): Verify stmts and flow.
2623         
2624 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2625
2626         * optabs.c (gen_conditional_trap): Restore #define.
2627
2628         * alias.c (true_dependence): Remove 'abort' from comments. Use
2629         gcc_assert and gcc_unreachable as appropriate.
2630         (canon_true_dependence): Likewise.
2631         * bb-reorder.c (connect_traces): Likewise.
2632         * c-common.c (c_add_case_label): Likewise.
2633         * c-decl.c (finish_function): Likewise.
2634         * caller-save.c (insert_restore, insert_save): Likewise.
2635         * cfg.c (update_bb_profile_for_threading): Likewise.
2636         * cfganal.c (flow_active_insn_p): Likewise.
2637         * cfgexpand.c (add_reg_br_prob_note): Likewise.
2638         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
2639         cfg_layout_merge_blocks): Likewise.
2640         * ifcvt.c (cond_exec_process_insns, merge_if_block,
2641         find_if_block): Likewise.
2642         * integrate.c (allocate_initial_values): Likewise.
2643         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
2644         swap_condition, unsigned_condition, signed_condition,
2645         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
2646         reg_or_subregno): Likewise.
2647         * lambda-code.c (lambda_compute_auxillary_space,
2648         lambda_transform_legal_p): Likewise.
2649         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
2650         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
2651         lhd_incomplete_type_error, lhd_expand_expr,
2652         lhd_types_compatible_p, lhd_tree_size): Likewise.
2653         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
2654         * local-alloc.c (update_equiv_regs): Likewise.
2655         * loop-unroll.c (peel_loop_completely
2656         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
2657         peel_loop_simple, unroll_loop_stupid,
2658         analyze_iv_to_split_insn): Likewise.
2659         * loop.c (gen_prefetch, find_and_verify_loops,
2660         basic_induction_var): Likewise.
2661         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
2662         * value-prof.c (tree_find_values_to_profile): Likewise.
2663         * varasm.c (named_section, default_assemble_integer,
2664         decode_addr_const): Likewise.
2665
2666 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
2667            Fariborz Jahanian <fjahanian@apple.com>
2668
2669         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
2670         portion of argument passed in fpr.
2671         * expr.c (emit_push_insn): Fix computation of 'offset' used to
2672         decide on partial argument save on stack.
2673
2674 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
2675
2676         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
2677         comment typos.
2678
2679 2005-04-21  Jan Hubicka  <jh@suse.cz>
2680
2681         * cgraphunit.c: Include tree-pass.h
2682         (cgraph_decide_recursive_inlining,
2683         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
2684         cgraph_decide_inlining): Dump goes to dump_file.
2685         (cgraph_optimize): Call ipa passes instead of inliner.
2686         (cgraph_gate_inlining, pass_ipa_inline): New.
2687         * tree-optimize.c (all_ipa_passes): New static variable.
2688         (register_one_dump_file): Dead with IPA passes.
2689         (register_dump_files): Likewise.
2690         (init_tree_optimization_passes): Initialize IPA passes.
2691         (execute_todo): Do cgraph dump when asked to, do not dump function body
2692         for IPA pass.
2693         * tree-pass.h (TODO_dump_cgraph): New macro.
2694         (ipa_passes): Declare.
2695         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
2696
2697 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2698
2699         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
2700         gcc_assert instead of abort.
2701         (classify_argument, examine_argument, construct_container,
2702         contains_128bit_aligned_vector_p, ix86_check_movabs,
2703         standard_80387_constant_opcode, standard_80387_constant_rtx,
2704         ix86_initial_elimination_offset, ix86_compute_frame_layout,
2705         pro_epilogue_adjust_stack, ix86_expand_epilogue,
2706         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
2707         legitimize_tls_address, output_pic_addr_const,
2708         i386_output_dwarf_dtprel, put_condition_code, print_reg,
2709         get_some_local_dynamic_name, print_operand, print_operand_address,
2710         output_387_binary_op, emit_i387_cw_initialization,
2711         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
2712         ix86_expand_clear, ix86_expand_binary_operator,
2713         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
2714         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
2715         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
2716         ix86_expand_branch, ix86_expand_setcc,
2717         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
2718         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
2719         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
2720         memory_address_length, ix86_attr_length_immediate_default,
2721         ix86_attr_length_address_default, ix86_agi_dependant,
2722         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
2723         ix86_expand_binop_builtin, ix86_force_to_memory,
2724         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
2725         x86_emit_floatuns): Likewise.
2726         * config/i386/netware.c (gen_regparm_prefix,
2727         i386_nlm_strip_name_encoding): Likewise.
2728         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
2729
2730 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2731
2732         * optabs.c (gen_condiational_trap): Remove #define.
2733         (add_equal_note): Assertify. Remove explicit indirection from
2734         call via function pointer.
2735         (expand_ternary_op, expand_simple_binop, expand_binop,
2736         expand_twoval_unop, expand_twoval_binop,
2737         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
2738         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
2739         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
2740         prepare_float_lib_cmp, emit_conditional_move,
2741         emit_conditional_add, gen_add2_insn, gen_add3_insn,
2742         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
2743         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
2744         vector_compare_rtx, expand_vec_cond_expr): Likewise.
2745
2746 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2747
2748         * vec.h: Update API to separate allocation mechanism from type.
2749         (VEC_safe_grow): New.
2750         * vec.c (calculate_allocation): New.
2751         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
2752         (vec_gc_free, vec_heap_free): Remove.
2753         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
2754         (VEC): Likewise.
2755         (mangle_macro_name): New.
2756         (struct macro_def): New.
2757         (struct macro): Add multiple argument values.
2758         (macro_expans_end): New.
2759         (push_macro_expansion):  Chain on new macro. Process multiple
2760         args, create follow on expansion. Return follow on argument.
2761         (macro_input): Deal with multiple arguments.
2762         
2763         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
2764         (struct tree_binfo): Adjust.
2765         * basic-block.h: Define VEC(edge,gc).
2766         (struct edge_def): Adjust.
2767         (struct basic_block_def, struct edge_iterator): Likewise.
2768         (ei_container, ei_start_1, ei_last_1): Likewise.
2769         * cfg.c (connect_src, connect_dest): Likewise.
2770         * cfgrtl.c (force_nonfallthru_and_redirect)
2771         * dbxout.c (dbxout_type)
2772         * dwarf2out.c (gen_member_die)
2773         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
2774         (gcc_tree_to_linear_expression): Adjust.
2775         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
2776         lbv_to_gcc_expression, lle_to_gcc_expression,
2777         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
2778         perfect_nestify): Likewise.
2779         * lambda.h (gcc_loopnest_to_lambda_loopnest,
2780         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
2781         * profile.c (instrument_values): Adjust.
2782         * tree-cfg.c (modified_noreturn_calls): Adjust.
2783         (remove_fallthru_edge): Likewise.
2784         * tree-dump.c (dequeue_and_dump): Adjust.
2785         * tree-flow-inline.h (mark_stmt_modified): Adjust.
2786         * tree-flow.h (modified_noreturn_calls): Adjust.
2787         (tree_on_heap): Remove. (yay!)
2788         (register_new_def): Adjust.
2789         * tree-into-ssa.c: Define VEC(int,heap).
2790         (block_defs_stack): Adjust.
2791         (find_idf, insert_phi_nodes, register_new_def,
2792         rewrite_initialize_block, rewrite_finalize_block,
2793         register_new_update_single, rewrite_update_init_block,
2794         rewrite_update_fini_block, rewrite_blocks,
2795         ssa_rewrite_finalize_block, ssa_register_new_def,
2796         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
2797         * tree-loop-linear.c (linear_transform_loops): Adjust.
2798         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
2799         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
2800         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
2801         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
2802         vrp_variables_stack): Adjust declarations.
2803         (tree_ssa_dominator_optimize): Adjust.
2804         (dom_opt_initialize_block, remove_local_expressions_from_table,
2805         restore_nonzero_vars_to_original_value,
2806         restore_vars_to_original_value,
2807         restore_currdefs_to_original_value, dom_opt_finalize_block,
2808         record_var_is_nonzero, record_cond, record_const_or_copy_1,
2809         optimize_stmt, update_rhs_and_lookup_avail_expr,
2810         lookup_avail_expr, record_range): Likewise.
2811         * tree-ssa-pre.c: Define VEC(basic_block,heap).
2812         (compute_antic_aux): Adjust.
2813         (inserted_exprs, create_expression_by_pieces, 
2814         insert_into_preds_of_block, eliminate, mark_operand_necessary, 
2815         remove_dead_inserted_code, fini_pre): Likewise.
2816         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
2817         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
2818         ssa_prop_init): Likewise.
2819         * tree-ssa.c: Define VEC(bitmap,heap).
2820         (verify_name_tags): Adjust.
2821         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
2822         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
2823         tree_divmod_values_to_profile, tree_find_values_to_profile,
2824         value_profile_transformations): Likewise.
2825         * value-prof.h: Define VEC(histogram_value,heap).
2826         * varasm.c: Remove alias_pair pointer typedef, define
2827         VEC(alias_pair,gc).
2828         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
2829         
2830         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
2831         not a pointer to it.  Create an object vector.
2832         (extern_symbols): Turn into an object vector.
2833         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
2834
2835 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
2836
2837         PR/20742
2838         * Makefile.in (tree-chrec.o): Depend on params.h.
2839         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
2840         default value 20.
2841         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
2842         and fold build with fold_buildN.
2843         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
2844         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2845         (tree_contains_chrecs): Compute an estimation of the size of the
2846         given expression.
2847         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
2848         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
2849         * tree-scalar-evolution.c (simple_iv): Ditto.
2850         * doc/invoke.texi (scev-max-expr-size): Documented.
2851
2852 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
2853
2854         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
2855         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
2856         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
2857         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
2858         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
2859         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
2860         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
2861         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
2862         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
2863         (darwin_fix_and_continue_switch): Delete.
2864         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
2865         (SUBTARGET_SWITCHES): Delete.
2866         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
2867         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
2868         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
2869         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
2870         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
2871         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
2872         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
2873         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
2874         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
2875         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
2876         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
2877         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
2878         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
2879         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
2880         (TARGET_64BIT): Undef before redefining.
2881         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
2882         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
2883         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
2884         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
2885         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
2886         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
2887         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
2888         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
2889         (ix86_debug_arg_string, ix86_debug_addr_string)
2890         (ix86_align_loops_string, ix86_align_jumps_string)
2891         (ix86_align_funcs_string): Delete.
2892         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
2893         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
2894         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
2895         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
2896         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
2897         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
2898         (SUBTARGET_SWITCHES): Delete.
2899         * config/i386/i386.c (ix86_debug_arg_string): Delete.
2900         (ix86_debug_addr_string): Delete.
2901         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
2902         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
2903         (ix86_align_loops_string, ix86_align_jumps_string)
2904         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
2905         (ix86_align_funcs_string): Make static.
2906         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2907         (ix86_handle_option): New function.
2908         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
2909         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
2910         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
2911         of darwin_fix_and_continue_switch.
2912         (darwin_one_byte_bool): Delete.
2913         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2914         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
2915         to darwin_one_byte_bool.
2916         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
2917         * config/i386/djgpp.opt, config/i386/i386.opt,
2918         * config/i386/sco5.opt: New files.
2919
2920 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2921
2922         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
2923         fp_zero_operand, fp_register_operand, intreg_operand,
2924         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
2925         call_operand, call_operand_address, tgd_symbolic_operand,
2926         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
2927         symbolic_operand, symbolic_memory_operand, label_ref_operand,
2928         sp64_medium_pic_operand, data_segment_operand,
2929         text_segment_operand, splittable_symbolic_memory_operand,
2930         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
2931         eq_or_neq, normal_comp_operator, noov_compare_op,
2932         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
2933         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
2934         const64_operand, const64_high_operand, arith11_operand,
2935         arith10_operand, arith_double_operand, arith_double_4096_operand,
2936         arith_double_add_operand, arith11_double_operand,
2937         arith10_double_operand, small_int, small_int_or_double,
2938         uns_small_int, uns_arith_operand, clobbered_register,
2939         input_operand, compare_operand): Delete.
2940         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
2941         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
2942         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
2943         (GEN_HIGHINT64, GEN_INT64): Delete.
2944         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
2945         gen_safe_XOR64): Adjust for above deletion.
2946         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
2947         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
2948         (legitimate_constant_p): Use const_zero_operand instead.
2949         (sparc_extra_constraint_check): Likewise.
2950         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
2951         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
2952         (PREDICATE_CODES): Delete.
2953         * config/sparc/sparc.md: Include predicates.md.
2954         (All patterns): Adjust for new predicate names.
2955         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
2956         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
2957         (movdi): Use general_operand predicate.
2958         (movdi_sp64_dbl): Delete.
2959         (movdi_const64_special): Add 'N' constraint.
2960         (movdicc): Use arith10_operand predicate.
2961         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
2962         (movdi_cc_reg_sp64): Use arith10_operand predicate.
2963         (movdi_cc_reg_sp64_trunc): Delete.
2964         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
2965         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
2966         (subdi3_sp32): Delete.
2967         (subdi3_insn_sp32): Change to define_insn_and_split.
2968         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
2969         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
2970         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
2971         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
2972         small_int_operand predicate.
2973         (divdi3, udivdi3): Use arith_operand predicate.
2974         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
2975         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
2976         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
2977         (xordi3_sp64_dbl): Delete.
2978         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
2979         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
2980         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
2981         cmp_ccx_set_not): Use arith_operand predicate.
2982         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
2983         * config/sparc/predicates.md: New file.
2984
2985 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
2986
2987         PR tree-optimization/14846
2988         * fold-const.c (fold_single_bit_test_into_sign_test): New,
2989         split out from ...
2990         (fold_single_bit_test): ... here.
2991         (fold_binary): Call fold_single_bit_test_into_sign_test
2992         instead of fold_single_bit_test.
2993
2994 2005-04-20  James E Wilson  <wilson@specifixinc.com>
2995
2996         PR c++/20805
2997         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
2998         is another declaration.
2999
3000 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
3001
3002         * config/cris/predicates.md: New file.
3003         * config/cris/cris-protos.h (cris_store_multiple_op_p)
3004         (cris_movem_load_rest_p): Declare.
3005         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
3006         (cris_movem_load_rest_p): Ditto.  Globalize.
3007         (cris_bdap_operand, cris_bdap_biap_operand,
3008         cris_orthogonal_operator, cris_commutative_orth_op,
3009         cris_operand_extend_operator,
3010         cris_additive_operand_extend_operator, cris_extend_operator,
3011         cris_plus_or_bound_operator, cris_mem_op,
3012         cris_general_operand_or_symbol,
3013         cris_general_operand_or_gotless_symbol,
3014         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
3015         cris_load_multiple_op): Remove predicate functions.
3016         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
3017         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
3018         * config/cris/cris.h (PREDICATE_CODES): Don't define.
3019         * config/cris/cris.md: Include predicates.md.
3020         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
3021
3022 2005-04-20  Ian Lance Taylor  <ian@airs.com>
3023
3024         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
3025         * c-common.h (STMT_EXPR_STMT): Don't define.
3026         (STMT_EXPR_NO_SCOPE): Don't define.
3027         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
3028         * c-pretty-print.c (pp_c_primary_expression): Likewise.
3029         (pp_c_expression): Likewise.
3030
3031 2005-04-20  Richard Henderson  <rth@redhat.com>
3032
3033         PR target/21100
3034         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
3035
3036 2005-04-20  Jeff Law  <law@redhat.com>
3037
3038         * reload1.c (reload): Ignore equivalences between pseudos and
3039         read only memory.
3040
3041 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
3042
3043         PR c/12913
3044         * c-tree.h (struct c_label_list): Update comment.
3045         (struct c_label_context): Rename to struct c_label_context_se.
3046         (label_context_stack): Rename to label_context_stack_se.
3047         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
3048         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
3049         c_end_vm_scope): New.
3050         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
3051         * c-decl.c (pop_scope): Call c_end_vm_scope.
3052         (pushdecl): Call c_begin_vm_scope for variably modified
3053         declarations.
3054         (define_label): Check for jumping into scope of identifier with
3055         variably modified type.  Push label on stack for those defined at
3056         current context of identifiers with variably modified type.
3057         (start_function): Create stack level for context of identifiers
3058         with variably modified type.
3059         (finish_function): Pop stack level for context of identifiers with
3060         variably modified type.
3061         * c-typeck.c (label_context_stack): Rename to
3062         label_context_stack_se.
3063         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
3064         (c_finish_goto_label): Check for jumping into scope of identifier
3065         with variably modified type.  Push label on stack for those jumped
3066         to from current context of identifiers with variably modified
3067         type.
3068         (struct c_switch): Add blocked_vm.
3069         (c_start_case): Initialize blocked_vm.
3070         (do_case): Check blocked_vm.
3071         (c_finish_case): Add comment.
3072         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
3073         variable label_context_stack.
3074
3075 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3076
3077         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
3078         conditional_replacement, value_replacement, abs_replacement,
3079         minmax_replacement.
3080         (replace_phi_edge_with_variable): Remove argument BB.
3081         (conditional_replacement, value_replacement,
3082         minmax_replacement, abs_replacement): Remove argument PHI_BB.
3083         Update a call to replace_phi_edge_with_variable.
3084
3085         * tree-ssa-phiopt.c: Fix comments.
3086
3087 2005-04-20  Michael Matz  <matz@suse.de>
3088
3089         PR20973
3090         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
3091         pseudos.
3092
3093 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3094
3095         * tree-ssa-phiopt.c: Fix comment typos.
3096
3097         PR tree-optimization/21116
3098         * tree-ssa-phiopt.c: Fix a typo.
3099
3100 2005-04-19  Richard Henderson  <rth@redhat.com>
3101
3102         * builtins.c (expand_builtin_sync_operation): Revert last change.
3103         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
3104         not vs new value.
3105         (expand_compare_and_swap_loop): Likewise.
3106         (expand_sync_operation): Remove fallback from NAND to AND; invert
3107         memory operand when expanding from cmpxchg.
3108         (expand_sync_fetch_operation): Likewise.
3109         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
3110         compare-and-swap.
3111
3112         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
3113         when implementing NAND.  Fix double-add for AFTER.
3114         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
3115         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
3116         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
3117         memory value.
3118         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
3119         memory barrier.
3120
3121         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
3122         to return old memory value.
3123         (sync_compare_and_swap_cc<IMODE>): Likewise.
3124
3125         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
3126         return pre-reload.  Don't consider output or anti dependencies.
3127         * config/ia64/sync.md (IMODE): New.
3128         (modesuffix): Add QI and HI.
3129         (memory_barrier): Simplify expansion.
3130         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
3131         (cmpxchg_acq_<IMODE>): Likewise.
3132         (sync_lock_test_and_set<IMODE>): Likewise.
3133         (sync_lock_release<IMODE>): Likewise.
3134
3135 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
3136
3137         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
3138         ~X or ~Y simplify.
3139
3140 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
3141
3142         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
3143
3144 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
3145             Joseph S. Myers  <joseph@codesourcery.com>
3146
3147         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
3148         * c-typeck.c (build_c_cast): Check these options.
3149         * doc/invoke.texi: Document these options.
3150
3151 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3152
3153         * tree-ssa-phiopt.c: Update a comment about the pass.
3154
3155 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
3156
3157         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
3158         config/mcore/mcore.c: Fix comment typos.
3159
3160 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
3161
3162         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
3163         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
3164
3165 2005-04-19  Paul Brook  <paul@codesourcery.com>
3166
3167         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
3168
3169 2005-04-19  Andrew Haley  <aph@redhat.com>
3170
3171         PR java/21022
3172         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
3173         looking at a field's bitpos.
3174
3175 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3176
3177         * system.h (fopen, fdopen, freopen): Define these to the unlocked
3178         libiberty functions.
3179
3180 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
3181
3182         PR tree-optimization/21096
3183         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
3184
3185 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
3186
3187         PR target/21098
3188         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
3189         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
3190
3191 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
3192
3193         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
3194         refers to the function being dumped.
3195
3196 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
3197
3198         * varasm.c (assemble_start_function): Remove reset of in_section.
3199
3200 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
3201
3202         PR tree-optimization/21085
3203         * fold-const (fold_binary): Don't change X % -C to X % C if C has
3204         overflowed.
3205
3206 2005-04-19  Ben Elliston  <bje@au.ibm.com>
3207
3208         * doc/invoke.texi (Optimize Options): Refer to the correct
3209         optimisation flag -ftree-dominator-opts, not -ftree-dom.
3210
3211 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
3212
3213         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
3214         alloca argument to be big enough.
3215
3216 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
3217
3218         PR middle-end/21049
3219         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
3220         cfun->cfg are NULL.
3221
3222 2005-04-18  Tom Tromey  <tromey@redhat.com>
3223
3224         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
3225         typo.
3226
3227 2005-04-18  Richard Henderson  <rth@redhat.com>
3228
3229         * config/alpha/alpha.c (alpha_split_atomic_op): New.
3230         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
3231         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
3232         * config/alpha/alpha-protos.h: Update.
3233         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
3234         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
3235         (attr type): Add ld_l, st_c, mb.
3236         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
3237         iornotsi3, xorsi_internal, xornotsi3): New.
3238         * config/alpha/ev4.md (ev4_ld): Add ld_l.
3239         (ev4_ist_c, ev4_mb): New.
3240         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
3241         (ev5_ld_l): New.
3242         * config/alpha/ev6.md (ev6_ild): Add ld_l.
3243         (ev6_ist): Add st_c.
3244         (ev6_mb): New.
3245         * config/alpha/sync.md: New file.
3246
3247 2005-04-18  Richard Henderson  <rth@redhat.com>
3248
3249         * builtins.c (expand_builtin_sync_operation): Fold nand to and
3250         for constants.
3251
3252         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
3253
3254 2005-04-18  Devang Patel  <dpatel@apple.com>
3255
3256         * config/rs6000/atlivec.md (mulv4si3): New pattern.
3257         
3258 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
3259
3260         PR tree-optimization/20922
3261         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
3262         Fold X + c >= X and fold X - c <= X to true.
3263
3264 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
3265
3266         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
3267         unsigned int.
3268         (emergency_labeled_state_free): Likewise.
3269
3270 2005-04-18  Nick Clifton  <nickc@redhat.com>
3271
3272         * config/h8300/h8300.md (jump): Remove prescan parameter from
3273         calls to final_scan_insn.
3274
3275         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
3276         parameter from calls to final_scan_insn.
3277
3278         * config.gcc (m68hc12): Use the m68hc11.opt file for target
3279         specific options.
3280         (v850e, v850e1): Use the v850.opt file for target specific
3281         options.
3282
3283 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
3284
3285         PR tree-optimization/21001
3286         * tree-optimize.c (init_tree_optimization_passes): Move the
3287         first pass_forwprop immediately before pass_vrp.
3288
3289 2005-04-17  Ian Lance Taylor  <ian@airs.com>
3290
3291         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
3292         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
3293         from enum tree_code op to bool is_sizeof.
3294         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
3295         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
3296         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
3297         case.
3298         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
3299         cases.
3300         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
3301         ALIGNOF_EXPR cases.
3302
3303 2005-04-17  Ian Lance Taylor  <ian@airs.com>
3304
3305         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
3306
3307 2005-04-17  Richard Henderson  <rth@redhat.com>
3308
3309         * config/alpha/alpha.c (va_list_skip_additions): Only define if
3310         TARGET_ABI_OSF.
3311         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
3312         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
3313         of indirection through ssa names while looking for the gpr counter
3314         field.
3315         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
3316         saved va_list_gpr_size and va_list_fpr_size.
3317
3318 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
3319
3320         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
3321         both pointers or both integers.
3322
3323         * tree-vrp.c (maybe_add_assert_expr): Don't assert
3324         ASSERT_EXPRs for single-use variable.
3325
3326         * tree-into-ssa.c: Fix a comment typo.
3327
3328 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
3329
3330         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
3331         -mipsN before forcing a default of -mips2.
3332
3333 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
3334
3335         * predict.h (IS_TAKEN): Remove.
3336         * rtl.h (NOTE_PREDICTION): Likewise.
3337
3338         * modulo-sched.c (CFG_HOOKS): Remove.
3339
3340         * c-parser.c (N_C_TTYPES): Remove.
3341
3342         * tree-flow-inline.h (get_stmt_operands): Remove.
3343         * lambda-code.c, tree-ssa-loop-unswitch.c,
3344         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
3345         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
3346         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
3347         calls to get_stmt_operands.
3348         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
3349
3350 2005-04-17  Richard Henderson  <rth@redhat.com>
3351
3352         PR target/20375
3353         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
3354         of CUMULATIVE_ARGS past the last named argument.
3355         (alpha_va_start): Expect pretend_args_size only if strictly less than
3356         6 named arguments.
3357
3358 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
3359
3360         PR middle-end/21024
3361         * builtins.c (expand_builtin_strcat): Convert the result of
3362         strlen to the right type.
3363         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
3364         avoid creating type mismatches.
3365         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
3366         type mismatches.
3367
3368         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
3369
3370 2005-04-16  Richard Henderson  <rth@redhat.com>
3371
3372         PR target/21051
3373         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
3374         Use the mode of boolean_type_node when the user doesn't provide one.
3375         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
3376
3377 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
3378
3379         PR target/20126
3380         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
3381         (const)).
3382
3383         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
3384         comment.
3385
3386 2005-04-16  Roger Sayle  <roger@eyesopen.com>
3387             Steven Bosscher  <stevenb@suse.de>
3388
3389         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
3390         (fold_unary_to_constant): Likewise.
3391
3392 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
3393
3394         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
3395         PROP_ASM_SCAN.
3396
3397 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
3398
3399         * doc/install.texi (Specific): Avoid using asterisks in @anchor
3400         names related to target triplets.
3401         Remove i?86-*-esix from platform directory.
3402         Remove powerpc-*-eabiaix from platform directory.
3403
3404 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
3405
3406         PR middle-end/20491
3407         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
3408         falling through from SUBREG case to REG.
3409
3410 2005-04-15  Roger Sayle  <roger@eyesopen.com>
3411
3412         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
3413         (fold_binary): Update comment mentioning fold_relational_hi_lo.
3414         (fold_binary_to_constant): Simplify using fold_binary.
3415         (fold_unary_to_constant): Likewise, simplify using fold_unary.
3416
3417 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3418
3419         * gthr-posix.c (pthread_cancel): Define.
3420         (pthread_mutexattr_init): Likewise.
3421         (pthread_mutexattr_settype): Likewise.
3422         (pthread_mutexattr_destroy): Likewise.
3423
3424 2005-04-15  David S. Miller  <davem@davemloft.net>
3425
3426         PR target/20673
3427         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
3428
3429 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
3430
3431         PR tree-optimization/21031
3432         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
3433         (forward_propagate_into_cond_1): Call it.  Forward propagate
3434         integer-integer casts into COND_EXPRs.
3435
3436 2005-04-15  Dave Korn  <dave.korn@artimi.com>
3437
3438         * gcc.c (default_compilers): Clarify obscure error message when
3439         reading from standard input.
3440
3441 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
3442
3443         * basic-block.h (PROP_EQUAL_NOTES): Remove.
3444         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
3445
3446         * tree-ssa-alias.c (init_alias_info): Remove a call to
3447         get_stmt_operands.
3448
3449 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
3450
3451         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
3452         of non-virtual PHI nodes like we use to.
3453
3454 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
3455
3456         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
3457         (attr_copy_rtx): Do not use it.
3458
3459 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
3460
3461         * doc/tree-ssa.texi: Grammer/abbreviation updates.
3462
3463 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
3464
3465         * tree-vect-transform.c (vectorizable_store): Mark necessary
3466         objects in the vectorized store needing renaming.  Update the
3467         SSA graph for V_MAY_DEF operands in the original store.
3468
3469 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
3470
3471         * tree-ssa-pre.c (compute_avail): It's okay to have
3472         TREE_INVARIANT's here, and value number the resulting expressions.
3473         (create_expression_by_pieces): Make sure operands that were
3474         min_invariant when we started, stay that way.
3475
3476 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
3477
3478         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
3479
3480 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
3481
3482         PR tree-optimization/20936.
3483         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
3484
3485 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3486
3487         * doc/invoke.texi: Fix typos.
3488         * doc/md.texi: Likewise.
3489         * doc/rtl.texi: Likewise.
3490         * doc/sourcebuild.texi: Likewise.
3491         * doc/tm.texi: Likewise.
3492
3493 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
3494
3495         PR tree-optimization/21004
3496         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
3497         and floorl in c99 mode only.
3498         * builtins.c (expand_builtin_int_roundingfn): Assert that
3499         fallback_fndecl is not NULL_TREE.
3500
3501 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
3502
3503         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
3504         * basic-block.h: Update the prototype for
3505         purge_all_dead_edges.
3506         * cfgexpand.c (tree_expand_cfg): Update a call to
3507         purge_all_dead_edges.
3508         * combine.c (combine_instructions): Likewise.
3509         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
3510         rest_of_handle_cse2, rest_of_handle_gcse,
3511         rest_of_handle_postreload): likewise.
3512
3513 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
3514
3515         PR middle-end/20739
3516         * gimplify.c (gimplify_addr_expr): Compensate for removal of
3517         e.g. cv-qualification conversions.
3518
3519 2005-04-14  Mike Stump  <mrs@apple.com>
3520
3521         * config/darwin-c.c (framework_construct_pathname): We must
3522         find all headers of a framework in the first instance of it
3523         found in the seach path.
3524
3525 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
3526
3527         PR tree-optimization/21021
3528         * tree-vrp.c (compare_values): Work around a bug in the front
3529         end that produces a comparison of mismatched types.
3530
3531 2004-04-14  Richard Henderson  <rth@redhat.com>
3532
3533         * config/ia64/ia64.h (enum fetchop_code): Remove.
3534         (enum ia64_builtins): Move ...
3535         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
3536         members except BSP and FLUSHRS.
3537         (ia64_init_builtins): Remove __sync builtins.
3538         (ia64_expand_builtin): Likewise.
3539         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
3540         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
3541         (ia64_expand_lock_release): Remove.
3542         * config/ia64/ia64.md (mf): Move to sync.md.
3543         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
3544         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
3545         * config/ia64/sync.md: New file.
3546         (memory_barrier): Rename from mf.
3547         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
3548         (cmpxchg_acq_<I48MODE>): Likewise.
3549         (sync_lock_test_and_set<I48MODE>): Likewise.
3550
3551         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
3552         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
3553
3554 2004-04-14  Richard Henderson  <rth@redhat.com>
3555
3556         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
3557         (ix86_compare_emitted): New.
3558         (ix86_expand_compare): Use ix86_compare_emitted if set.
3559         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
3560         and ix86_compare_op0 are set.
3561         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
3562         (TARGET_CMPXCHG, TARGET_XADD): New.
3563         (ix86_compare_emitted): Declare.
3564         * config/i386/i386.md: Include sync.md
3565         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
3566         (UNSPECV_XCHG, UNSPECV_LOCK): New.
3567         * config/i386/sync.md: New file.
3568
3569 2004-04-14  Richard Henderson  <rth@redhat.com>
3570
3571         PR middle-end/14311
3572         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
3573         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
3574         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
3575         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
3576         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
3577         BT_FN_I8_VPTR_I8_I8): New.
3578         * builtins.def (DEF_SYNC_BUILTIN): New.
3579         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
3580         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
3581         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
3582         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
3583         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
3584         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
3585         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
3586         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
3587         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
3588         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
3589         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
3590         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
3591         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
3592         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
3593         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
3594         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
3595         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
3596         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
3597         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
3598         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
3599         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
3600         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
3601         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
3602         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
3603         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
3604         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
3605         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
3606         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
3607         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
3608         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
3609         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
3610         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
3611         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
3612         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
3613         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
3614         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
3615         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
3616         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
3617         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
3618         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
3619         BUILT_IN_SYNCHRONIZE: New.
3620         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
3621         as a function.  Accept __sync_ as a prefix as well.
3622         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
3623         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
3624         expand_builtin_lock_release): New.
3625         (expand_builtin): Call them.
3626         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
3627         neither BOTH_P nor FALLBACK_P are defined.
3628         (builtin_type_for_size): New.
3629         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
3630         (resolve_overloaded_builtin): New.
3631         * c-common.h (resolve_overloaded_builtin): Declare.
3632         (builtin_type_for_size): Declare.
3633         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
3634         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
3635         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
3636         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
3637         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
3638         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
3639         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
3640         sync_compare_and_swap_cc, sync_lock_test_and_set,
3641         sync_lock_release): New.
3642         * optabs.h: Declare them.
3643         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
3644         expand_sync_operation, expand_sync_fetch_operation,
3645         expand_sync_lock_test_and_set): Declare.
3646         * genopinit.c (optabs): Add sync optabs.
3647         * optabs.c (init_optabs): Initialize sync optabs.
3648         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
3649         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
3650         expand_sync_operation, expand_sync_fetch_operation,
3651         expand_sync_lock_test_and_set): New.
3652         * doc/extend.texi (Atomic Builtins): New section
3653         * doc/md.texi (Standard Names): Add sync patterns.
3654
3655 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
3656
3657         * tree-eh.c (lower_try_finally_copy): Generate new code in
3658         response to goto_queue entries as if the queue was sorted by
3659         index, not pointers.
3660         (lower_try_finally_switch): Likewise.
3661
3662 2005-04-14  Richard Henderson  <rth@redhat.com>
3663
3664         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
3665         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
3666         register.
3667         (ix86_expand_fp_movcc): Update to match.
3668         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
3669         * config/i386/i386-protos.h: Update.
3670         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
3671         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
3672
3673 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
3674
3675         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
3676         refer to 4.0.
3677
3678 2005-04-14  Julian Brown  <julian@codesourcery.com>
3679
3680         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
3681         link failures on ppc64 Linux.
3682
3683 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3684
3685         * config.gcc: Set cpu_type for s390.
3686
3687 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
3688
3689         Fix PR tree-optimization/20963
3690         * tree-ssa-pre.c (compute_avail): Remove special case for
3691         TREE_INVARIANT.
3692         (create_expression_by_pieces): Add value numbers for forced out
3693         statements.
3694
3695 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
3696
3697         * config/cris/cris.md: Replace references to (reg:SI 16) with
3698         (reg:SI CRIS_SRP_REGNUM).
3699
3700 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
3701
3702         PR tree-optimization/20657
3703         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
3704         create an appropriate range from it.
3705
3706 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
3707
3708         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
3709         <UNSPEC_FIST_CEIL> case.
3710
3711         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
3712         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
3713         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
3714         to implement lfloor and llfloor built-ins as x87 intrinsic function.
3715         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
3716         (lfloor<mode>2): New expanders.
3717         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
3718         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
3719         to implement lceil and llceil built-ins as x87 intrinsic function.
3720         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
3721         (lceil<mode>2): New expanders.
3722
3723 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
3724
3725         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
3726         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
3727
3728 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
3729
3730         PR target/20927
3731         * config/s390/s390-modes.def: Define TFmode.
3732
3733 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
3734
3735         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
3736         (JUMP_TABLES_IN_TEXT_SECTION): Define.
3737         * config/mips/mips.c (mips16_insn_length): Remove reference to
3738         JUMP_TABLES_IN_TEXT_SECTION.
3739
3740 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
3741
3742         * simplify-rtx.c (simplify_binary_operation_1): Return
3743         scalar or vector of constant 0, depending on the xor's
3744         mode.
3745
3746 2005-04-13  Dale Johannesen  <dalej@apple.com>
3747
3748         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
3749         (objc-act.o):  Ditto.
3750         * objc/objc-act.c (objc_gimplify_expr):  New.
3751         (objc_get_callee_fndecl):  New.
3752         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
3753         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
3754         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
3755
3756 2005-04-13  Devang Patel  <dpatel@apple.com>
3757
3758         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
3759         temp variables.
3760
3761 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
3762
3763         CRIS prologue as RTL.
3764         * config/cris/cris-protos.h (cris_emit_movem_store)
3765         (cris_expand_prologue): Prototype.
3766         * config/cris/cris.c (struct machine_function): New member
3767         stdarg_regs.
3768         (cfa_label_num, cris_target_asm_function_prologue): Remove.
3769         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
3770         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
3771         (cris_load_multiple_op, cris_return_address_on_stack)
3772         (cris_return_address_on_stack_for_return): ISO-Cify.
3773         (cris_store_multiple_op): New predicate function.
3774         (cris_expand_prologue, cris_emit_movem_store): New functions.
3775         (cris_print_operand) <case 'O'>: Handle modifications other than
3776         post-increment.
3777         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
3778         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
3779         (cris_gen_movem_load): Rearrange slightly to make local variable
3780         src a parameter, removing osrc.
3781         (cris_setup_incoming_varargs): Set machine_function member
3782         stdarg_regs to correspond to the number of registers that need to
3783         be saved.
3784         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
3785         CRIS_UNSPEC_GOT.
3786         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
3787         cris_general_operand_or_gotless_symbol accept UNSPEC.
3788         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
3789         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
3790         ("*cris_store_multiple"): New pattern.  Tweak common comment above
3791         this and "*cris_load_multiple".
3792         ("prologue"): New define_expand.
3793
3794         * config/cris/cris.md ("epilogue"): Conditionalize on
3795         TARGET_PROLOGUE_EPILOGUE.
3796
3797 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
3798
3799         PR target/20924
3800         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
3801         fpsr 0 instead of fpsr 1.
3802         (divsf3_internal_thr): Ditto.
3803         (divdf3_internal_lat): Ditto.
3804         (divdf3_internal_thr): Ditto.
3805         (divxf3_internal_lat): Ditto.
3806         (divxf3_internal_thr): Ditto.
3807
3808 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
3809
3810         PR tree-optimization/20913
3811         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
3812
3813         PR tree-optimization/20702
3814         * tree-vrp.c (maybe_add_assert_expr): Recurse into
3815         dominator children that haven't been walked into.
3816
3817 2005-04-13  Julian Brown  <julian@codesourcery.com>
3818
3819         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
3820         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
3821         is true.
3822
3823 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
3824
3825         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
3826         config/i386/sse.md: Fix comment typos.
3827
3828         * genattrtab.c (NULL_ATTR): Remove.
3829         * ifcvt.c (NULL_EDGE): Likewise.
3830
3831         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
3832
3833         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
3834         NOTE_PREDICT): Remove.
3835
3836 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3837
3838         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
3839         * configure: Regenerate.
3840         * config.in: Likewise.
3841         * system.h: Declare vsnprintf if not already declared.
3842
3843 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3844
3845         * optc-gen.awk: Handle stand-alone Mask records.
3846         * opth-gen.awk: Likewise.
3847         * doc/options.texi (Option file format): Document them.
3848         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
3849         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
3850         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
3851         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
3852         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
3853         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
3854         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
3855         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
3856         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
3857         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
3858         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
3859         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
3860         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
3861         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
3862         TARGET_LONG_DOUBLE_128): Likewise.
3863         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
3864         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
3865         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
3866         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
3867         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
3868         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
3869         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
3870         * config/sparc/sparc.c (fpu_option_set): New global.
3871         (sparc_handle_option): New function.
3872         (sparc_override_options): Test fpu_option_set.
3873         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
3874         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
3875         * config/sparc/sparc.opt: New file.
3876         * config/sparc/little-endian.opt: Likewise.
3877         * config/sparc/long-double-switch.opt: Likewise.
3878
3879 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3880
3881         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
3882         (bfin_handle_options): Set it if -mshared-library-id= is seen.
3883         * config/bfin/bfin.opt (mshared-library-id=): Lose
3884         Var(bfin_lib_id_given).
3885
3886 2005-04-13  Matt Thomas  <matt@3am-software.com>
3887
3888         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
3889         defining.
3890
3891 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
3892
3893         * rtl.h (CLEAR_RTX_FLAGS): Remove.
3894
3895         * cgraphunit.c (INSNS_PER_CALL): Remove.
3896
3897         * tree-ssa-forwprop.c (vars,
3898         record_single_argument_cond_exprs,
3899         substitute_single_use_vars): Remove.
3900         (forward_propagate_into_cond_1, forward_propagate_into_cond):
3901         New.
3902         (tree_ssa_forward_propagate_single_use_vars): Call
3903         forward_propagate_into_cond for each COND_EXPR.
3904
3905         * tree-inline.c (INSNS_PER_STMT): Remove.
3906
3907 2005-04-12  Richard Henderson  <rth@redhat.com>
3908
3909         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
3910         (ix86_expand_sse_fp_minmax): ... from ...
3911         (ix86_expand_fp_movcc): ... here.
3912         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
3913         * config/i386/i386-protos.h: Update.
3914         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
3915         (sse_setccsf, sse_setccdf): Allow before reload.
3916         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
3917         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
3918         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
3919         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
3920         (anddf3, nanddf3, iordf3, xordf3): New.
3921
3922 2005-04-12  Jeff Law  <law@redhat.com>
3923
3924         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
3925         (tree-ssa-uncprop.o): Add dependencies.
3926         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
3927         * tree-flow.h (remove_useless_stmts): Remove prototype.
3928         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
3929         remove_useless_stmts.
3930         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
3931         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
3932         * tree-pass.h (pass_uncprop): Declare.
3933         * tree-ssa-uncprop.c: New file.
3934
3935 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
3936
3937         PR target/20670
3938         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
3939
3940 2005-04-12  Caroline Tice  <ctice@apple.com>
3941
3942         Temporary fix for partitioning problems.
3943         * passes.c (rest_of_handle_final): Remove code that
3944         frees unlikely_text_section_name,
3945         * varasm.c (assemble_start_function): Test for partitioning
3946         flag before writing out section labels.
3947         (assemble_end_function): Test for partitioning flag before
3948         writing out section labels.
3949
3950 2005-04-12  Steven Bosscher  <stevenb@suse.de>
3951             Stuart Hastings <stuart@apple.com>
3952             Jan Hubicka  <jh@suse.cz>
3953
3954         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
3955         references to gt-tree-cfg.h.
3956         * basic-block.h (struct basic_block_def): Don't skip rbi
3957         for garbage collection.
3958         (struct reorder_block_def): Make GTY-able.
3959         (struct control_flow_graph): New structure.
3960         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
3961         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
3962         but instead defines to the control_flow_graph for cfun.
3963         (label_to_block_map): New define, points to the label map of
3964         the control_flow_graph for cfun.
3965         (n_edges_for_function, n_basic_blocks_for_function,
3966         last_basic_block_for_function, basic_block_info_for_function,
3967         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
3968         basic_block_info_for_function, label_to_block_map_for_function):
3969         Counterparts for the above, taking a struct function as an extra
3970         argument.
3971         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
3972         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
3973         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
3974         (alloc_rbi_pool, free_rbi_pool): Remove.
3975         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
3976         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
3977         here...
3978         (cfg_layout_finalize) ... and don't free it here.
3979         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
3980         garbage collected.
3981         * flow.c (free_basic_block_vars): Set label_to_block_map and
3982         n_edges to zero too.
3983         * function.h (struct function): Add cfg field.
3984         * function.c (allocate_struct_function): Allocate the cfg.
3985         * tree-cfg.c (label_to_block_map): Remove.
3986         (build_tree_cfg): Don't allocate the rbi pool here...
3987         (delete_tree_cfg_annotations): ...and don't free it here.
3988         Also don't nullify label_to_block_map for cfun.
3989
3990 2005-04-12  Caroline Tice  <ctice@apple.com>
3991
3992         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3993         Revert my patch from April 9.
3994         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
3995         (reorder_basic_blocks): Revert my patch from April 9.
3996         (insert_section_boundary_note): Revert my patch from April 9.
3997         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
3998         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
3999         (COLD_END_LABEL):  Revert my patch from April 9.
4000         (cold_text_section_label):  Revert my patch from April 9.
4001         (cold_end_label): Revert my patch from April 9.
4002         (dwarf2out_switch_text_section): Revert my patch from April 9.
4003         (output_aranges): Revert my patch from April 9.
4004         (output_ranges):  Revert my patch from April 9.
4005         (output_line_info): Revert my patch from April 9.
4006         (add_location_or_const_value_attribute):  Revert my patch from April 9.
4007         (dwarf2out_var_location): Revert my patch from April 9.
4008         (dwarf2out_init):  Revert my patch from April 9.
4009         (dwarf2out_finish): Revert my patch from April 9.
4010         * function.h (struct function): Revert my patch from April 9.
4011         * opts.c (decode_options): Revert my patch from April 9.
4012         * output.h (unlikely_section_label, hot_section_label,
4013         hot_section_end_label, cold_section_end_label,
4014         unlikely_text_section_name): Revert my patch from April 9.
4015         * passes.c (rest_of_handle_final): Revert my patch from April 9.
4016         * varasm.c (unlikely_section_label, hot_section_label,
4017         hot_section_end_label, cold_section_end_label,
4018         unlikely_text_section_name): Revert my patch from April 9.
4019         (initialize_cold_section_name): Revert my patch from April 9.
4020         (unlikely_text_section): Revert my patch from April 9.
4021         (in_unlikely_text_section): Revert my patch from April 9.
4022         (named_section): Revert my patch from April 9.
4023         (function_section): Revert my patch from April 9.
4024         (current_function_section): Revert my patch from April 9.
4025         (assemble_start_function): Revert my patch from April 9.
4026         (assemble_end_function): Revert my patch from April 9.
4027         (default_section_type_flags_1): Revert my patch from April 9.
4028
4029 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
4030
4031         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
4032         * config/sparc/sparc.md (untyped_call): Save the registers manually.
4033
4034         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
4035
4036 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
4037
4038         PR middle-end/20917
4039         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
4040         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
4041
4042 2004-04-12  Richard Henderson  <rth@redhat.com>
4043
4044         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
4045         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
4046         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
4047         (UNSPEC_*, UNSPECV_*): Renumber.
4048
4049 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
4050
4051         PR mudflap/19266
4052         From Richard Henderson <rth@redhat.com>:
4053         * tree-mudflap.c (mf_build_check_statement_for): Correct block
4054         splitting logic.
4055
4056 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
4057
4058         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
4059
4060 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
4061
4062         * config/bfin/bfin.c (bfin_library_id_string): Remove.
4063         (bfin_library_id): New variable.
4064         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
4065         instead of bfin_library_id_string.
4066         (bfin_handle_option): New function.
4067         (override_options): Remove most code to deal with shared library IDs,
4068         just check they aren't used without -mid-shared-library.
4069         (TARGET_HANDLE_OPTION): Define.
4070         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
4071         * config/bfin/bfin.opt (mshared-library-id=): New.
4072
4073 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
4074
4075         * tree-vect-transform.c: Fix comment typos.
4076
4077 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
4078
4079         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
4080         split critical edges when not possible/profitable.
4081
4082 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
4083
4084         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
4085         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
4086         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
4087         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
4088         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
4089         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
4090         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
4091         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
4092         MASK_NO_BITFIELD.
4093         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
4094         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4095         * config/ns32k/ns32k.opt: New file.
4096
4097 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
4098
4099         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
4100         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
4101         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
4102         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
4103         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
4104         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
4105         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
4106         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
4107         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
4108         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
4109         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
4110         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
4111         (MASK_COLDFIRE): Formatting fixes.
4112         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
4113         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
4114         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
4115         "_current_shared_library_a5_offset_".
4116         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4117         (MASK_ALL_CPU_BITS): New macro.
4118         (m68k_handle_option): New function.
4119         (override_options): Remove handling of m68k_library_id_string.
4120         * config/m68k/m68k.opt: New file.
4121         * config/m68k/ieee.opt: New file.
4122
4123 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
4124
4125         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
4126         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
4127         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
4128         (TARGET_CXX): Adjust accordingly.
4129         * target.h (struct gcc_target): Remove epxort_class_data.  Add
4130         determine_class_data_visibility and class_data_always_comdat.
4131         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
4132         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
4133         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
4134         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
4135         (arm_cxx_determine_class_data_visibility): New.
4136         (arm_cxx_class_data_always_comdat): Likewise.
4137         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
4138         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
4139         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
4140         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
4141         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
4142         Define.
4143
4144 2005-04-11  Devang Patel  <dpatel@apple.com>
4145
4146         * tree-data-ref.c (build_classic_dist_vector,
4147         compute_subscript_distance): Make externally visible.
4148         * tree-data-ref.h (build_classic_dist_vector,
4149         compute_subscript_distance): Same.
4150         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
4151         Check distance vector against vectorization factor.
4152         (vect_analyze_loop): Determine vectorizaion factor before
4153         analyzing data dependences.
4154         * tree-vectorizer.c (loops_num): Make it externally visible and
4155         rename ...
4156         * tree-vectorizer.c (vect_loops_num): ... new name.
4157         * tree-vectorizer.h  (vect_loops_num): New.
4158
4159 2005-04-11  Devang Patel  <dpatel@apple.com>
4160
4161         * tree-vect-analyze.c (vect_analyze_operations): Check
4162         vectorizable codition.
4163         * tree-vect-transform.c (vect_is_simple_cond): New function.
4164         (vectorizable_condition): New function.
4165         (vect_transform_stmt): Handle condition_vec_info_type.
4166         * tree-vectorizer.h (enum stmt_vec_info_type): Add
4167         condition_vec_info_type.
4168         (vectorizable_condition): New.
4169
4170 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
4171
4172         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
4173         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
4174         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
4175
4176         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
4177         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
4178
4179         * dwarf2out.c (output_line_info): Don't try to dereference
4180         a NULL current_function_decl.
4181
4182         * config/t-slibgcc-darwin: Don't put shared libraries in
4183         directories other than $(slibdir).
4184         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
4185         OS uses for it.
4186
4187 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
4188
4189         PR tree-optimization/20933
4190         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
4191         logic to reject aliases between read-only and writable
4192         variables ...
4193         (may_alias_p): ... here.
4194         (get_tmt_for): Do not associate read-only tags to pointers
4195         whose pointed-to type is not read-only.
4196         * tree-ssa.c (verify_ssa): Check that memory stores have at
4197         least one V_MAY_DEF or V_MUST_DEF.
4198
4199 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4200
4201         PR/17092
4202         * configure.ac (gcc_UNLOCKED_FUNCS): New.
4203         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
4204         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
4205         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
4206         _unlocked function.
4207         (fwrite_unlocked): Fix prototype.
4208
4209         * configure, config.in: Regenerate.
4210
4211 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
4212
4213         * tree-ssa-loop-im.c: Include real.h.
4214         (determine_invariantness_stmt): If real division divisor is
4215         invariant and flag_unsafe_math_optimizations enabled, generate
4216         invariant reciprocal for hoisting.
4217         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
4218
4219 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
4220
4221         Fix PR tree-optimization/20926
4222
4223         * tree-ssa-alias.c (add_type_alias): Handle subvars.
4224
4225 2005-04-11  Devang Patel  <dpatel@apple.com>
4226
4227         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
4228         operand ordering.
4229
4230 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4231
4232         * fold-const.c (fold_binary_op_with_conditional_arg):
4233         use fold_buildN instead of "fold (buildN" in some
4234         non obvious places.
4235         (fold_unary): Likewise.
4236         (fold_binary): Likewise.
4237
4238 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
4239
4240         Fix PR tree-optimization/20612
4241         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
4242         handling
4243         (perfect_nestify): preheaderbb is *not* part of loop of the
4244         old destination.
4245
4246 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4247
4248         * tree-ssa-alias.c (may_alias_p): If the variable
4249         is a global variable and the pointer is parameter
4250         and -fargument-noalias-global is used, then
4251         the pointer cannot alias the variable.
4252
4253 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
4254
4255         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
4256         * config/sparc/sparc.h: Likewise.
4257         * config/sparc/sparc.md: Likewise.
4258
4259 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
4260
4261         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
4262
4263         * tree-vrp.c: Fix a comment typo.
4264
4265 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
4266
4267         PR tree-optimization/20920
4268         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
4269         SSA_NAME flows through an abnormal edge.
4270         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
4271         through abnormal edges.
4272         (maybe_add_assert_expr): Likewise.
4273
4274 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
4275
4276         * config/s390/s390.h (s390_tune_string, s390_arch_string)
4277         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
4278         (s390_stack_size_string, s390_stack_guard_string, target_flags)
4279         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
4280         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
4281         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
4282         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
4283         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
4284         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
4285         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
4286         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
4287         (TARGET_HANDLE_OPTION): Likewise.
4288         (s390_tune): Initialize to PROCESSOR_max.
4289         (s390_arch_string): Make static.
4290         (s390_tune_string, s390_warn_framesize_string): Delete.
4291         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
4292         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
4293         (s390_handle_arch_option, s390_handle_option): New functions.
4294         (override_options): Remove parsing of option strings.
4295         * config/s390/s390.opt: New file.
4296
4297 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
4298
4299         * tree-complex.c (expand_vector_operations): Call
4300         update_stmt_if_modified.
4301
4302 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
4303
4304         * tree-vect-analyze (vect_determine_vectorization_factor):
4305         Do not use GET_MODE_NUNITS.
4306         * tree-vect-transform.c (vect_get_vec_def_for_operand,
4307         (vectorizable_load, vect_transform_loop): Likewise.
4308
4309 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
4310
4311         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
4312         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
4313         * optabs.h (enum optab_index): Add new OTI_lceil.
4314         (lceil_optab): Define corresponding macro.
4315         * optabs.c (init_optabs): Initialize lceil_optab.
4316         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
4317         and lceildi2 patterns.
4318         * builtins.c (expand_builtin_int_roundingfn): Handle
4319         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
4320         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
4321         BUILT_IN_LLCEIL{,F,L}.
4322         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
4323         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
4324         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
4325         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
4326         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
4327         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
4328         into lceil built-in function and (long long int)ceil{,f,l} into
4329         llceil built-in function.
4330         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
4331         BUILT_IN_LLCEIL.
4332
4333 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4334
4335         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
4336         zero.
4337
4338 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
4339
4340         * config/arm/arm.c: Fix a comment typo.
4341         * doc/tree-ssa.texi: Fix a typo.
4342
4343 2005-04-10  Steven Bosscher  <stevenb@suse.de>
4344
4345         * cselib.c (clear_table): Rename to cselib_clear_table.
4346         * cselib.h (cselib_clear_table): Add prototype.
4347         * gcse.c (gcse_main): Make 'f' argument unused.
4348         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
4349         of each basic block instead.
4350         (compute_sets, compute_hash_table_work): Likewise.
4351         (constprop_register): Change int 'alter_jumps' argument to bool.
4352         (do_local_cprop): Likewise.
4353         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
4354         the insn chain.  Explicitly clear the cselib tables after finishing
4355         one basic block.  Make sure there are no unterminated libcall blocks.
4356         Update compute_sets call.
4357         (cprop): Walk basic blocks instead of the insn chain.
4358         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
4359         Likewise.
4360         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
4361         one_cprop_pass calls.
4362
4363 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
4364
4365         * combine.c (combine_simplify_rtx): Remove a transformation that
4366         relies on an invalid assumption about rtl sign-extension semantics.
4367
4368 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
4369
4370         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
4371         to build_int_cst_wide.
4372
4373 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
4374
4375         PR target/20126
4376         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
4377         set the original address pseudo to the correct value before the
4378         original insn, if possible, and leave the insn alone, otherwise
4379         create a new pseudo, set it and replace it in the insn.
4380         * recog.c (validate_change_maybe_volatile): New.
4381         * recog.h (validate_change_maybe_volatile): Declare.
4382
4383 2005-04-09  Caroline Tice  <ctice@apple.com>
4384
4385         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
4386         Remove targetm.have_named_sections test.
4387         (fix_edges_for_rarely_executed_code): Likewise.
4388         (insert_section_boundary_note): Likewise.
4389         (reorder_basic_blocks): Check partitioning flag before calling
4390         verify_hot_cold_block_grouping.
4391         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
4392         the function struct rather than global variables.
4393         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
4394         (COLD_END_LABEL): Likewise
4395         (cold_text_section_label): New static global variable.
4396         (cold_end_label): Likewise.
4397         (dwarf2out_switch_text_section): Get hot/cold section labels from
4398         the function struct rather than global variables.
4399         (output_aranges): Use cold_text_section_label and cold_end_label;
4400         check partitioning flag before putting out delta.
4401         (output_ranges): Remove incorrect code attempting to use
4402         hot/cold labels.
4403         (output_line_info): Get cold section label from function struct.
4404         (add_location_or_const_value_attribute): Likewise.
4405         (get_subprogram_die): Get hot/cold section labels from function struct.
4406         (dwarf2out_var_location): Likewise.
4407         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
4408         write out cold_text_section_label if partition flag is set.
4409         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
4410         * function.h (struct function): Add new fields to point to hot/cold
4411         section labels: hot_section_label, cold_section_label,
4412         hot_section_end_label and cold_section_end_label; also add new field
4413         for cold text section name, unlikely_text_section_name.
4414         * opts.c (decode_options): Turn off partitioning flag if
4415         !targetm.have_named_sections.
4416         * output.h (hot_section_label): Remove.
4417         (hot_section_end_label): Remove.
4418         (cold_section_end_label): Remove.
4419         (unlikely_section_label): Remove.
4420         (unlikely_text_section_name): Remove.
4421         * passes.c (rest_of_handle_final):  Remove code that frees
4422         unlikely_text_section_name.
4423         * varasm.c (unlikely_section_label): Remove.
4424         (hot_section_label): Remove.
4425         (hot_section_end_label): Remove.
4426         (cold_section_end_label): Remove.
4427         (unlikely_text_section_name):  Remove.
4428         (initialize_cold_section_name): Modify to call
4429         targetm.strip_name_encoding; to store cold section name in current
4430         function struct, if it exists; and to only use the decl_section_name
4431         if flag_named_sections is true.
4432         (unlikely_text_section): Modify to get section name out of current
4433         function struct, if there is one; otherwise build it from
4434         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
4435         (in_unlikely_text_section): Likewise.
4436         (named_section): Modify to get/put cold section name in current function
4437         struct, if there is one.
4438         (function_section):  Change 'bool unlikely' to 'int reloc'; check
4439         targetm.have_named_sections before calling named_section.
4440         (current_function_section): Likewise.
4441         (assemble_start_function): Modify to get/put unlikely_text_section_name
4442         in current function struct; modify to get hot/cold section labels
4443         from function struct; initialize labels using
4444         ASM_GENERATE_INTERNAL_LABEL;
4445         test partitioning flag before writing out hot section label.
4446         (assemble_end_function): Test partitioning flag before writing out
4447         hot/cold section labels.
4448         (default_section_type_flags_1):  Modify to use array instead of
4449          char* for unlikely_text_section_name; set flags correctly for
4450          cold text section if there is not a current function decl.
4451
4452 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
4453
4454         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
4455         and TI_VA_LIST_FPR_COUNTER_FIELD.
4456         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
4457         * tree-pass.h (pass_stdarg): Add.
4458         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
4459         * tree-stdarg.c: New file.
4460         * tree-stdarg.h: New file.
4461         * Makefile.in (OBJS-common): Add tree-stdarg.o.
4462         (tree-stdarg.o): Add dependencies.
4463         * function.h (struct function): Add va_list_gpr_size and
4464         va_list_fpr_size fields.
4465         * function.c (allocate_struct_function): Initialize them.
4466         * target.h (struct gcc_target): Add stdarg_optimize_hook.
4467         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
4468         (TARGET_INITIALIZER): Add it.
4469
4470         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
4471         va_list_{g,f}pr_counter_field.
4472         (ix86_setup_incoming_varargs): Don't do anything if reg_save
4473         area will not be used.  Only save registers that tree-stdarg.c
4474         detected they need saving.
4475         (ix86_va_start): Don't set up fields that won't be used.
4476
4477         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
4478         va_list_{g,f}pr_counter_field.
4479         (setup_incoming_varargs): Don't do anything if reg_save
4480         area will not be used.  Only save registers that tree-stdarg.c
4481         detected they need saving.
4482         (rs6000_va_start): Don't set up fields that won't be used.
4483
4484         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
4485         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
4486         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
4487         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
4488
4489 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
4490
4491         PR target/20795
4492         * config/i386/i386.c (construct_container): Pass empty aligned
4493         struct, union or class in memory.
4494
4495 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
4496
4497         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
4498         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
4499         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
4500         config/rs6000/predicates.md: Fix comment typos.
4501
4502         * sched-int.h (haifa_insn_data): Remove blockage and units.
4503         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
4504         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
4505         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
4506
4507 2005-04-09  Jan Hubicka  <jh@suse.cz>
4508             Steven Bosscher  <stevenb@suse.de>
4509
4510         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
4511         * cfgloop.c (get_loop_exit_edges): Likewise.
4512         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
4513         (unloop): Likewise.
4514         * loop-unroll.c (analyze_insns_in_loop): Likewise.
4515         * tree-cfg.c (dump_cfg_status): Likewise.
4516
4517 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
4518
4519         * config/rs6000/predicates.md (altivec_register_operand): Remove
4520         redundant match_code test.
4521         (gpc_reg_operand): Same.
4522         (cc_reg_operand): Same.
4523         (cc_reg_not_cr0_operand): Same.
4524
4525 2005-04-09  Jan Hubicka  <jh@suse.cz>
4526
4527         Forgotten hunk from my last merge patch:
4528         * final.c (output_addr_const): Do not call mark_referenced.
4529
4530 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
4531
4532         * doc/tree-ssa.texi: Add immediate use documentation.
4533
4534 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
4535
4536         * arm.c (FL_WBUF): Define.
4537         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
4538         (arm_is_6_or_7): Delete.
4539         (arm_tune_wbuf): New.
4540         (arm_override_options): Set arm_tune_wbuf.
4541         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
4542         (arm_is_6_or_7): Delete declaration.
4543         (arm_tune_wbuf): New declartion.
4544         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
4545         (model_wbuf): Derive from arm_tune_wbuf.
4546         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
4547         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
4548         (arm740t): Mark CPUs as having a write buffer.
4549
4550 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
4551
4552         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
4553         of 'const_double_operand' in operand 2 constraints.  Update enable
4554         condition.
4555
4556 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
4557
4558         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
4559         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
4560         * optabs.h (enum optab_index): Add new OTI_lfloor.
4561         (lfloor_optab): Define corresponding macro.
4562         * optabs.c (init_optabs): Initialize lfloor_optab.
4563         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
4564         and lfloordi2 patterns.
4565         * builtins.c (expand_builtin_int_roundingfn): New prototype.
4566         (expand_builtin_int_roundingfn): New function.
4567         (fold_builtin_int_roundingfn): New prototype.
4568         (fold_builtin_int_roundingfn): New function, renamed from
4569         fold_builtin_lround.
4570         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
4571         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
4572         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
4573         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
4574         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
4575         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
4576         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
4577         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
4578         into lfloor built-in function and (long long int)floor{,f,l} into
4579         llfloor built-in function.
4580         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
4581         BUILT_IN_LLFLOOR.
4582
4583 2005-04-08  Ian Lance Taylor  <ian@airs.com>
4584
4585         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
4586         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
4587         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
4588         (DO_COND, DO_BODY): Likewise.
4589         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
4590         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
4591         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
4592         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
4593         (build_continue_stmt, build_break_stmt): Don't declare.
4594         (c_do_switch_warnings): Update declaration.
4595         * c-gimplify.c (enum bc_t): Remove.
4596         (struct c_gimplify_ctx, ctxp): Remove.
4597         (push_context, pop_context): Remove static functions.
4598         (c_genericize): Don't call push_context or pop_context.
4599         (begin_bc_block, finish_bc_block): Remove static functions.
4600         (build_bc_goto): Likewise.
4601         (gimplify_c_loop): Likewise.
4602         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
4603         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
4604         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
4605         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
4606         * c-common.c (c_do_switch_warnings): Rename from
4607         c_do_switch_warnings_1.
4608         (c_do_switch_warnings) [old version]: Remove.
4609         (c_do_switch_expr_warnings): Remove.
4610         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
4611         function instead of c_do_switch_expr_warnings.
4612         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
4613         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
4614         * c-pretty-print.c (pp_c_statement): Likewise.
4615         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
4616
4617 2005-04-08  Devang Patel  <dpatel@apple.com>
4618
4619         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
4620         While selecting replacement condition pay attention to loop header.
4621
4622 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
4623
4624         Merge from tree-cleanup-branch: VRP, store CCP, store
4625             copy-prop, incremental SSA updating of FUD chains and
4626             newly exposed symbols.
4627
4628         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
4629         (OBJS-common): Add tree-vrp.o.
4630         (tree-vrp.o): New rule.
4631         * basic-block.h (nearest_common_dominator_for_set): Declare.
4632         * common.opt (ftree-store-ccp): New flag.
4633         (ftree-copy-prop): New flag.
4634         (ftree-vrp): New flag.
4635         (ftree-store-copy-prop): New flag.
4636         * dominance.c (nearest_common_dominator_for_set): New.
4637         * domwalk.c (walk_dominator_tree): Only traverse
4638         statements in blocks marked in walk_data->interesting_blocks.
4639         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
4640         * fold-const.c (fold): Handle ASSERT_EXPR.
4641         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
4642         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
4643         flag_tree_vrp at -O2.
4644         * timevar.def (TV_TREE_VRP): Define.
4645         (TV_TREE_COPY_PROP): Define.
4646         (TV_TREE_STORE_COPY_PROP): Define.
4647         (TV_TREE_SSA_INCREMENTAL): Define.
4648         (TV_TREE_STORE_CCP): Define.
4649         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
4650         to kill_redundant_phi_nodes from comment.
4651         (verify_expr): Handle ASSERT_EXPR.
4652         * tree-dfa.c (mark_new_vars_to_rename): Remove second
4653         argument.  Update all users.
4654         (mark_call_clobbered_vars_to_rename): Remove.  Update all
4655         users.
4656         * tree-flow-inline.h (unmodifiable_var_p): New.
4657         * tree-flow.h (enum value_range_type): Declare.
4658         (struct value_range_def): Declare.
4659         (value_range): Declare.
4660         (remove_all_phi_nodes_for): Remove.  Update all users.
4661         (find_phi_node_for): Declare.
4662         (add_type_alias): Declare.
4663         (count_uses_and_derefs): Declare.
4664         (kill_redundant_phi_nodes): Remove.
4665         (rewrite_into_ssa): Remove.
4666         (rewrite_def_def_chains): Remove.
4667         (update_ssa, register_new_name_mapping, create_new_def_for,
4668         need_ssa_update_p, name_registered_for_update_p,
4669         release_ssa_name_after_update_ssa, dump_repl_tbl,
4670         debug_repl_tbl, dump_names_replaced_by,
4671         debug_names_replaced_by, mark_sym_for_renaming,
4672         mark_set_for_renaming, get_current_def, set_current_def,
4673         get_value_range, dump_value_range, debug_value_range,
4674         dump_all_value_ranges, debug_all_value_ranges,
4675         expr_computes_nonzero, loop_depth_of_name,
4676         unmodifiable_var_p): Declare.
4677         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
4678         ASSERT_EXPR.
4679         * tree-into-ssa.c (block_defs_stack): Update comment.
4680         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
4681         syms_to_rename, names_to_release, repl_tbl,
4682         need_to_initialize_update_ssa_p, need_to_update_vops_p,
4683         need_to_replace_names_p): New locals.
4684         (NAME_SETS_GROWTH_FACTOR): Define.
4685         (struct repl_map_d): Declare.
4686         (struct mark_def_sites_global_data): Add field
4687         interesting_blocks.
4688         (enum rewrite_mode): Declare.
4689         (REGISTER_DEFS_IN_THIS_STMT): Define.
4690         (compute_global_livein): Use last_basic_block instead of
4691         n_basic_blocks.
4692         (set_def_block): Remove last argument.  Update all callers.
4693         (prepare_use_operand_for_rename): Remove.  Update all callers.
4694         (prepare_def_operand_for_rename): Remove.  Update all callers.
4695         (symbol_marked_for_renaming): New.
4696         (is_old_name): New.
4697         (is_new_name): New.
4698         (repl_map_hash): New.
4699         (repl_map_eq): New.
4700         (repl_map_free): New.
4701         (names_replaced_by): New.
4702         (add_to_repl_tbl): New.
4703         (add_new_name_mapping): New.
4704         (mark_def_sites): Assume that all the operands in the
4705         statement are in normal form.
4706         (find_idf): Assert that the block in the stack is valid.
4707         (get_default_def_for): New.
4708         (insert_phi_nodes_for): Add new argument 'update_p'.
4709         Add documentation.
4710         If update_p is true, add a new mapping between the LHS of
4711         each new PHI and the name that it replaces.
4712         (insert_phi_nodes_1): Only call find_idf if needed.
4713         (get_reaching_def): Call get_default_def_for.
4714         (rewrite_operand): Remove.
4715         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
4716         and REWRITE_THIS_STMT are false.
4717         Assume that all the operands in the statement are in
4718         normal form.
4719         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
4720         (rewrite_virtual_phi_arguments): Remove.
4721         (invalidate_name_tags): Remove.
4722         (register_new_update_single, register_new_update_set,
4723         rewrite_update_init_block, replace_use,
4724         rewrite_update_fini_block, rewrite_update_stmt,
4725         rewrite_update_phi_arguments): New.
4726         rewrite_blocks): Remove argument 'fix_virtual_phis'.
4727         Add arguments 'entry', 'what' and 'blocks'.
4728         Initialize the dominator walker according to 'what' and
4729         'blocks'.
4730         Start the dominator walk at 'entry'.
4731         (mark_def_site_blocks): Add argument 'interesting_blocks'.
4732         Use it to configure the dominator walker.
4733         (rewrite_into_ssa): Remove argument 'all'.
4734         Make internal.
4735         (rewrite_all_into_ssa): Remove.
4736         (rewrite_def_def_chains): Remove.
4737         (mark_def_interesting, mark_use_interesting,
4738         prepare_phi_args_for_update, prepare_block_for_update,
4739         prepare_def_site_for, prepare_def_sites,
4740         dump_names_replaced_by, debug_names_replaced_by,
4741         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
4742         delete_update_ssa, create_new_def_for,
4743         register_new_name_mapping, mark_sym_for_renaming,
4744         mark_set_for_renaming, need_ssa_update_p,
4745         name_registered_for_update_p, ssa_names_to_replace,
4746         release_ssa_name_after_update_ssa,
4747         insert_updated_phi_nodes_for, update_ssa): New.
4748         * tree-loop-linear.c (linear_transform_loops): Call
4749         update_ssa instead of rewrite_into_ssa.
4750         * tree-optimize.c (vars_to_rename): Remove.
4751         Update all users.
4752         (init_tree_optimization_passes): Replace
4753         pass_redundant_phi with pass_copy_prop.
4754         Add pass_vrp.
4755         Replace pass_ccp with pass_store_ccp.
4756         Add pass_store_copy_prop after pass_store_ccp.
4757         (execute_todo): If the TODO_ flags don't include updating
4758         the SSA form, assert that it does not need to be updated.
4759         Call update_ssa instead of rewrite_into_ssa and
4760         rewrite_def_def_chains.
4761         If TODO_verify_loops is set, call verify_loop_closed_ssa.
4762         (tree_rest_of_compilation):
4763         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
4764         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
4765         TODO_cleanup_cfg): Renumber.
4766         (TODO_verify_loops, TODO_update_ssa,
4767         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
4768         TODO_update_ssa_only_virtuals): Define.
4769         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
4770         Declare.
4771         * tree-phinodes.c (make_phi_node): Update documentation.
4772         (remove_all_phi_nodes_for): Remove.
4773         (find_phi_node_for): New.
4774         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
4775         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
4776         (interpret_rhs_modify_expr): Likewise.
4777         * tree-sra.c (decide_instantiations): Mark all symbols in
4778         SRA_CANDIDATES for renaming.
4779         (mark_all_v_defs_1): Rename from mark_all_v_defs.
4780         (mark_all_v_defs): New function.  Update all users to call it
4781         with the whole list of scalarized statements, not just the
4782         first one.
4783         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
4784         (compute_flow_insensitive_aliasing): If the tag is
4785         unmodifiable and the variable isn't or vice-versa, don't
4786         make them alias of each other.
4787         (setup_pointers_and_addressables): If the type tag for
4788         VAR is about to change, mark the old one for renaming.
4789         (add_type_alias): New.
4790         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
4791         (ccp_lattice_t): Rename from latticevalue.
4792         (value): Remove.  Update all users.
4793         (const_val): New local variable.
4794         (do_store_ccp): New local variable.
4795         (dump_lattice_value): Handle UNINITIALIZED.
4796         (debug_lattice_value): New.
4797         (get_default_value): Re-write.
4798         (set_lattice_value): Re-write.
4799         (def_to_varying): Remove.  Update all users.
4800         (likely_value): Return VARYING for statements that make
4801         stores when STORE_CCP is false.
4802         Return VARYING for any statement other than MODIFY_EXPR,
4803         COND_EXPR and SWITCH_EXPR.
4804         (ccp_initialize): Re-write.
4805         (replace_uses_in, replace_vuse_in, substitute_and_fold):
4806         Move to tree-ssa-propagate.c.
4807         (ccp_lattice_meet): Handle memory stores when
4808         DO_STORE_CCP is true.
4809         (ccp_visit_phi_node): Likewise.
4810         (ccp_fold): Likewise.
4811         (evaluate_stmt): Likewise.
4812         (visit_assignment): Likewise.
4813         (ccp_visit_stmt): Likewise.
4814         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
4815         into DO_STORE_CCP.
4816         (do_ssa_ccp): New.
4817         (pass_ccp): Use it.
4818         (do_ssa_store_ccp): New.
4819         (gate_store_ccp): New.
4820         (pass_store_ccp): Declare.
4821         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
4822         (may_propagate_copy): Reformat.
4823         Don't abort if ORIG is a virtual and DEST isn't.
4824         If NEW does not have alias information but DEST does,
4825         copy it.
4826         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
4827         copy_prop_kind, which_copy_prop): Declare.
4828         (stmt_may_generate_copy, get_copy_of_val,
4829         get_last_copy_of, set_copy_of_val, dump_copy_of,
4830         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
4831         copy_prop_visit_stmt, copy_prop_visit_phi_node,
4832         init_copy_prop, fini_copy_prop, execute_copy_prop,
4833         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
4834         store_copy_prop): New.
4835         (pass_copy_prop, pass_store_copy_prop): Declare.
4836         * tree-ssa-dom.c (struct opt_stats_d): Add fields
4837         'num_const_prop' and 'num_copy_prop'.
4838         (cprop_operand): Update them.
4839         (dump_dominator_optimization_stats): Dump them.
4840         (tree_ssa_dominator_optimize): Call update_ssa instead of
4841         rewrite_into_ssa.
4842         (loop_depth_of_name): Declare extern.
4843         (simplify_cond_and_lookup_avail_expr): Guard against NULL
4844         values for LOW or HIGH.
4845         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
4846         (record_equivalences_from_stmt): Call expr_computes_nonzero.
4847         (cprop_operand): Only propagate if VAL != OP.
4848         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
4849         statement for renaming.
4850         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
4851         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
4852         add_type_alias if necessary.
4853         Call mark_new_vars_to_rename.
4854         (tree_ssa_iv_optimize): If new symbols need to be renamed,
4855         mark every statement updated, call update_ssa and
4856         rewrite_into_loop_closed_ssa.
4857         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
4858         from LIVEIN if VAR is a virtual.
4859         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
4860         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
4861         (get_call_expr_operands): Reformat statement.
4862         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
4863         symbols.
4864         * tree-ssa-propagate.c (ssa_prop_init): Initialize
4865         SSA_NAME_VALUE for every name.
4866         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
4867         get_value_loaded_by): New.
4868         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
4869         substitute_and_fold): Move from tree-ssa-ccp.c.
4870         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
4871         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
4872         get_value_loaded_by, replace_uses_in, substitute_and_fold):
4873         Declare.
4874         * tree-ssa.c (verify_use): Fix error message.
4875         (propagate_into_addr, replace_immediate_uses, get_eq_name,
4876         check_phi_redundancy, kill_redundant_phi_nodes,
4877         pass_redundant_phi): Remove.  Update all users.
4878         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
4879         add_type_alias, if necessary.
4880         * tree-vectorizer.h (struct _stmt_vect_info): Update
4881         documentation for field 'memtag'.
4882         * tree-vrp.c: New file.
4883         * tree.def (ASSERT_EXPR): Define.
4884         * tree.h (ASSERT_EXPR_VAR): Define.
4885         (ASSERT_EXPR_COND): Define.
4886         (SSA_NAME_VALUE_RANGE): Define.
4887         (struct tree_ssa_name): Add field 'value_range'.
4888         (PHI_REWRITTEN): Remove.
4889         (struct tree_phi_node): Remove field 'rewritten'.
4890         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
4891         -ftree-store-copy-prop): Document.
4892         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
4893         Document usage of update_ssa.
4894
4895 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
4896
4897         PR target/20814
4898         * config/rs6000/predicates.md (altivec_register_operand): Accept
4899         SUBREG.
4900         (and64_operand): Do not limit CONST_INT to mask64_operand.
4901         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
4902         (and_operand): Do not limit CONST_INT to mask_operand.
4903
4904 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
4905
4906         PR rtl-optimization/20466
4907         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
4908         for overlap of the address of each list member.
4909         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
4910
4911 2005-04-08  Mike Stump  <mrs@apple.com>
4912
4913         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
4914
4915         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
4916         instead of 4.
4917
4918 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
4919
4920         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
4921
4922         * function.c (push_function_context_to): Don't set
4923         contains_functions.
4924         * function.h (function): Remove contains_functions.
4925         (current_function_contains_functions): Remove.
4926
4927         * function.h (function): Remove instrument_entry_exit.
4928         (current_function_instrument_entry_exit): Remove.
4929
4930         * function.h (nonlocal_labels): Remove.
4931
4932         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
4933
4934         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
4935         (check_attr_value, write_attr_get, write_expr_attr_cache,
4936         find_attr, make_internal_attr): Don't reference negative_ok or
4937         unsigned_p.
4938         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
4939         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
4940         (ATTR_STATIC): Adjust the value.
4941
4942         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
4943
4944 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
4945
4946         * config/s390/tpf.h (ASM_SPEC): Define.
4947
4948 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
4949
4950         * tree-flow.h: Remove the prototype for
4951         redirect_immediate_uses.
4952         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
4953
4954 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
4955
4956         * arm.c (arm_const_double_by_parts): New function.
4957         * arm-protos.h (arm_const_double_by_parts): Add prototype.
4958         * arm.md (define_split for 64-bit constants): Add another one.
4959
4960 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
4961
4962         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
4963
4964 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4965
4966         * system.h: Revert last change.
4967
4968 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
4969
4970         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
4971         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
4972         (TARGET_SWITCHES): Delete.
4973         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
4974         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
4975         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
4976         * config/xtensa/xtensa.opt: New file.
4977
4978 2005-04-08  Ben Elliston  <bje@au.ibm.com>
4979
4980         * config/fp-bit.c: Include L_mul_tf in #endif comment.
4981         * config/fp-bit.h: Tidy comments.
4982
4983 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4984
4985         * system.h: Poison PARAMS.
4986
4987 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
4988
4989         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
4990         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
4991         (TARGET_SWITCHES): Delete.
4992         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
4993         * config/vax/vax.opt: New file.
4994
4995 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
4996
4997         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
4998
4999 2005-04-07  Ian Lance Taylor  <ian@airs.com>
5000
5001         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
5002         define.
5003         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
5004         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
5005         Likewise.
5006
5007 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
5008
5009         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
5010         all immediate uses in PHI nodes.
5011
5012 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
5013
5014         * arm.c (arm_const_double_inline_cost): Handle any constant by
5015         using gen_lowpart and gen_highpart_mode.
5016         (note_invalid_constants): All constants in an RTX with a constraint
5017         that permits memory are now pushed to the constant pool.
5018         (output_move_double): Delete code to handle reg to reg and
5019         constant to reg moves.
5020         (const_double_needs_minipool, output_mov_immediate): Delete.
5021         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
5022         CONST_INT and CONST_VECTOR.
5023         * arm.md (ANY64): New mode macro.
5024         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
5025         (movdf_soft_insn): Split reg-reg and const-reg moves.
5026         (split patterns for 64-bit constant and register moves): New.
5027         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
5028         (cirrus_movdf_hard_insn): Likewise.
5029         * fpa.md (movdf_fpa): Likewise.
5030         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
5031         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
5032         constraints.
5033         (movv2si_internal_2): Likewise.
5034         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
5035         (movdf_vfp): Likewise.
5036         * arm-protos.h (output_mov_immediate): Delete prototype.
5037
5038 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
5039
5040         PR target/20093
5041         * simplify-rtx.c (simplify_unary_operation_1): Check
5042         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
5043
5044 2005-04-06  James E Wilson  <wilson@specifixinc.com>
5045
5046         PR target/20717
5047         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
5048         ADDR_EXPR.
5049
5050 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
5051
5052         * coverage.h (GCOV_TYPE_NODE): Delete.
5053         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
5054         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
5055         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
5056         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
5057         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
5058
5059 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
5060
5061         PR other/20792
5062         * Makefile.in (gcc.pot): Remove options.c dependency.
5063         * optc-gen.awk: Don't quote help strings with N_().
5064
5065 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
5066
5067         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
5068         the function returns a pointer type.
5069
5070 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
5071
5072         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
5073         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
5074         * doc/invoke.texi: Documnet salias-max-implicit-fields.
5075         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
5076         explicit_uses members.
5077         (get_or_create_used_part_for): Initialize new fields.
5078         (fieldoff_compare): New function.
5079         (create_overlap_variables_for): Count number of fields, use
5080         heuristic to determine whether to create subvars for vars with
5081         only implicit uses.
5082         Sort the field list by offset and avoid creating duplicate SFT's.
5083
5084 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
5085
5086         * c.opt (-F): Remove trailing whitespace from help string.
5087         (-finput-charset): Use a tab to separate the switch name and help
5088         string.
5089         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
5090         (-ftree-vectorizer-verbose): Likewise.
5091
5092 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
5093
5094         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
5095         a PHI argument where a use occurs instead of all PHI arguments.
5096
5097 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
5098
5099         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
5100         scope.
5101
5102 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
5103
5104         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
5105         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
5106         config/bfin/bfin.h: Fix comment typos.
5107
5108 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
5109
5110         * doc/install.texi: Update the URL for Jacks.
5111         * doc/sourcebuild.texi: Likewise.
5112
5113 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
5114
5115         PR target/17245
5116         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
5117         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
5118
5119 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
5120
5121         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
5122
5123 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
5124
5125         * config/v850/v850-protos.h (override_options): Delete.
5126         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
5127         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
5128         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
5129         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
5130         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
5131         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
5132         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
5133         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
5134         (OVERRIDE_OPTIONS): Delete.
5135         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
5136         (small_memory_info): Remove the value field.
5137         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
5138         TARGET_NO_APP_REGS.
5139         * config/v850/v850.c (small_memory): Remove the value field.
5140         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
5141         (override_options): Delete.
5142         (v850_handle_memory_option, v850_handle_option): New functions.
5143         * config/v850/v850.opt: New file.
5144
5145 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
5146
5147         * config.host: Add a section for generic hosts, and a subsection
5148         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
5149         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
5150         * config/host-darwin.h: New.
5151         * config/x-darwin: New.
5152         * config/i386/host-i386-darwin.c: New.
5153         * config/i386/x-darwin: New.
5154         * config/rs6000/host-darwin.c: Include host-darwin.h.
5155         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
5156         (darwin_rs6000_gt_pch_use_address): Likewise.
5157         * config/rs6000/x-darwin: Change name of .o built, update
5158         dependencies for changes to rs6000/host-darwin.c.
5159
5160 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
5161
5162         PR target/17824
5163         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
5164
5165 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
5166
5167         * tree-vect-analyze.c (vect_analyze_loop_form): Call
5168         split_loop_exit_edge instead of loop_split_edge_with.
5169
5170 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
5171
5172         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
5173         UNSPEC_SET_VSCR): New constants, used throughout.
5174         (*andc3_v4sf): New.
5175         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
5176         Replace with...
5177         (altivec_vspltis<VI_char>): ... this pattern, using
5178         a QImode const_int_operand for the immediate.
5179         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
5180         define_expands.
5181
5182 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
5183
5184         PR target/17822
5185         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
5186
5187 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
5188
5189         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
5190
5191 2005-04-06  Ben Elliston  <bje@au.ibm.com>
5192
5193         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
5194         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
5195         macros as living in "this file" and not gcc.h.
5196
5197 2005-04-06  Ben Elliston  <bje@au.ibm.com>
5198
5199         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
5200         -ftree-live_range_split.  Perhaps renamed at some point?
5201
5202 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
5203
5204         PR target/20625
5205         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
5206         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
5207
5208 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
5209
5210         * tree-flow.h (number_of_iterations_cond): Declaration removed.
5211         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
5212         (number_of_iterations_special): New function.
5213         (number_of_iterations_exit): Use number_of_iterations_special.
5214         Use simplify_using_outer_evolutions only at -O3.
5215         (number_of_iterations_cond, tree_simplify_using_condition,
5216         simplify_using_initial_conditions, loop_niter_by_eval,
5217         compare_trees, can_count_iv_in_wider_type_bound,
5218         simplify_using_outer_evolutions): Use fold_build.
5219
5220 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
5221
5222         * doc/install.texi (Configuration): Document --with-java-home.
5223
5224 2005-04-05  Richard Henderson  <rth@redhat.com>
5225
5226         PR target/20342
5227         PR target/20447
5228         * config/i386/i386.c (print_operand): Handle vector zeros.
5229         (ix86_split_to_parts): Handle CONST_VECTOR.
5230         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
5231         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
5232         what modes to tie for MMX and SSE registers.
5233         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
5234         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
5235         to vector modes as well.
5236         * config/i386/predicates.md (const0_operand): Handle VOIDmode
5237         properly as an input mode.
5238
5239 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
5240
5241         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
5242
5243 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
5244
5245         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
5246
5247 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
5248
5249         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
5250         and local functions, set sse_nregs to 8 and float_in_sse.
5251         (function_arg_advance, function_arg): If float_in_sse, pass
5252         SFmode and DFmode arguments in SSE registers.
5253         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
5254
5255         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
5256         of -funit-at-a-time.
5257
5258 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
5259
5260         * config/i386/i386-protos.h (ix86_function_value): Accept two
5261         arguments, like the target macro.
5262         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
5263         * config/i386/i386.c (ix86_function_value): Accept the second
5264         argument of the target macro.
5265         (ix86_function_ok_for_sibcall): Pass a function pointer to
5266         ix86_function_value.
5267         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
5268         call to ix86_value_regno).
5269         (ix86_value_regno): Add support for returning floating point values
5270         in SSE registers.
5271
5272 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
5273
5274         PR tree-optimization/20076
5275         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
5276         that call __builtin_return or __builtin_apply_args.
5277
5278 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
5279
5280         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
5281         Use immediate use iterator.
5282         (stmt_is_bumper_for_loop): Use immediate use iterator.
5283         * predict.c (strip_builtin_expect): Use update_stmt.
5284         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
5285         on all elements of a STATEMENT_LIST.
5286         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
5287         (bsi_remove): Remove imm_use links and mark the stmt as modified.
5288         (bsi_replace): Mark stmt as modified and the update it.
5289         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
5290         (expand_complex_libcal): Call update_stmt.
5291         (expand_complex_comparison): Call mark_stmt_modified.
5292         (expand_complex_operations_1): Call update_stmt_if_modified.
5293         (expand_vector_operations_1): Call mark_stmt_modified.
5294         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
5295         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
5296         add_immediate_use, redirect_immediate_use,
5297         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
5298         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
5299         (mark_new_vars_to_rename): Call update_stmt.
5300         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
5301         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
5302         Ignore PHI nodes.
5303         (unmodify_stmt): Delete.
5304         (update_stmt): New.  Force an update of a stmt.
5305         (update_stmt_if_modified): update a stmt if it is out of date.
5306         (get_stmt_operands): Verify stmt is NOT modified.
5307         (stmt_modified_p): Update comment.
5308         (delink_imm_use): Remove a use node from its immuse list.
5309         (link_imm_use_to_list): Link a use node to a specific list.
5310         (link_imm_use): Link a node to the correct list.
5311         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
5312         it in the correct list, if appropriate.
5313         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
5314         (relink_imm_use): Link a use node in place of another node in a list.
5315         (relink_imm_use_stmt): LInk a node in place of another node, and set
5316         the stmt pointer.
5317         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
5318         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
5319         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
5320         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
5321         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
5322         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
5323         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
5324         (has_zero_uses): New.  Return true if there are no uses of a var.
5325         (has_single_use): New.  Return true if there is only a single use of a
5326         variable.
5327         (single_imm_use): New.  Return the simgle immediate use.
5328         (num_imm_uses): New.  Return the number of immediate uses.
5329         (get_v_must_def_ops): Use is now a pointer.
5330         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
5331         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
5332         the use node.
5333         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
5334         (delink_stmt_imm_use): Delink all immuses from a stmt.
5335         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
5336         * tree-flow.h (struct dataflow_d): Delete.
5337         (immediate_use_iterator_d): New.  Immediate use iterator struct.
5338         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
5339         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
5340         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
5341         iteration.
5342         (struct stmt_ann_d): Remove dataflow_t from struct.
5343         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
5344         (if_convertible_phi_p): Use FAST immuse iterator.
5345         (if_convertible_loop_p): Don't call compute_immediate_uses.
5346         (replace_phi_with_cond_modify_expr): Call update_stmt.
5347         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
5348         update_stmt_if_modified.
5349         (rewrite_all_into_ssa): Initialize ssa operands.
5350         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
5351         compute_immediate_uses.
5352         * tree-optimize.c (execute_todo): Call verify_ssa whenever the
5353         ssa_property is available.
5354         (execute_one_pass):  Change parameters passed to execute_todo.
5355         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
5356         (remove_ssa_form): Call fini_ssa_operands.
5357         (insert_backedge_copies): Delete call to modify_stmt.
5358         * tree-phinodes.c (make_phi_node): Initialize use nodes.
5359         (release_phi_node): Delink any use nodes before releasing.
5360         (resize_phi_node): Relink any use nodes.
5361         (remove_phi_arg_num): Delink the use node.
5362         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
5363         (remove_all_phi_nodes_for): Release phi node first.
5364         * tree-pretty-print.c (dump_generic_node): Print stmt address.
5365         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
5366         (scalarize_use, scalarize_copy): Call update_stmt.
5367         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
5368         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
5369         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
5370         (ccp_initialize): Remove call to compute_immediate_uses.
5371         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
5372         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
5373         stmts.
5374         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
5375         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
5376         (eliminate_redundant_computations): Call mark_stmt_modified.
5377         (cprop_operand): Call mark_stmt_modified.
5378         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
5379         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
5380         (dse_optimize_stmt): Use new immuse interface.
5381         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
5382         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
5383         (substitute_single_use_vars): Use new immuse interface.
5384         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
5385         and compute_immediate_uses.
5386         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
5387         interface.
5388         (rewrite_mem_refs): Call update_stmt.
5389         (determine_lsm): Remove call to compute_imm_uses and free_df.
5390         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
5391         (try_unroll_loop_completely): Call update_stmt.
5392         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
5393         (rewrite_use_compare): Call update_stmt.
5394         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
5395         (rewrite_use) : Call update_stmt.
5396         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
5397         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
5398         update_stmt.
5399         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
5400         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
5401         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
5402         use nodes.
5403         (initialize_vuse_operand): New.  Initialize a vuse operand.
5404         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
5405         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
5406         (finalize_ssa_defs): Use stmt parameter.
5407         (correct_use_link): Ensure a use node is in the correct list, and has
5408         the correct stmt pointer.
5409         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
5410         finalize_ssa_v_must_defs): Also initialize use nodes.
5411         (finalize_ssa_stmt_operands): Pass extra stmt operands.
5412         (build_ssa_operands): Seperate parsing from final operand construction.
5413         (parse_ssa_operands): New.  Parse entry point for operand building.
5414         (swap_tree_operands): New.  Swap 2 tree operands.
5415         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
5416         operands.
5417         (get_expr_operands): Call swap_tree_operands when needed.
5418         (copy_virtual_operands): Use initialize routines for virtual use ops.
5419         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
5420         (verify_abort): New.  Issue imm_use error.
5421         (verify_imm_links): New Verify imm_use links for a var.
5422         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
5423         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
5424         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
5425         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
5426         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
5427         (NULL_USE_OPERAND_P) Define.
5428         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
5429         use node.
5430         (struct vuse_operand_type): New struct.
5431         (SET_USE): Call set_ssa_use_from_ptr.
5432         (USE_STMT): Define.
5433         (PHI_ARG_INDEX_FROM_USE): Define.
5434         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
5435         argument via SET_USE, not PHI_ARG_DEF_TREE.
5436         * tree-ssa-pre.c (eliminate): Call update_stmt.
5437         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
5438         call free_df.
5439         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
5440         (nearest_common_dominator_of_uses): Use imm_use iterator.
5441         (statement_sink_location): Use imm_use iterator and interface.
5442         (execute_sink_code): Don't call compute_immediate_uses or free-df.
5443         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
5444         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
5445         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
5446         (verify_ssa): Ensure no stmt is marked modify after optimization pass
5447         if new parameter is true.
5448         (init_tree_ssa): Don't initialize operand cache here.
5449         (delete_tree_ssa): Don't destroy operand cache here.
5450         (propagate_into_addr): Pass in a use pointer, return true if anything
5451         was changed.
5452         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
5453         (check_phi_redundancy): Use imm_use iterator.
5454         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
5455         free_df.
5456         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
5457         (release_ssa_name): Delink node and all elements in its imm_use list.
5458         * tree-tailcall.c (adjust_return_value): Call update_stmt.
5459         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
5460         * tree-vectorizer.c (need_imm_uses_for): Delete.
5461         (vectorize_loops): Dont call compute_immediate_uses or free_df.
5462         * tree.h (struct ssa_imm_use_d): Define.
5463         (SSA_NAME_IMM_USE_NODE): Define.
5464         (struct tree_ssa_name): Add imm_use node.
5465         (PHI_DF): Delete.
5466         (PHI_ARG_IMM_USE_NODE): Define.
5467         (struct phi_arg_d): Add imm_use node.
5468         (struct tree_phi_node): Remove struct dataflow_d element.
5469         (TDF_STMTADDR): Define.
5470
5471 2005-04-05  Dale Johannesen  <dalej@apple.com>
5472
5473         * doc/invoke.texi (Optimization Options):  Remove
5474         duplicate -fcse-follow-jumps.  Add -fweb.
5475         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
5476         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
5477
5478 2005-04-05  Per Bothner  <per@bothner.com>
5479
5480         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
5481         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
5482         (warn_uninit): Get EXPR_LOCUS from context now instead.
5483         This fixes a USE_MAPPED_LOCATION testsuite failure.
5484
5485         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
5486
5487 2005-04-05  Per Bothner  <per@bothner.com>
5488
5489         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
5490         of the artification 'return 0' in main() to BUILTINS_LOCATION.
5491         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
5492         before warning.
5493
5494 2004-04-05  Devang Patel  <dpatel@apple.com>
5495
5496         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
5497         (lhsr<mode>3): ... new name.
5498         (altivec_vsra<VI_char>): Rename to ..
5499         (ashr<mode>3): ... new name.
5500         * config/rs6000/rs6000.c (builtin_description): Rename shift
5501         operations.
5502
5503 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
5504
5505         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
5506         gen_lowpart_for_combine.
5507         * cse.c (gen_lowpart_if_possible): Move...
5508         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
5509         gen_lowpart_SUBREG.
5510         (gen_lowpart_no_emit_general): Use it.
5511
5512 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5513
5514         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
5515         overriding.
5516
5517 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
5518
5519         * system.h: Fix typo.
5520
5521 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
5522
5523         * config/bfin/bfin-modes.def: New file.
5524         * config/bfin/bfin-protos.h: New file.
5525         * config/bfin/bfin.c: New file.
5526         * config/bfin/bfin.h: New file.
5527         * config/bfin/bfin.md: New file.
5528         * config/bfin/bfin.opt: New file.
5529         * config/bfin/crti.s: New file.
5530         * config/bfin/crtn.s: New file.
5531         * config/bfin/elf.h: New file.
5532         * config/bfin/lib1funcs.asm: New file.
5533         * config/bfin/predicates.md: New file.
5534         * config/bfin/t-bfin: New file.
5535         * config/bfin/t-bfin-elf: New file.
5536         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
5537         Document new attributes.
5538         (interrupt, interrupt_handler, saveall): Update documentation for
5539         these attributes.
5540         * doc/install.texi (Specific): Add entry for the Blackfin.
5541         * doc/invoke.texi (Blackfin Options): New section.
5542         * doc/md.texi (Blackfin family): New section to document constraints.
5543         * config.gcc: Add bfin*-* and bfin*-elf configurations.
5544
5545 2005-04-05  Olivier Hainque  <hainque@adacore.com>
5546
5547         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
5548         match what the system unwinder expects.
5549         * config/mips/mips.c (mips_frame_set): If we're saving the return
5550         address register and the dwarf return address column number differs
5551         from the hard register number, adjust the note reg to refer to the
5552         former.
5553
5554 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
5555
5556         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
5557         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
5558         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
5559         (processor_type): New enum.
5560         (mn10300_processor): New variable.
5561         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
5562         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
5563         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
5564         (PROCESSOR_DEFAULT): New macro.
5565         * config/mn10300/mn10300.c (mn10300_processor): New variable.
5566         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
5567         (mn10300_handle_option, mn10300_override_options): New functions.
5568         * config/mn10300/mn10300.opt: New file.
5569
5570 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5571             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
5572
5573         PR tree-optimization/19903
5574         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
5575         that don't fit in their type after conversion.
5576
5577 2005-04-05  Uros Bizjak <uros@kss-loka.si>
5578
5579         PR target/20421
5580         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
5581         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
5582         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
5583         flag here. Implement using define_insn_and_split.
5584         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
5585         (frndintxf2_mask_pm_i387): New insn patterns.
5586         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
5587         Do not set ix86_optimize_mode_switching flag.
5588         (ceilsf2, ceildf2, ceilxf2): Same.
5589         (btruncsf2, btruncdf2, btruncxf2): Same.
5590         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
5591
5592 2005-04-05  Ian Lance Taylor  <ian@airs.com>
5593
5594         PR debug/9963
5595         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
5596         i386_pe_record_external_function.
5597         (i386_pe_record_external_function): Update declaration.
5598         * config/i386/winnt.c (struct extern_list): Add decl field.
5599         (i386_pe_record_external_function): Add decl parameter.
5600         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
5601         identifier.
5602         * config/i386/i386-protos.h (i386_pe_record_external_function):
5603         Update declaration.
5604
5605 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
5606
5607         * config/m68k/m68k-protos.h: Add a prototype for
5608         valid_dbcc_comparison_p_2.
5609         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
5610         extend_operator, const_uint32_operand, const_sint32_operand,
5611         general_src_operand, nonimmediate_src_operand,
5612         memory_src_operand, post_inc_operand, pre_dec_operand,
5613         pcrel_address): Move to predicates to predicates.md.
5614         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
5615         * config/m68k/m68k.md: Include predicates.md.
5616         * config/m68k/predicates.md: New.
5617
5618 2005-04-04  Roger Sayle  <roger@eyesopen.com>
5619
5620         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
5621
5622         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
5623
5624 2005-04-04  Ian Lance Taylor  <ian@airs.com>
5625
5626         * c-typeck.c (struct c_switch): Rename switch_stmt field to
5627         switch_expr.
5628         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
5629         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
5630         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
5631         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
5632         * c-common.c (c_do_switch_warnings_1): New static function broken
5633         out of c_do_switch_warnings.
5634         (c_do_switch_warnings): Call c_do_switch_warnings_1.
5635         (c_do_switch_expr_warnings): New function.
5636         * c-common.h (c_do_switch_expr_warnings): Declare.
5637
5638 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
5639             Daniel Jacobowitz  <dan@codesourcery.com>
5640
5641         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
5642         trapping divide.
5643         * rtlanal.c (may_trap_p): Same.
5644
5645 2005-04-04  Dale Johannesen  <dalej@apple.com>
5646
5647         * ChangeLog:  remove reference to ChangeLog.12.
5648
5649 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
5650
5651         CRIS epilogue as RTL.
5652         * config/cris/cris.md: Change all 0 in unspec 0 to
5653         CRIS_UNSPEC_PLT.
5654         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
5655         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
5656         patterns.
5657         ("return"): Change to define_expand.  Call cris_expand_return for
5658         actual expansion.
5659         ("*return_expanded"): New pattern.
5660         ("epilogue"): New define_expand.
5661         * config/cris/cris.h (PREDICATE_CODES): Add
5662         cris_load_multiple_op.
5663         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
5664         type.
5665         (enum cris_retinsn_type): New.
5666         (struct machine_function): New member return_type.
5667         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
5668         (cris_target_asm_function_epilogue): Remove, moving RTLified
5669         contents to...
5670         (cris_expand_epilogue): New function.
5671         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
5672         (cris_gen_movem_load, cris_load_multiple_op)
5673         (cris_return_address_on_stack_for_return, cris_expand_return): New
5674         functions.
5675         (cris_target_asm_function_prologue)
5676         (cris_initial_frame_pointer_offset): Call
5677         cris_reg_saved_in_regsave_area instead of complicated expression.
5678         Call cris_return_address_on_stack instead of an expression.
5679         (cris_print_operand) <case 'o', case 'O'>: New cases.
5680         (cris_return_address_on_stack): Change return-type to bool.
5681         (cris_simple_epilogue): Ditto.  Return false if registers are
5682         saved.
5683         * config/cris/cris-protos.h (cris_simple_epilogue)
5684         (cris_return_address_on_stack): Adjust prototype return type.
5685         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
5686         (cris_return_address_on_stack_for_return): New prototypes.
5687
5688 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
5689
5690         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
5691         gpr_or_int12_operand.
5692
5693         * config/frv/frv-protos.h: Add a prototype to
5694         frv_legitimate_memory_operand and frv_const_unspec_p.
5695         (frv_unspec): Move from frv.c.
5696         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
5697         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
5698         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
5699         gpr_or_fpr_operand, gpr_or_int12_operand,
5700         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
5701         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
5702         int6_operand, int5_operand, uint5_operand, uint4_operand,
5703         uint1_operand, int_2word_operand, uint16_operand,
5704         upper_int16_operand, integer_register_operand,
5705         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
5706         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
5707         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
5708         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
5709         move_destination_operand, movcc_fp_destination_operand,
5710         frv_function_symbol_referenced_p, move_source_operand,
5711         condexec_dest_operand, condexec_source_operand,
5712         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
5713         const_unspec_operand, gpr_or_memory_operand,
5714         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
5715         icc_operand, fcc_operand, cc_operand, icr_operand,
5716         fcr_operand, cr_operand, call_operand, sibcall_operand,
5717         symbolic_operand, relational_operator,
5718         integer_relational_operator, float_relational_operator,
5719         ccr_eqne_operator, minmax_operator,
5720         condexec_si_binary_operator, condexec_si_media_operator,
5721         condexec_si_divide_operator, condexec_si_unary_operator,
5722         condexec_sf_conv_operator, condexec_sf_add_operator,
5723         condexec_memory_operand, intop_compare_operator, acc_operand,
5724         even_acc_operand, quad_acc_operand, accg_operand: Move to
5725         predicates.md.
5726         * config/frv/frv.h (PREDICATE_CODES): Remove.
5727         * config/frv/frv.md: Include predicates.md.
5728         * config/frv/predicates.md: New.
5729
5730 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
5731
5732         PR target/19537
5733         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
5734         * tree-ssa-loop-ivopts.c: Include langhooks.h.
5735         (add_standard_iv_candidates_for_size): New function, extracting code
5736         from add_standard_iv_candidates and parameterizing it by type size.
5737         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
5738
5739 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
5740
5741         * system.h (GCOV_SIZE_TYPE): Unposion.
5742         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
5743         (GCOV_TYPE_SIZE): ...this new macro.
5744         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
5745         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
5746         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
5747         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
5748         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
5749         instead of unsigned_intSI_type_node.
5750         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
5751         (rtl_gen_one_value_profiler_no_edge_manipulation)
5752         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
5753         * value-prof.c: Include coverage.h.
5754
5755 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
5756             Diego Novillo <dnovillo@redhat.com>
5757
5758         Fix PR tree-optimization/20703
5759         Fix PR tree-optimization/20725
5760
5761         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
5762         (create_expression_by_pieces): Ditto.
5763         (valid_in_set): Ditto. Also handle tcc_declaration.
5764         (find_or_generate_expression): Handle comparison class.
5765         (insert_into_preds_of_block): Ditto.
5766         (insert_aux): Ditto.
5767         (create_value_expr_from): Handle comparison class, recursively
5768         handle reference nodes.
5769         (compute_avail): Handle comparison classes, rewrite a little cleaner.
5770         (execute_pre): Fix spacing.
5771         (do_fre): Renamed to execute_fre.
5772
5773 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5774
5775         * doc/invoke.texi (SPARC options): Document that
5776         -mlittle-endian is not supported on Linux either.
5777
5778 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5779
5780         PR target/4198
5781         PR target/12027
5782         * config.gcc (Obsolete configurations): Remove
5783         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
5784         (sparclite-*-coff*): Delete.
5785         (sparclite-*-elf*): Likewise.
5786         (sparc86x-*-elf*): Likewise.
5787         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
5788         * config/sparc/lite.h: Delete.
5789         * config/sparc/litecoff.h: Likewise.
5790         * config/sparc/liteelf.h: Likewise.
5791         * config/sparc/sp86x-elf.h: Likewise.
5792         * config/sparc/t-sparclite: Likewise.
5793         * config/sparc/t-sp86x: Likewise.
5794
5795 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
5796
5797         * config/s390/s390-protos.h: (s390_comparison,
5798         s390_alc_comparison, s390_slb_comparison, const0_operand,
5799         consttable_operand, larl_operand, s_operand,
5800         shift_count_operand, bras_sym_operand, load_multiple_operation,
5801         store_multiple_operation, s390_plus_operand): Remove prototypes.
5802         (s390_legitimate_address_without_index_p): New prototype.
5803         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
5804         to s390.h.
5805         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
5806         const0_operand, consttable_operand, larl_operand, s_operand,
5807         shift_count_operand, bras_sym_operand, load_multiple_operation,
5808         store_multiple_operation, s390_plus_operand): Move to
5809         predicates.md.
5810         (check_mode): Remove.
5811         (s390_branch_condition_mask): Remove 'static'. Move prototype to
5812         s390-protos.h.
5813         (s390_legitimate_address_without_index_p): New.
5814         * config/s390/s390.h (PREDICATE_CODES): Remove.
5815         * config/s390/s390.md: Include predicates.md.
5816         * config/s390/predicates.md: New.
5817
5818 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5819
5820         PR target/20446
5821         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
5822         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
5823         (NEED_INDICATE_EXEC_STACK): Define to 1.
5824         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
5825         (NEED_INDICATE_EXEC_STACK): Define to 1.
5826         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
5827         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
5828         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
5829         (pic_helper_emitted_p): New global.
5830         (emit_pic_helper): New function extracted from...
5831         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
5832         Do not call emit_pic_helper if delay_pic_helper is true.
5833         (sparc_expand_prologue): Pass 'false' to load_pic_register.
5834         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
5835         (sparc_file_end): New function.
5836
5837 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
5838
5839         * config/mcore/mcore-protos.h: Remove the prototypes for
5840         mcore_arith_reg_operand, mcore_general_movsrc_operand,
5841         mcore_general_movdst_operand, mcore_reload_operand,
5842         mcore_arith_J_operand, mcore_arith_K_operand,
5843         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
5844         mcore_arith_K_S_operand, mcore_arith_imm_operand,
5845         mcore_arith_any_imm_operand, mcore_arith_O_operand,
5846         mcore_literal_K_operand, mcore_addsub_operand,
5847         mcore_compare_operand, mcore_load_multiple_operation,
5848         mcore_store_multiple_operation, mcore_call_address_operand.
5849         Add a prototype for const_ok_for_mcore.
5850         * config/mcore/mcore.c (mcore_call_address_operand,
5851         mcore_general_movsrc_operand, mcore_general_movdst_operand,
5852         mcore_arith_reg_operand, mcore_reload_operand,
5853         mcore_arith_J_operand, mcore_arith_K_operand,
5854         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
5855         mcore_arith_M_operand, mcore_arith_imm_operand,
5856         mcore_arith_any_imm_operand, mcore_arith_O_operand,
5857         mcore_literal_K_operand, mcore_addsub_operand,
5858         mcore_compare_operand, mcore_load_multiple_operation,
5859         mcore_store_multiple_operation): Move to predicates.md.
5860         (const_ok_for_mcore): Export.
5861         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
5862         * config/mcore/mcore.md: Include predicates.md.
5863         * config/mcore/predicates.md: New.
5864
5865         * config/mcore/predicates.md: Fix a comment typo.
5866
5867 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
5868             Adrian Straetling  <straetling@de.ibm.com>
5869
5870         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
5871         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
5872         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
5873         attribute.
5874         ("imul"): Removed from "type" attribute.
5875         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
5876         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
5877         Changed type to imulsi.
5878         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
5879
5880 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
5881
5882         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
5883         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
5884         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
5885         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
5886         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
5887         (TARGET_SWITCHES, mcore_stack_increment_string)
5888         (TARGET_OPTIONS): Delete.
5889         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
5890         than *_BIT constants.
5891         (TARGET_8ALIGN): #undef old definition before redefining to 1.
5892         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
5893         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
5894         (mcore_override_options): Delete mcore_stack_increment code.
5895         Change use of M340_BIT to MASK_M340.
5896         * config/mcore/mcore.opt: New file.
5897
5898 2005-04-04  Ian Lance Taylor  <ian@airs.com>
5899
5900         * config/arm/arm.c (replace_symbols_in_block): Remove static
5901         function.
5902
5903 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
5904
5905         * config/fr30/fr30-protos.h: Remove the prototypes for
5906         stack_add_operand, add_immediate_operand,
5907         high_register_operand, low_register_operand, call_operand,
5908         di_operand, and nonimmediate_di_operand.
5909         * config/fr30/fr30.c (stack_add_operand,
5910         add_immediate_operand, high_register_operand,
5911         low_register_operand, call_operand, di_operand,
5912         nonimmediate_di_operand): Move to predicates.md.
5913         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
5914         * config/fr30/fr30.md: Include predicates.md.
5915         * config/fr30/predicates.md: New.
5916
5917         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
5918         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
5919         mcore_call_address_operand.
5920
5921         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
5922         general_movsrc_operand.
5923
5924 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
5925
5926         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
5927         after freeing.
5928
5929 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
5930
5931         PR target/14812
5932         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
5933         a negated value.
5934
5935 2005-04-04  Richard Henderson  <rth@redhat.com>
5936             Jakub Jelinek  <jakub@redhat.com>
5937
5938         PR rtl-optimization/16104
5939         * fold-const.c (fold_unary): Fix folding of vector conversions.
5940
5941 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
5942
5943         * config.gcc (xstormy16-*-elf): Set extra_options.
5944         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
5945         * config/stormy16/stormy16.opt: New file.
5946
5947 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
5948
5949         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
5950         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
5951         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
5952         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
5953         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
5954         (TARGET_UNIX_ASM): Delete.
5955         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
5956         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
5957         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
5958         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
5959         * config/pdp11/pdp11.opt: New file.
5960
5961 2005-04-03  Roger Sayle  <roger@eyesopen.com>
5962             Alexandre Oliva  <aoliva@redhat.com>
5963
5964         PR c++/19199
5965         * fold-const.c (non_lvalue): Split tests into...
5966         (maybe_lvalue_p): New function.
5967         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
5968         C++ front-end prior to lowering into gimple form.
5969
5970 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5971
5972         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
5973         BUILT_IN_STRNCASECMP): New.
5974         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
5975         and strndup.
5976
5977 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
5978
5979         PR target/14812
5980         * arm.md (addsi3_compare0_for_combiner): Delete.
5981         (addsi3_compare0_scratch_for_combiner): Delete.
5982         (cmpsi_neg_shiftsi): Delete.
5983         (compare_negsi_si): New pattern.
5984         (cmpsi_negshiftsi_si): New pattern.
5985         (negated_cbranchsi4): Restrict to equality_operator.
5986
5987         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
5988         template.
5989
5990 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
5991
5992         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
5993         Fix comment typos.
5994
5995         * doc/install.texi: Fix a typo.
5996
5997 2005-04-03  Steven Bosscher  <stevenb@suse.de>
5998
5999         PR middle-end/20648
6000         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
6001         a computed goto if the edge to the computed goto block has
6002         incoming abnormal edges.  Clarify how the function works.
6003
6004 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
6005
6006         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
6007         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
6008         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
6009         hash_scan_set, reg_set_between_after_reload_p,
6010         reg_used_between_after_reload_p, get_avail_load_store_reg,
6011         eliminate_partially_redundant_load): Likewise.
6012         * postreload.c (reload_cse_simplify_set,
6013         reload_combine_note_use): Likewise.
6014         * predict.c (predict_insn, expected_value_to_br_prob,
6015         propagate_freq, expensive_function_p): Likewise.
6016         * print-rtl.c (print_rtx): Likewise.
6017         * profile.c (instrument_edges, instrument_values,
6018         compute_branch_probabilities, branch_prob, union_groups,
6019         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
6020         * protoize.c (in_system_include_dir, file_could_be_converted,
6021         file_normally_convertible, gen_aux_info_file, seek_to_line,
6022         do_cleaning): Likewise.
6023         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
6024         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
6025         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
6026
6027 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
6028
6029         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
6030         * modulo-sched.c (undo_replace_buff_elem): New structure.
6031         (kernel_number_of_cycles, ps_unschedule_node,
6032         undo_generate_reg_moves,free_undo_replace_buff,
6033         undo_permute_partial_schedule,  loop_single_full_bb_p,
6034         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
6035         build_loops_structure, get_sched_window): New.
6036         (generate_reg_moves): Return undo_replace_buff_elem and other
6037         fixes.
6038         (generate_prolog_epilog): Remove old loop versioning.
6039         (sms_schedule): Use loop information and loop_version.
6040         (sms_schedule_by_order): Split part of it to get_sched_window.
6041         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
6042         cfg_layout_finalize and free_dominance_info before/after SMS.
6043
6044 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
6045
6046         * cfghooks.c (lv_flush_pending_stmts,
6047         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
6048         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
6049         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
6050         lv_add_condition_to_bb,
6051         lv_adjust_loop_header_phi, extract_cond_bb_edges,
6052         flush_pending_stmts): New in cfg_hooks structure.
6053         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
6054         extract_cond_bb_edges, lv_adjust_loop_header_phi,
6055         lv_add_condition_to_bb): New declarations.
6056         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
6057         bool.
6058         (loop_version): Declare.
6059         * cfgloopmanip.c (cfghooks.h): Include.
6060         (duplicate_loop_to_header_edge): Change return type to bool.
6061         (loop_version, lv_adjust_loop_entry_edge): Move here.
6062         * cfgrtl.c (cfgloop.h): Include.
6063         (rtl_verify_flow_info_1): Fix.
6064         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
6065         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
6066         initialization.
6067         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
6068         tree_lv_add_condition_to_bb): New.
6069         (tree_cfg_hooks): Add new hooks to initialization.
6070         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
6071         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
6072
6073 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
6074
6075         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
6076         xstormy16_below100_or_register,
6077         xstormy16_splittable_below100_or_register, and
6078         nonimmediate_nonstack_operand.
6079
6080         * config/stormy16/stormy16-protos.h: Remove the prototypes for
6081         xstormy16_ineqsi_operator, equality_operator,
6082         inequality_operator, shift_operator,
6083         xstormy16_below100_operand, xstormy16_below100_or_register,
6084         xstormy16_splittable_below100_or_register,
6085         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
6086         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
6087         equality_operator, inequality_operator,
6088         xstormy16_below100_operand, xstormy16_below100_or_register,
6089         xstormy16_splittable_below100_or_register,
6090         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
6091         nonimmediate_nonstack_operand, shift_operator): Move to
6092         predicates.md.
6093         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
6094         * config/stormy16/stormy16.md: Include predicates.md.
6095         * config/stormy16/predicates.md: New.
6096
6097 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
6098
6099         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
6100         small_int, large_int, reg_or_0_operand, simple_memory_operand,
6101         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
6102         move_operand, power_of_2_operand): Move to predicates.md.
6103         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
6104         PREDICATE_CODE): Remove.
6105         * config/iq2000/iq2000.md: Include predicates.md.
6106         * config/iq2000/predicates.md: New.
6107
6108 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
6109
6110         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
6111         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
6112         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
6113         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
6114         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
6115         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
6116         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
6117         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
6118         (TARGET_M68HC11): Delete.
6119         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
6120         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
6121         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
6122         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
6123         (nb_soft_regs): Delete.
6124         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
6125         (m68hc11_override_options): Remove the code that caters for MASK_M6811
6126         and MASK_M6812 being set simultaneously.  Change the code that sets
6127         the default m68hc11_soft_reg_count to use integers instead of strings.
6128         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
6129         m68hc11_soft_reg_count (which now has an int type) as the number
6130         of soft registers.
6131         * config/m68hc11/m68hc11.opt: New file.
6132
6133 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
6134
6135         * config/fr30/fr30.h (PREDICATE_CODES): Remove
6136         fp_displacement_operand, sp_displacement_operand.
6137
6138         * config/m68hc11/m68hc11-protos.h: Add a prototype for
6139         m68hcc_auto_inc_p.
6140         Remove the prototypes for tst_operand, cmp_operand,
6141         stack_register_operand, d_register_operand,
6142         hard_addr_reg_operand, splitable_operand,
6143         m68hc11_logical_operator, m68hc11_arith_operator,
6144         m68hc11_non_shift_operator, m68hc11_shift_operator,
6145         m68hc11_unary_operator, m68hc11_eq_compare_operator,
6146         non_push_operand, hard_reg_operand, and
6147         reg_or_some_mem_operand.
6148         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
6149         extern.
6150         (tst_operand, cmp_operand, non_push_operand,
6151         splitable_operand, reg_or_some_mem_operand,
6152         stack_register_operand, d_register_operand,
6153         hard_addr_reg_operand, hard_reg_operand,
6154         m68hc11_eq_compare_operator, m68hc11_logical_operator,
6155         m68hc11_arith_operator, m68hc11_non_shift_operator,
6156         m68hc11_shift_operator, m68hc11_unary_operator): Move to
6157         predicates.md.
6158         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
6159         * config/m68hc11/m68hc11.md: Include predicates.md.
6160         * config/m68hc11/predicates.md: New.
6161
6162 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
6163
6164         PR debug/19345
6165         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
6166         change checked in along with 2005-03-03's patch for debug/20253.
6167         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
6168         (remap_decl): Insert type decl in map earlier.
6169
6170 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
6171
6172         PR tree-optimization/20640
6173         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
6174         post-dominator if it has phi nodes.
6175         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
6176         before dead statements.
6177
6178 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
6179
6180         PR middle-end/20491
6181         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
6182
6183 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
6184
6185         PR rtl-optimization/20290
6186         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
6187         in every iteration if the entry point is the exit test.
6188
6189 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
6190
6191         * config/cris/cris.md (attribute "length"): Define.
6192
6193 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
6194
6195         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
6196         (word_offset_memref_operand): New.
6197         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
6198         (indexed_or_indirect_operand): Delete.
6199         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
6200         (indexed_or_indirect_operand): Delete.
6201
6202         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
6203
6204         PR 20650
6205         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
6206         a register.
6207
6208         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
6209         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
6210
6211 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6212
6213         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
6214
6215 2005-04-01  Ian Lance Taylor  <ian@airs.com>
6216
6217         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
6218         (rus, prus): Remove static variables.
6219         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
6220         (process_command): Permit report_times and use_pipes together.
6221
6222 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
6223
6224         * c-decl.c (validate_proto_after_old_defn): Look at
6225         TYPE_MAIN_VARIANT of argument types.
6226
6227 2005-04-01  Paul Brook  <paul@codesourcery.com>
6228
6229         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
6230         (arm_output_function_epilogue): Allow call_via_SP.
6231         (thumb_call_via_reg, arm_file_end): Ditto.
6232         * config/arm/arm.h (struct machine_function): Include space for SP.
6233         (thumb_call_via_label): Update declaration.
6234
6235 2005-04-01  Ian Lance Taylor  <ian@airs.com>
6236
6237         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
6238         doing a peephole optimization, once again put any notes in the
6239         proper position.
6240
6241 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
6242
6243         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
6244
6245 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
6246
6247         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
6248         (block_alloc, find_free_reg): Likewise.
6249         * loop-doloop.c (doloop_modify): Likewise.
6250         * loop-invariant.c (record_use): Likewise.
6251         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
6252         get_iv_value, canon_condition, eliminate_implied_condition,
6253         eliminate_implied_condition, simplify_using_initial_values,
6254         shorten_into_mode, canonicalize_iv_subregs,
6255         iv_number_of_iterations): Likewise.
6256         * loop-unroll.c (expand_var_during_unrolling): Likewise.
6257         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
6258         unswitch_loop): Likewise.
6259         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
6260         move_movables, replace_call_address, find_and_verify_loops,
6261         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
6262         record_giv, final_giv_value, general_induction_var,
6263         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
6264         loop_giv_dump): Likewise.
6265
6266         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
6267         GCOV_CHECK_WRITING): Remove.
6268         (gcov_position, gcov_rewrite): Use gcc_assert.
6269         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
6270         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
6271         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
6272         gcc_assert.
6273
6274 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
6275
6276         * tree-inline.c: Fix a typo.
6277
6278 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
6279
6280         * configure.ac (enable-checking): Explicitly set all variables for
6281         collective switch values.  Alphabetize variables. Rename
6282         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
6283         synonym for 'no'.
6284         * doc/install.texi (enable-checking): Update documentation.
6285         * configure: Rebuilt.
6286
6287 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
6288
6289         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
6290         possible.
6291
6292 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
6293
6294         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
6295         Also reject cases where this pattern will cause load delay stalls
6296         unless optimizing for size and it will produce a shorter sequence.
6297         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
6298         variants to avoid pre-adjusting the base when possible.
6299
6300 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
6301
6302         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
6303         the frame and argument pointers.
6304         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
6305         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
6306         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
6307         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
6308         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
6309         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
6310
6311 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
6312
6313         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
6314         with entry for selectany attribute.
6315         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
6316         Declare.
6317         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
6318         (i386_pe_asm_named_section): Handle sections generated by
6319         selectany attribute.
6320         * doc/extend.texi (selectany): Document attribute.
6321
6322 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
6323             Jan Hubicka  <jh@suse.cz>
6324
6325         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
6326         to fix addresses involving EBP and ESP.
6327         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
6328         for SUBREGed registers.
6329         (legitimate_address_p): Accept SUBREGed registers.
6330
6331 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
6332
6333         PR c++/19406
6334         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
6335         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
6336         for FIELD_DECLs.
6337
6338 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
6339
6340         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
6341
6342 2005-04-01  James E Wilson  <wilson@specifixinc.com>
6343
6344         PR c++/20505
6345         * dwarf2out.c (rtl_for_decl_init): New function.
6346         (rtl_for_decl_location): Extracted from here.
6347         (tree_add_const_value_attribute): Call rtl_for_decl_init and
6348         add_const_value_attribute.  Delete initializer_constant_valid_p call.
6349
6350 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
6351
6352         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
6353         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
6354         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
6355         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
6356         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
6357         config/i386/i386.md, config/rs6000/predicates.md,
6358         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
6359         config/s390/s390.c, config/stormy16/stormy16.c,
6360         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
6361         typos.
6362
6363 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
6364
6365         PR c/17855
6366         * gimplify.c (gimplify_expr): Create a temporary for lvalue
6367         COND_EXPR and CALL_EXPR.
6368
6369 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
6370
6371         PR target/20632
6372         * genautomata.c (first_cycle_unit_presence): Check all alternative
6373         states for unit presence.
6374
6375         * doc/md.texi: Remove remark about impossibility to query unit
6376         presence in non nondeterministic automaton state.
6377
6378         * config/ia64/ia64.c (get_template): Change order of unit querying.
6379
6380 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
6381
6382         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
6383         obsolete comment.
6384
6385 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
6386
6387         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
6388         flag for edges outside any loops.
6389
6390 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
6391
6392         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
6393
6394 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
6395
6396         * tree-ssa-alias.c: Follow spelling conventions.
6397         * doc/tree-ssa.texi: Fix a typo.
6398
6399 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
6400
6401         * postreload-gcse.c: Include target.h.
6402         (gcse_after_reload_main): Return early if we cannot modify jumps.
6403         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
6404
6405 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
6406
6407         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
6408         expensive operations.
6409
6410 2005-03-31  Ian Lance Taylor  <ian@airs.com>
6411
6412         * collect2.c (lderrout): New variable.
6413         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
6414         if it is set, to stderr.
6415         (handler): Unlink lderrout if it is set.
6416         (dump_file): Add "to" parameter.  Change all callers.
6417         (main): Initialize lderrout.
6418         (collect_execute): Add errname parameter.  Change all callers.
6419         Rename redir parameter to outname.  Never pass
6420         PEX_STDERR_TO_STDOUT to pex_run.
6421         * collect2.h (collect_execute, dump_file): Update declarations.
6422         * tlink.c (tlink_execute): Add errname parameter.  Change all
6423         callers.
6424         (do_tlink): Check lderrout as well as ldout.
6425
6426 2005-03-31  Caroline Tice  <ctice@apple.com>
6427
6428         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
6429         (bb-reorder.o): Add errors.h to list of requirements.
6430         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
6431         profiledbootstrap flags.
6432         * bb-reorder.c (errors.h): Add new include.
6433         (struct bbro_basic_block_data_def): Add new field, in_trace.
6434         (add_unlikely_executed_notes):  Remove function.
6435         (mark_bb_for_unlikely_executed_section): Remove function.
6436         (insert_section_boundary_note): New function.
6437         (verify_hot_cold_block_grouping): New function.
6438         (push_to_next_round_p): Remove variables and tests that push all
6439         cold blocks to last round.
6440         (find_traces): Remove code that added extra round of trace finding
6441         when doing partitioning.
6442         (find_traces_1_round) :  Remove variable last_round;  add code to
6443         update new struct field, in_trace; correct trace_length where it was
6444         incorrect before (after call to copy_bb); change code that pushed all
6445         cold blocks to last round. Instead verify that all blocks going into
6446         a trace belong in the same partition.
6447         (connect_traces): Modify to connect the traces in two passes, if the
6448         function contains both hot and cold blocks.  The first pass connects
6449         all the traces for blocks in the partition that the first block in
6450         the function belongs to; the second pass connnects all the traces
6451         containing blocks that belong in the other partition.
6452         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
6453         code that automatically put the first block in a function into the
6454         hot partition if the function had any hot blocks.
6455         (fix_crossing_unconditional_branches): Check number of succ edges
6456         before attempting to get one.
6457         (fix_edges_for_rarely_executed_code):  Update comment describing
6458         function.
6459         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
6460         remove call to add_unlikely_executed_notes; add call to
6461         verify_hot_cold_block_grouping.
6462         (duplicate_computed_gotos): Don't change computed goto if it's a
6463         crossing edge.
6464         (partition_hot_cold_basic_blocks):  Update function comment.
6465         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
6466         condition.
6467         (try_forward_edges): Likewise.
6468         (merge_blocks_move_predecessor_nojumps): Likewise.
6469         (merge_blocks_move_successor_nojumps): Likewise.
6470         (merge_blocks_move): Likewise.
6471         (try_crossjump_bb): Likewise.
6472         * cfglayout.c (update_unlikely_executed_notes): Remove function.
6473         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
6474         notes to cold bb's; remove call to update_unlikely_executed_notes.
6475         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6476         NOTE_INSN_SWITCH_TEXT_SECTIONS.
6477         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
6478         function declaration.
6479         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
6480         from consideration.
6481         (rtl_can_merge_blocks): Remove redundancy from condition.
6482         (try_redirect_by_replacing_jump): Likewise.
6483         (force_nonfallthru_and_redirect): Remove code for adding
6484         UNLIKELY_EXECUTED_CODE notes to cold bb's.
6485         (commit_one_edge_insertion): Likewise.
6486         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
6487         * dbxout.c (FORCE_TEXT): Replace function_section with
6488         current_function_section.
6489         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
6490         function, switch_text_section.
6491         (struct xcoff_debug): Likewise.
6492         (dbxout_function_end): Add code to put out label diffs for both
6493         hot and cold sections.
6494         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
6495         for new debug_hooks funciton, switch_text_section..
6496         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
6497         switch_text_section.
6498         * dwarf2out.c (struct dw_fde_struct):  Add five new fields:
6499         dw_fde_hot_section_label, dw_fde_hot_section_end_label,
6500         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
6501         dw_fde_switched_sections.
6502         (output_call_frame_info):  Add test to see if function switches text
6503         sections in the middle; if so, use appropriate extra hot and cold
6504         section labels to compute size deltas for the hot and cold sections.
6505         (dwarf2out_begin_prologue): Add code to initialize new fields in
6506         dw_fde_struct.
6507         (dwarf2out_switch_text_section): New function (invoked through
6508         debug_hook); updates new fields in dw_fde_struct appropriately and
6509         increments separate_line_info_table_in_use.
6510         (dwarf2_debug_hooks): Initialize switch_text_section function to be
6511         dwarf2out_switch_text_section.
6512         (struct var_loc_node): Add new field, section_label.
6513         (output_aranges): Add code to check whether in hot or cold section and
6514         use the appropriate label in calculating deltas.
6515         (output_ranges): Likewise.
6516         (output_line_info): Add code to check which section we're in and
6517         use appropriate hot/cold label.
6518         (add_location_or_constant_value_attribute): Likewise.
6519         (gen_subprogam_die): Modify arange attributes to use correct labels.
6520         (dwarf2out_begin_block): Change call to function_section into call to
6521         current_function_section.
6522         (dwarf2out_end_block): Likewise.
6523         (dwarf2out_source_line): Likewise.
6524         (dwarf2out_var_location): Add code to check whether in hot or cold
6525         section and use the appropriate label.
6526         * except.c (output_function_exception_table): Change call to
6527         function_section into call to current_function_section.
6528         * final.c (profile_function): Likewise.
6529         (scan_ahead_for_unlikely_executed_note): Remove function.
6530         (final_scan_insn):  Remove calls to
6531         scan_ahead_for_unlikely_executed_note, and related code for switching
6532         to cold section, except for the single time
6533         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
6534         debug_hooks->switch_text_sections; replace appropriate calls to
6535         function_section with calls to current_function_section.
6536         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
6537         test_bb to condition.
6538         (find_if_case_2): Likewise.
6539         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6540         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
6541         * opts.c (decode_options): Change warning about hot/cold partitioning
6542         with exceptionss to inform (so as not to cause bootstrap failures);
6543         remove warning about partitioning with DWARF debug info.
6544         * output.h (current_function_section): Add new function decl.
6545         (insert_section_boundary_note): Likewise.
6546         (enum in_section): Move this declaration here from varasm.c.
6547         (unlikely_section_label): Likewise.
6548         (unlikely_text_section_name): Likewise.
6549         (last_text_section_name): New global variable.
6550         (last_text_section): Likewise.
6551         (hot_section_label): Likewise.
6552         (hot_section_end_label): Likewise.
6553         (cold_section_end_label): Likewise.
6554         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
6555         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
6556         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
6557         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
6558         insn from consideration.
6559         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
6560         switch_text_section.
6561         * varasm.c (basic-block.h): Add new include.
6562         (unlikely_section_label_printed): Remove global variable.
6563         (unlikely_section_label): Make global variable not be static any more.
6564         (unlikely_text_section_name): Likewise.
6565         (hot_section_end_label): New global variable (not static)
6566         (first_function_block_is_cold): Likewise.
6567         (hot_section_label): Likewise.
6568         (cold_section_end_label): Likewise..
6569         (last_text_section): New global variable, not static.
6570         (last_text_section_name): New global variable, not static.
6571         (initialize_cold_section_name): New function.
6572         (enum in_section): Move declaration to output.h.
6573         (text_section): Update last_text_section.
6574         (unlikely_text_section): Replace code to determine cold section name
6575         with call to initialize_cold_section_name; Add code to update
6576         last_text_section; remove code for printing out label.
6577         (named_section_real): Add code to update last_text_section and
6578         last_text_section_name as appropriate.
6579         (function_section): Change test for 'unlikely' to depend on
6580         first_function_block_is_cold (moved old test to
6581         current_function_section).
6582         (current_function_section): New function.
6583         (assemble_start_function): Move code that frees
6584         unlikely_text_section_name; initialize hot_section_end_label;
6585         print hot and cold section labels at the start of the function;
6586         set first_function_block_is_cold, if appropriate; initialize l
6587         ast_text_section; add call to insert_section_boundary_note.
6588         (assemble_end_function):  Add code to write out hot and cold section
6589         end labels.
6590         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
6591         switch_text_section.
6592         * config/darwin.c (machopic_select_section): Replace incorrect
6593         function in base_funs; update reloc for cold sections if necessary.
6594         * config/darwin.h (SECTION_FUNCTION):  Add code to update
6595         last_text_section if appropriate.
6596         (text_unlikely_section): Remove.
6597         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
6598         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
6599         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
6600         partitioning for this architecture.
6601
6602 2005-03-31  Olivier Hainque  <hainque@adacore.com>
6603
6604         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
6605         defined and non-zero.
6606
6607 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6608
6609         PR c++/18644
6610         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
6611         semantics.
6612
6613 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
6614
6615         PR target/20611
6616         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
6617         label operand.  Remove (use (unspec..)).  Don't emit a label on
6618         the offset word.
6619         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
6620         generate inline label for load_toc_v4_PIC_1b.
6621         (rs6000_emit_load_toc_table): Likewise.
6622
6623 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
6624
6625         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
6626         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
6627
6628 2005-03-29  Devang Patel  <dpatel@apple.com>
6629
6630         * tree-sra.c (decide_block_copy): Disable scalarization of
6631         sub-elements.
6632
6633 2005-03-30  Stuart Hastings  <stuart@apple.com>
6634             Dale Johannesen  <dalej@apple.com>
6635
6636         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
6637         * print-tree.c (print_node):  Add case STATEMENT_LIST.
6638
6639 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
6640
6641         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
6642         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
6643         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
6644         is given with "powerpc64*" or "all", or when --with-cpu chooses
6645         a 64-bit cpu.
6646
6647 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
6648
6649         PR debug/20268
6650         * dwarf2out.c (add_high_low_attributes): New function, extracted from
6651         gen_lexical_block_die.
6652         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
6653
6654 2005-03-31  Jan Hubicka  <jh@suse.cz>
6655
6656         2004-11-02  Jan Hubicka  <jh@suse.cz>
6657
6658         * cgraph.c (cgraph_varpool_node_name): New function.
6659         (dump_cgraph_varpool_node): New function.
6660         (dump_varpool): New function.
6661         * cgraphunit.c (cgraph_optimize): Dump varpool.
6662
6663         2004-10-16  Jan Hubicka  <jh@suse.cz>
6664
6665         * cgraph.c (decide_is_variable_needed): New function.
6666         (cgraph_varpool_finalize_decl): Use it.
6667         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
6668         unit-at-a-time.
6669         * final.c (output_addr_const): Do not call mark_referenced.
6670         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
6671         always go via cgraph.
6672         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
6673         (check_global_declarations): Ifdef out code clearing DECL_RTL.
6674         * tree-optimize.c (execute_inline): Mark functions called.
6675         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
6676
6677         2004-10-11  Jan Hubicka  <jh@suse.cz>
6678
6679         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
6680         (cgraph_varpool_last_needed_node): New static variable.
6681         (enqueue_needed_varpool_node): Break out from ...; add items to the
6682         end of queue; update first pointers.
6683         (cgraph_varpool_mark_needed_node): ... here.
6684         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
6685         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
6686         * cgraph.h (cgraph_varpool_node): Add analyzed field.
6687         (cgraph_varpool_first_unanalyzed_node): Declare.
6688         * cgraphunit.c: Include output.h.
6689         (cgraph_varpool_analyze_pending_decls): New function.
6690         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
6691         for errors, analyze pending decls.
6692         (cgraph_finalize_compilation_unit): Only analyze decls.
6693         (cgraph_optimize): Assemble the decls after expanding.
6694
6695 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
6696
6697         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
6698         subvars get marked properly in tags for grouping.
6699         (add_pointed_to_var): Mark only actual pointed to
6700         variables/subvars in addresses needed.
6701         (create_overlap_variables_for): Clear call clobbered on original
6702         variable.
6703         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
6704         addresable vars with subvars into list.
6705         * tree-ssa.c (verify_ssa_name): Verify original is not used where
6706         subvar should be.
6707
6708 2005-03-30  Richard Henderson  <rth@redhat.com>
6709
6710         * cgraph.h (struct cgraph_node): Add alias.
6711         * varasm.c (assemble_alias): Set it.
6712         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
6713         avoid calling cgraph_expand_function.
6714
6715 2005-03-30  Tom Tromey  <tromey@redhat.com>
6716
6717         * tree.def (FILE_TYPE): Removed.
6718         * typeclass.h (enum type_class): Removed file_type_class.
6719         * dwarf2out.c (is_base_type): Updated.
6720         (gen_type_die): Likewise.
6721         * dbxout.c (dbxout_type): Updated.
6722         * builtins.c (type_to_class): Updated.
6723         * tree.c (type_contains_placeholder_1): Updated.
6724         * config/sparc/sparc.c (sparc_type_code): Updated.
6725         * config/ia64/ia64.c (hfa_element_mode): Updated.
6726         * expr.c (count_type_elements): Updated.
6727         * stor-layout.c (layout_type): Updated.
6728         * tree-inline.c (remap_type): Updated.
6729         * tree-pretty-print.c (dump_generic_node): Updated.
6730
6731 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
6732
6733         * builtins.c (expand_builtin_powi): Fix mode of
6734         2nd argument to match int.
6735         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
6736         2nd argument type to int.
6737         * libgcc2.c: Change prototype of __powi* functions to use
6738         int.
6739
6740 2005-03-30  Dale Johannesen  <dalej@apple.com>
6741
6742         PR middle-end/19225
6743         * calls.c (expand_call):  Flush pending deferrals before
6744         throwing call.
6745
6746 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
6747
6748         PR c/772
6749         PR c/17913
6750         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
6751         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
6752         c_label_context, label_context_stack): New.
6753         * c-decl.c (define_label): Check for jumps into statement
6754         expressions.  Add label to list of defined labels.
6755         (start_function): Push context on label_context_stack.
6756         (finish_function): Pop context from label_context_stack.
6757         * c-typeck.c (label_context_stack): New.
6758         (c_finish_goto_label): Check for jumps into statement
6759         expressions.  Add label to list of jumped to labels.
6760         (struct c_switch): Add blocked_stmt_expr.
6761         (c_start_case): Initialize it.
6762         (do_case): Check it.
6763         (c_finish_case): Verify !blocked_stmt_expr.
6764         (c_begin_stmt_expr):  Push context on label_context_stack.
6765         Increment blocked_stmt_expr.  Mark labels jumped to from outside
6766         as undefinable.
6767         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
6768         defined in the statement expression and no longer jumpable to.
6769         Mark labels jumped to from just outside the statement expression
6770         as again definable.  Pop context from label_context_stack.
6771         * doc/extend.texi (Statement Exprs): Update.
6772
6773 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
6774
6775         PR c/20368
6776         * c-decl.c (start_function): Check for old_decl being
6777         error_mark_node.
6778
6779 2005-03-30  Ian Lance Taylor  <ian@airs.com>
6780
6781         * final.c (final): Remove prescan parameter.  Change all callers.
6782         (final_scan_insn): Remove prescan parameter.  Change all callers.
6783
6784 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
6785
6786         * tree-vectorizer.c: Fix comment typos.
6787
6788 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
6789
6790         * tree-scalar-evolution.c (instantiate_parameters_1): Return
6791         as soon as a chrec_dont_know is detected.
6792
6793 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
6794
6795         Merge from csl-arm-branch.
6796         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
6797
6798         * tlink.c (recompile_files): Do not assume that "rename" can
6799         overwrite an existing file.
6800
6801 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
6802
6803         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
6804         * gcc/configure: Regenerate.
6805
6806 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
6807
6808         * doc/install.texi: Update binutils requirement for powerpc*-linux.
6809
6810         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
6811
6812         * calls.c (struct arg_data): Update "partial" comment.
6813         (load_register_parameters): Update "nregs" comment.
6814
6815 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
6816
6817         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
6818         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
6819         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
6820         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
6821         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
6822         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
6823         than target_flags & 0.
6824         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
6825         (iq2000_arch, iq2000_parse_cpu): Delete.
6826         (TARGET_HANDLE_OPTION): Override default.
6827         (iq2000_handle_option): New function.
6828         (override_options): Remove -march= and -mcpu= handling.
6829         * config/iq2000/iq2000.opt: New file.
6830
6831 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
6832
6833         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
6834         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
6835         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
6836         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
6837         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
6838         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
6839         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
6840         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
6841         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
6842         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
6843         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
6844         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
6845         (c4x_rpts_cycles_string, c4x_cpu_version_string)
6846         (TARGET_OPTIONS): Delete.
6847         (c4x_rpts_cycles, c4x_cpu_version): Declare.
6848         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
6849         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
6850         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
6851         (c4x_cpu_version_string): Delete.
6852         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6853         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
6854         equivalent -mcpu= option.
6855         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
6856         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
6857         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
6858         or clearing the appropriate MASK_* bit.
6859         (c4x_file_start): Use c4x_cpu_version.
6860         * config/c4x/c4x.opt: New file.
6861
6862 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
6863
6864         * doc/options.texi: Document the new MaskExists flag.
6865         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
6866         if the option has the MaskExists flag.
6867
6868 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
6869
6870         * opt-functions.awk (flag_set_p, test_flag): New functions.
6871         (switch_flags): Use them.
6872         * opth-gen.awk: Use flag_set_p to check for flags.
6873         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
6874
6875 2005-03-30  Ian Lance Taylor  <ian@airs.com>
6876
6877         * config.host (i[34567]86-*-mingw32*): Don't set
6878         host_can_use_collect2 to no.
6879
6880 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
6881
6882         PR target/20203
6883         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
6884         Remove convert_memory_address call duplicating that in memory_address.
6885
6886 2005-03-29  Richard Henderson  <rth@redhat.com>
6887
6888         PR c/20519
6889         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
6890         (build_compound_literal): Likewise.  Propagate decl type into the
6891         initializer.
6892         (finish_decl): Likewise.  Use new return value from complete_array_type
6893         for zero sized arrays.
6894         (complete_array_type): Move ...
6895         * c-common.c (complete_array_type): ... here.  Change first argument
6896         to pointer-to-type-node.  Consistently use sizetype for the index
6897         except for zero sized arrays.  Detect zero sized arrays for pedantic
6898         mode diagnostics.  Create a new type node instead of modifying the
6899         old node in place.
6900         * c-tree.h (complete_array_type): Move decl ...
6901         * c-common.h (complete_array_type): ... here.
6902
6903 2005-03-29  Richard Henderson  <rth@redhat.com>
6904
6905         PR tree-opt/19108
6906         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
6907
6908 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
6909
6910         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
6911         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
6912         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
6913         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
6914
6915 2005-03-29  Eric Christopher  <echristo@redhat.com>
6916
6917         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
6918         truthvalue conversion removal.
6919
6920 2005-03-29  Ian Lance Taylor  <ian@airs.com>
6921
6922         PR bootstrap/14316
6923         * collect2.c: Never include <vfork.h>.
6924         (VFORK_STRING, vfork): Don't define.
6925         (pid): Remove global variable.
6926         (handler): Call raise instead of kill (getpid(), ...).
6927         (collect_wait): Add pex parameter.  Change all callers.  Use
6928         pex_get_status rather than pwait.
6929         (do_wait): Add pex parameter.  Change all callers.
6930         (collect_execute): Return struct pex_obj * rather than void.  Use
6931         pex routines rather than pexecute.
6932         (fork_execute): Get pex_obj from collect_execute, and pass it to
6933         do_wait.
6934         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
6935         Only declare quit_handler if SIGQUIT is defined.
6936         (scan_libraries): Likewise.
6937         * collect2.h (collect_execute): Update declaration.
6938         (collect_wait): Update declaration.
6939         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
6940         pass it to collect_wait.
6941
6942 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
6943
6944         PR c/20672
6945         * c-parser.c (c_parser_compound_statement_nostart): Give error
6946         message for EOF instead of just setting parser->error.
6947
6948 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
6949
6950         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
6951         (slpeel_update_phi_nodes_for_guard1): New function.
6952         (slpeel_update_phi_nodes_for_guard2): New function.
6953         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
6954         of slpeel_update_phi_nodes_for_guard.
6955         (vectorize_loops): Remove call to loop_closed_rewrite.
6956         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
6957         assertion.
6958
6959 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
6960
6961         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
6962         (TARGET_LITTLE_ENDIAN): New macro.
6963         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
6964         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
6965         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
6966         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
6967         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
6968         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
6969         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
6970         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
6971         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
6972         (TARGET_OPTIONS): Delete.
6973         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
6974         (CACHE_FLUSH_TRAP): Turn into an integer.
6975         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
6976         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
6977         -mflush-trap is in use.
6978         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
6979         (m32r_cache_flush_trap_string): Delete.
6980         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
6981         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
6982         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
6983         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6984         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
6985         -mmodel= and -msdata= handling from...
6986         (m32r_init): ...here.
6987         * config/m32r/m32r.opt: New file.
6988
6989 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
6990
6991         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
6992         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
6993         * tree-vect-analyze.c (vect_object_analysis): additional parm
6994         pass back a "struct ptr_info_def *" with the points-to info.
6995         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
6996         statement using info returned from vect_object_analysis.
6997         * tree-vect-transform.c (update_vuses_to_preheader): New function.
6998         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
6999         for virtual uses and defs when creating a replacement vector
7000         reference.  Call duplicate_ssa_name_ptr_info to define points-to
7001         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
7002         (vectorizable_store): copy_virtual_operands and update
7003         definition statements.
7004         (vectorizable_load): copy_virtual_operands.  Remove call to
7005         mark_call_clobbered_vars_to_rename for call to "const" builtin.
7006         * tree-vectorizer.c (vectorize_loops): Remove calls to
7007         rewrite_into_ssa and bitmap_clear (vars_to_rename).
7008         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
7009         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
7010         define macro STMT_VINFO_PTR_INFO for use in accessing.
7011         * tree.h add export of duplicate_ssa_name_ptr_info.
7012         * rs6000.c (altivec_init_builtins): Declare builtin function
7013         __builtin_altivec_mask_for_load to be "const".
7014
7015 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
7016
7017         PR middle-end/20622
7018         * cgraph.h (struct cgraph_varpool_node): Add alias field.
7019         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
7020         assemble_variable on aliases.
7021         * varasm.c (assemble_alias): Set node->alias.
7022         * toplev.c (wrapup_global_declarations): Don't call
7023         rest_of_decl_compilation on aliases again.
7024
7025 2005-03-29  Paul Brook  <paul@codesourcery.com>
7026
7027         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
7028         * config/arm/arm.c (arm_dbx_register_number): New function.
7029         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
7030
7031 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
7032
7033         PR middle-end/20263
7034         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
7035         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
7036
7037 2005-03-29  Dale Johannesen <dalej@apple.com>
7038
7039         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
7040         $(TREE_H) and $(COVERAGE_H).
7041         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
7042         * opts.c (common_handle_option): Enable tree-based value transforms.
7043         * toplev.c (process_options): Ditto.
7044         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
7045         refers to references to this type.
7046         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
7047         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
7048         for may_be_more, may_be_less.
7049         (rtl_gen_pow2_profiler): Adjust.
7050         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
7051         (rtl_gen_one_value_profiler): Adjust.
7052         (rtl_gen_const_delta_profiler): Adjust.
7053         * tree-profile.c (tree_gen_interval_profiler): Implement.
7054         (tree_gen_pow2_profiler): Ditto.
7055         (tree_gen_one_value_profiler): Ditto.
7056         (tree_profiling): New.
7057         (pass_tree_profile): Reference it.
7058         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
7059         tree.h, gcov-io.h.
7060         (insn_divmod_values_to_profile): Rename to
7061         rtl_divmod_values_to_profile. Adjust.
7062         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
7063         (insn_prefetch_values_to_profile): Adjust.
7064         (rtl_value_profile_transformations): Adjust.
7065         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
7066         (gen_mod_pow2): Rename to rtl_mod_pow2.
7067         (gen_mod_subtract): Rename to rtl_mod_subtract.
7068         (divmod_fixed_value_transform): Rename to
7069         rtl_divmod_fixed_value_transform.
7070         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
7071         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
7072         (rtl_find_values_to_profile): Adjust.
7073         (tree_value_profile_transformations): Implement.
7074         (tree_divmod_values_to_profile): New.
7075         (tree_values_to_profile): New.
7076         (tree_divmod_fixed_value): New.
7077         (tree_mod_pow2): New.
7078         (tree_mod_subtract): New.
7079         (tree_divmod_fixed_value_transform): New.
7080         (tree_mod_pow2_value_transform): New.
7081         (tree_mod_subtract_transform): New.
7082         (tree_find_values_to_profile): Implement.
7083         * profile.c (instrument_values):  Free histograms.
7084         (compute_value_histograms): Adjust. Implement tree version.
7085
7086 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
7087
7088         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
7089         * config/i386/i386.c (output_fix_trunc): Add new round_mode
7090         variable.  Output "fldcw" depending on round_mode.
7091         * config/i386/i386.md (UNSPEC_FIST): New.
7092         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
7093         New isns patterns to implement lrint and llrint built-ins as x87
7094         intrinsic function.
7095         (fistdi2, fist<mode>2 splitters): New splitters.
7096         (lrint<mode>2): New expanders.
7097
7098 2005-03-28  Ian Lance Taylor  <ian@airs.com>
7099
7100         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
7101         0 when calling final_scan_insn.
7102
7103 2005-03-28  Jan Hubicka  <jh@suse.cz>
7104
7105         PR middle-end/20635
7106         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
7107         as needed.
7108
7109         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
7110         types where possible.
7111
7112 2005-03-26  Per Bothner  <per@bothner.com>
7113
7114         Make -f[no-]show-column also control non-cpp diagnostics.
7115         * c.opt (fshow-column): Move option from here ...
7116         * common.opt (fshow-column): ... to here.
7117         * diagnostic.c (diagnostic_build_prefix): Only print column number
7118         if flag_show_column.
7119
7120 2005-03-27  Steven Bosscher  <stevenb@suse.de>
7121
7122         * vax-protos.h (vax_output_int_move, vax_output_int_add,
7123         vax_output_conditional_branch): New prototypes.
7124         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
7125         extracted from vax.md mov and add patterns.
7126         (vax_output_conditional_branch): New function to output conditional
7127         branch instructions.
7128         * vax.md: Use mode macros for arithmetic and mov patterns.
7129         Use code macros for the jump patterns.
7130
7131 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
7132
7133         * Makefile.in (libbackend.o): Depend on version files;
7134         add custom generation command.
7135
7136 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
7137
7138         PR target/20636
7139         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
7140         sure that we have a REG before getting its REGNO.
7141
7142 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7143
7144         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
7145         * builtins.def (BUILT_IN_STRNDUP): New.
7146
7147 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
7148
7149         PR tree-optimization/20470
7150         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
7151         ABS(x-y).
7152
7153 2005-03-25  Mike Stump  <mrs@apple.com>
7154
7155         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
7156         sized objects.
7157
7158 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
7159
7160         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
7161         Use our own structure definitions.
7162
7163         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
7164         (fix_truncdfsi2): Allow registers or memory as destination.
7165         When TARGET_PPC_GFXOPT, generate simplified pattern.
7166         (fix_truncdfsi2_internal): Use define_insn_and_split.
7167         (fix_truncdfsi2_internal_gfxopt): New.
7168         (fctiwz): Don't confuse register allocation by giving it no choices.
7169         (stfiwx): New.
7170         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
7171         (EXTRA_MEMORY_CONSTRAINT): Likewise.
7172         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
7173         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
7174
7175 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7176
7177         * dominance.c (free_dominance_info): Speed up by freeing et
7178         data structures without maintaining other nodes.
7179         * et-forest.c (et_free_tree_force): New.
7180         * et-forest.h: Add a prototype for et_free_tree_force.
7181
7182         * tree.c (get_set_constructor_bits,
7183         get_set_constructor_bytes): Remove.
7184         * tree.h: Remove the corresponding prototypes.
7185
7186 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
7187
7188         PR target/15491
7189         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
7190         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
7191         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
7192         PRE_DEC, NEG and NOT.
7193
7194 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7195
7196         * fold-const.c: Convert uses of fold (build (...)) to
7197         fold_buildN.
7198
7199 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
7200
7201         PR rtl-optimization/20249
7202         * cse.c (insert_regs): Do not record equivalence of registers in
7203         different modes.
7204
7205 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7206
7207         * emit-rtl.c (reverse_comparison): Remove.
7208         * rtl.h: Remove the corresponding prototype.
7209
7210 2005-03-24  James E Wilson  <wilson@specifixinc.com>
7211
7212         * doc/install.texi (--enable-altivec): Delete docs.
7213
7214 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
7215
7216         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
7217         SFmode and DFmode before reload when
7218         flag_unsafe_math_optimizations not enabled.
7219
7220 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
7221
7222         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
7223
7224         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
7225         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
7226
7227 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7228
7229         * configure.ac (enable-checking): Add 'runtime' option.
7230         * doc/install.texi (enable-checking): Document 'runtime' checking.
7231         * tsystem.h (gcc_assert, gcc_unreachable): Define.
7232         * config.in: Regenerated.
7233         * configure: Regenerated.
7234
7235 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
7236
7237         * optabs.h (enum optab_index): Remove OTI_llrint.
7238         (llrint_optab): Remove macro.
7239         * optabs.c (init_optabs): Remove llrint_optab initialization.
7240         * genopinit.c (optabs): Remove llrint_optab implementation.
7241         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
7242         using lrint_optab.
7243
7244 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
7245
7246         PR rtl-optimization/20532
7247         * simplify-rtx.c (simplify_binary_operation_1): Protect from
7248         overflow when adding coefficients for PLUS or MINUS.
7249         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
7250         two as multiplier.
7251
7252 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
7253
7254         * langhooks.h (truthvalue_conversion): Remove.
7255         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
7256         LANG_HOOKS_TRUTHVALUE_CONVERSION.
7257         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
7258         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
7259         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
7260
7261 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7262
7263         * params.def: Fix a typo.
7264         * config/mips/mips.c: Follow the spelling convensions.
7265         * doc/invoke.texi: Fix typos.
7266
7267 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
7268
7269         Fix PR tree-optimization/20601
7270
7271         * tree-ssa-pre.c (insert_aux): Add missing condition to
7272         constification.
7273
7274 2005-03-23  Ian Lance Taylor  <ian@airs.com>
7275
7276         * final.c (final_scan_insn): Don't remove no-op instructions.
7277         * reload1.c (reload): Remove simple no-op instructions even when
7278         not optimizing.
7279
7280 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
7281
7282         PR tree-optimization/20501
7283         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
7284         reporting that peeling for alignment is applied moved to...
7285         * (vect_analyze_data_refs_alignment): Here.
7286
7287 2005-03-23  Ian Lance Taylor  <ian@airs.com>
7288
7289         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
7290
7291 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7292
7293         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
7294         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
7295
7296 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
7297
7298         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
7299         imply that this is called once, independent of asms in code.
7300         Adjust to now being pased output and input lists.  Mention helper
7301         function decl_overlaps_hard_reg_set_p.
7302         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
7303         hook_tree_tree_identity and to take three trees, returning third.
7304         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
7305         prototype.
7306         * stmt.c: include hard-reg-set.h before tree.h.
7307         (decl_overlaps_hard_reg_set_p): New function, broken out from...
7308         (decl_conflicts_with_clobbers_p): Call
7309         decl_overlaps_hard_reg_set_p.
7310         (expand_asm_operands): Pass output and input lists in call to
7311         targetm.md_asm_clobbers.
7312         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
7313         hook_tree_tree_tree_tree_3rd_identity.
7314         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
7315         parameters.
7316         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
7317         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
7318         parameters, first two unused.
7319         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
7320         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
7321         in constraint letters and MOF is not mentioned as a asm-declared
7322         register in neither of the input and output lists.
7323
7324 2005-03-23  DJ Delorie  <dj@redhat.com>
7325
7326         * optabs.c (expand_binop): Make sure the first subword's result
7327         gets stored.
7328
7329 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
7330
7331         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
7332         Call c_common_truthvalue_conversion rather than
7333         lang_hooks.truthvalue_conversion.
7334         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
7335         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
7336         c-typeck.c.
7337         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
7338         c_common_truthvalue_conversion.
7339         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
7340         c_parser_conditional_expression, c_parser_binary_expression): Call
7341         c_objc_common_truthvalue_conversion.
7342         * c-typeck.c (build_unary_op): Call
7343         c_objc_common_truthvalue_conversion.
7344         (build_conditional_expr): Do not call
7345         lang_hooks.truthvalue_conversion.
7346         (build_binary_op): Call c_common_truthvalue_conversion.
7347         (c_objc_common_truthvalue_conversion): Moved from
7348         c-objc-common.c.  Call default_function_array_conversion instead
7349         of default_conversion.
7350
7351 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
7352
7353         * c-common.h (default_conversion): Remove.
7354         (perform_integral_promotions): Add.
7355         * c-tree.h (default_conversion): Add.
7356         * c-typeck.c (perform_integral_promotions): New, split out from
7357         default_conversion.
7358         * c-common.c (check_case_value): Use perform_integral_promotions,
7359         not default_conversion.
7360         (c_add_case_label): Don't continue processing case label after
7361         found to be pointer.
7362
7363 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
7364
7365         * gcc.c (do_spec_1): Do not add a -L path for a directory in
7366         the prefix list if we have already added a multilib directory
7367         based on that path.
7368         (main): Do not add MD_EXEC_PREFIX to the list of directories to
7369         search with -L.
7370
7371 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
7372
7373         * reload1.c (indirect_symref_ok, reload_obstack): Make them
7374         static.
7375         * reload.h: Remove the prototype for indirect_symref_ok.
7376
7377         * reload1.c (indirect_symref_ok): Make it global.
7378         * reload.h: Add a prototype for indirect_symref_ok.
7379
7380 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
7381
7382         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
7383         ashlhi3 expander.
7384
7385 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
7386
7387         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
7388
7389 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
7390
7391         * c-opts.c (c_common_parse_file): Only start/end main source file
7392         if debug hooks says the writer wants it.
7393         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
7394         member.
7395         (xcoff_debug_hooks): Ditto.
7396         * debug.c (do_nothing_hooks): Ditto.
7397         * debug.h (gcc_debug_hooks): Ditto.
7398         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
7399         * sdbout.c (sdb_debug_hooks): Ditto.
7400         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
7401
7402 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
7403
7404         * doc/extend.texi: Deprecate C++ min/max operators.
7405
7406 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
7407
7408         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
7409         artificial original candidates.
7410
7411 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
7412             Jan Hubicka  <jh@suse.cz>
7413             Steven Bosscher <stevenb@suse.de>
7414
7415         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
7416         call cost based on argument sizes.
7417         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
7418         inlining.
7419         * params.def: (max-inline-inssn-single): Set to 450.
7420         (max-inline-insns-auto): Set to 90.
7421         (max-inline-insns-recursive): Set to 450
7422         (max-inline-insns-recursive-auto): Set to 450.
7423         (large-function-insns): Set to 2700.
7424         (inline-call-cost): New parameter.
7425         * tree-inline.c (estimate_move_cost): New function.
7426         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
7427         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
7428         based on arguments.
7429         * tree-inline.h (estimate_move_cost): Declare.
7430         * invoke.texi: (max-inline-inssn-single): Change default to 450.
7431         (max-inline-insns-auto): Change default to 90.
7432         (max-inline-insns-recursive): Change default to 450
7433         (max-inline-insns-recursive-auto): Change default to 450.
7434         (large-function-insns): Change default to 2700.
7435         (inline-call-cost): Document new parameter.
7436
7437 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
7438
7439         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
7440         (TARGET_DEFAULT): Delete.
7441         * config/i860/i860.opt: New file.
7442
7443 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
7444
7445         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
7446         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
7447         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
7448         (frv_sched_lookahead): Delete.
7449         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
7450         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
7451         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
7452         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
7453         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
7454         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
7455         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
7456         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
7457         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
7458         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
7459         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
7460         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
7461         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
7462         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
7463         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
7464         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
7465         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
7466         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
7467         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
7468         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
7469         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
7470         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
7471         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
7472         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
7473         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
7474         (frv_sched_lookahead): Delete.
7475         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
7476         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7477         (frv_handle_option): New function.  Move -mcpu= handling from...
7478         (frv_override_options): ...here.  Remove handling of other
7479         TARGET_OPTIONS.
7480         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
7481         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
7482         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
7483         and TARGET_NO_MULTI_CE.
7484         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
7485         !TARGET_VLIW_BRANCH.
7486         * config/frv/frv.opt: New file.
7487
7488 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
7489
7490         * fold-const.c (fold_ternary): Take decomposed arguments of
7491         CALL_EXPR.
7492         (fold): Update a call to fold_ternary.
7493
7494         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
7495         * tree.h: Add corresponding prototypes.
7496
7497 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
7498
7499         PR target/20561
7500         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
7501         between jump table and its label.
7502         * final.c (shorten_branches): Handle notes in between ADDR_VEC
7503         resp. ADDR_DIFF_VEC and the label preceeding it.
7504         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
7505         is emitted in the right section.
7506
7507 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
7508
7509         * fold-const.c (fold_unary, fold_binary): Update comments
7510         about arguments.
7511
7512 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
7513
7514         PR rtl-optimization/20527
7515         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
7516         REG_INC note, test that the register also isn't mentioned in PRED
7517         or SUCC.
7518
7519 2005-03-22  Ben Elliston  <bje@au.ibm.com>
7520
7521         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
7522         and definition.
7523
7524 2005-03-21  Mike Stump  <mrs@apple.com>
7525
7526         * varasm.c (default_assemble_visibility): Remove extra ().
7527
7528 2005-03-21  Roger Sayle  <roger@eyesopen.com>
7529
7530         PR middle-end/20557
7531         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
7532         to determine whether a block can be duplicated, rather than test
7533         whether the block contains noncopyable insns ourselves.
7534
7535 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7536
7537         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
7538         predicates.
7539
7540 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
7541
7542         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
7543
7544 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
7545
7546         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
7547         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
7548         * config/fr30/fr30.opt: New file.
7549
7550 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
7551
7552         Fix PR tree-optimization/20542
7553
7554         * tree-flow-inline.h (overlap_subvar): Move to here.
7555         * tree-ssa-operands.c: From here.
7556         * tree-flow.h (overlap_subvar): Declare.
7557         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
7558         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
7559         for variables with subvars.
7560
7561 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
7562
7563         PR middle-end/20177
7564         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
7565         * modulo-sched.c (const_iteration_count): Return on NULL
7566         pre-header.
7567         (print_node_sched_params): Return on NULL dump_file.
7568         (generate_reg_moves): Handle reg-anti dependencies and disregard
7569         closing branch when generating register moves.
7570         (sms_schedule): Mark the SMSed block dirty.
7571         * passes.c (rest_of_handle_sms): Call update_life_info for all
7572         basic-blocks.
7573         * testsuite/gcc.dg/20050321-1.c: New test.
7574
7575 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
7576
7577         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
7578         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
7579         movqi_internal): Likewise.
7580
7581 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
7582
7583         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
7584         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
7585         xtensa_b4const): Delete prototypes.
7586         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
7587         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
7588         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
7589         xtensa_extra_constraint): New prototypes.
7590         (add_operand, arith_operand, nonimmed_operand, mem_operand,
7591         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
7592         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
7593         move_operand, const_float_1_operand, fpmem_offset_operand,
7594         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
7595         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
7596         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
7597         argument type to HOST_WIDE_INT.
7598         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
7599         xtensa_mask_immediate): Likewise.
7600         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
7601         Likewise.  Also make these functions static.
7602         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
7603         (xtensa_const_ok_for_letter_p): New.
7604         (add_operand, arith_operand, nonimmed_operand, mem_operand,
7605         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
7606         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
7607         move_operand, const_float_1_operand, fpmem_offset_operand,
7608         branch_operator, ubranch_operator, boolean_operator): Move to
7609         predicates.md.
7610         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
7611         (xtensa_mem_offset): Change return type to bool.
7612         (xtensa_extra_constraint): New.
7613         (gen_int_relational): Update type of const_range_p function pointer.
7614         Use xtensa_b4const_or_zero.
7615         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
7616         xtensa_const_ok_for_letter_p.  Update comments.
7617         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
7618         (PREDICATE_CODES): Delete.
7619         * config/xtensa/xtensa.md: Include predicates.md.
7620         * config/xtensa/predicates.md: New file.
7621
7622 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7623
7624         * config/v850/v850-protos.h: Remove the prototypes for
7625         reg_or_int9_operand, reg_or_const_operand,
7626         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
7627         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
7628         movsi_source_operand, power_of_two_operand,
7629         not_power_of_two_operand, special_symbolref_operand,
7630         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
7631         register_is_ok_for_epilogue.
7632         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
7633         reg_or_int9_operand, reg_or_const_operand,
7634         call_address_operand, special_symbolref_operand,
7635         movsi_source_operand, power_of_two_operand,
7636         not_power_of_two_operand, register_is_ok_for_epilogue,
7637         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
7638         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
7639         predicates.md.
7640         * config/v850/v850.h (PREDICATE_CODES): Remove.
7641         * config/v850/v850.md: Include predicates.md.
7642         * config/v850/predicates.md: New.
7643
7644 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
7645
7646         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
7647         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
7648         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
7649         (itoolsdir, itoolsdatadir): Move definition above new first use.
7650         (install-itoolsdirs): New rule.
7651         (install-mkheaders): Depend on install-itoolsdirs, not
7652         install-include-dir.
7653
7654 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7655
7656         * tree-into-ssa.c: Remove obsolete comments.
7657
7658 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
7659
7660         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
7661         unrolling if -fpeel-loops is specified, too.
7662         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
7663         Remove superfluous check for flag_unroll_loops.
7664
7665 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
7666
7667         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
7668         (lrint_optab, llrint_optab): Define corresponding macros.
7669         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
7670         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
7671         pattern and llrint_optab using llrintdi2 patterns.
7672         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
7673         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
7674         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
7675         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
7676         flag_unsafe_math_optimizations is set.
7677
7678 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
7679
7680         * combine.c (combine_simplify_rtx, simplify_if_then_else,
7681         simplify_logical, if_then_else_cond, known_cond,
7682         simplify_comparison): Adjust calls to reverse_comparison.
7683         Don't use combine_reversed_comparison_code).
7684         (combine_reversed_comparison_code): Remove.
7685         (reversed_comparison): Using reversed_comparison_code, move it...
7686         * jump.c (reversed_comparison): ... here.
7687         * rtl.h (reversed_comparison): Add prototype.
7688
7689 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7690
7691         * builtins.c (fold_builtin): Take decomposed arguments of
7692         CALL_EXPR.
7693         * fold-const.c (fold_ternary): Update a call to fold_builtin.
7694         * gimplify.c (gimplify_call_expr): Likewise.
7695         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
7696         * tree.h: Update the prototype of fold_builtin.
7697
7698 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
7699
7700         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
7701         * rtlhooks.c (gen_lowpart_no_emit_general): New.
7702         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
7703         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
7704         * simplify-rtx.c (simplify_binary_operation_1): Use it.
7705
7706 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7707
7708         * builtins.c (fold_builtin_1): Take decomposed arguments of
7709         CALL_EXPR.
7710         (fold_builtin): Update a call to fold_builtin_1.
7711
7712 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
7713
7714         PR other/20564
7715         * gcov.c (output_lines): Only output function block summary when
7716         outputting branch information.
7717         * doc/gcov.texi: Document format of preamble and additional block
7718         information lines.
7719
7720 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
7721
7722         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
7723         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
7724         the defaults false if BITS_PER_UNIT != 8.
7725         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
7726         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
7727         than BITS_PER_UNIT != 8.
7728         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
7729         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
7730         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
7731         #undefs.
7732         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
7733         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
7734
7735 2005-03-20  Roger Sayle  <roger@eyesopen.com>
7736
7737         PR middle-end/20539
7738         * fold-const.c (fold_binary): Fix type mismatch between
7739         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
7740         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
7741         for non-truth-valued expressions.
7742
7743         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
7744         and FUNCTION_DECL in the main switch.
7745         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
7746         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
7747         we also need to convert their operands to match.
7748         <TRUTH_NOT_EXPR>: Likewise.
7749
7750 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
7751
7752         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
7753         diagnostic without checking whether an lvalue.
7754         * c-common.h (lvalue_p): Remove.
7755         (enum lvalue_use): Update comment.
7756         (lvalue_or_else): Replace by lvalue_error.
7757         * c-typeck.c (lvalue_p): Make static.
7758         (lvalue_or_else): New.  Call lvalue_error.
7759
7760 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
7761
7762         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
7763         (function_arg_advance): Use rs6000_parm_start.
7764         (function_arg, rs6000_arg_partial_bytes): Likewise.
7765
7766 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
7767
7768         * c-common.c (check_case_value): Adjust comment about stripping
7769         NOPs.
7770         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
7771         * c-typeck.c (default_conversion, convert_arguments,
7772         build_modify_expr, convert_for_assignment, store_init_value,
7773         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
7774         manually.  Remove inaccurate comments.
7775
7776 2005-03-20  Roger Sayle  <roger@eyesopen.com>
7777             Joseph S. Myers  <joseph@codesourcery.com>
7778
7779         * varasm.c (do_assemble_alias): Restore comment describing function.
7780         Annotate the target parameter as potentially unused.
7781
7782 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7783
7784         PR target/18551
7785         * config/avr/avr.c (avr_output_function_prologue): Do not use
7786         current_function_name() in a label, use a local label instead.
7787
7788 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
7789
7790         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
7791         flag_finite_math_only, not flag_unsafe_math_optimizations.
7792
7793 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7794
7795         * builtins.c (fold_builtin_1): Update a call to
7796         targetm.fold_builtin.
7797         * hooks.c (hook_tree_tree_bool_null): Rename to
7798         hook_tree_tree_tree_bool_null.  Take one more argument of type
7799         tree.
7800         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
7801         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
7802         hook_tree_tree_tree_bool_null.
7803         * target.h (gcc_target): Update the prototype of fold_builtin.
7804         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
7805         arguments of CALL_EXPR.
7806         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
7807         new prototype.
7808
7809 2005-03-20  Jan Hubicka  <jh@suse.cz>
7810
7811         * cgraph.h (cgraph_node): Add prev_clone pointer.
7812         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
7813         (cgraph_clone_node): Produce doubly linked chain.
7814
7815 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
7816
7817         * c-common.c (handle_aligned_attribute, check_function_sentinel,
7818         get_nonnull_operand, handle_sentinel_attribute,
7819         check_function_arguments_recurse): Do not strip NOPS from
7820         INTEGER_CSTs.
7821         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
7822         Likewise.
7823         * c-format.c (get_constant): Likewise.
7824         * c-parser.c (c_parser_postfix_expression): Likewise.
7825         * c-typeck.c (set_init_index): Likewise.
7826         (convert_arguments): Don't check for NOP_EXPR containing integer
7827         constant.
7828
7829 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7830
7831         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
7832         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
7833         Take decomposed arguments of CALL_EXPR.
7834         (fold_builtin_1): Update calls to the functions mentioned
7835         above.
7836
7837 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
7838
7839         * c-decl.c (check_bitfield_type_and_width): Require bit-field
7840         width to have integer type.
7841         (build_enumerator): Require enumerator value to have integer type.
7842
7843 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
7844
7845         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
7846         to __builtin_inff.
7847
7848 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
7849
7850         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
7851         std=iso9899:199x): Correct descriptions.
7852
7853 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
7854
7855         * config.gcc: Consistently use solaris2.1[0-9]* instead of
7856         solaris2.1[0-9].
7857
7858 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7859
7860         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
7861         of CALL_EXPR.
7862         (expand_builtin_memcpy, fold_builtin_1): Update calls to
7863         fold_builtin_memcpy.
7864
7865         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
7866         arguments of CALL_EXPR.
7867         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
7868         fold_builtin_found, fold_builtin_1): Update calls to
7869         fold_trunc_transparent_mathfn.
7870
7871 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7872
7873         PR middle-end/20493
7874         * fold-const.c (fold_widened_comparison): Don't optimize casts of
7875         function pointers on targets that require function pointer
7876         canonicalization.
7877         (fold_sign_changed_comparison): Likewise.
7878
7879 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
7880
7881         * combine.c (try_combine): When changing the mode of a hard reg, make
7882         sure that doing so is valid.
7883
7884 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
7885
7886         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
7887         (TARGET_HANDLE_OPTION): Override default.
7888         (avr_handle_option): New function.
7889         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
7890         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
7891         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
7892         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
7893         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
7894         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
7895         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
7896         (TARGET_OPTIONS): Delete.
7897         * config/avr/avr.opt: New file.
7898
7899 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7900
7901         * config/m32r/m32r-protos.h: Remove the prototypes for
7902         call_address_operand, symbolic_operand, seth_add3_operand,
7903         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
7904         reg_or_uint16_operand, reg_or_cmp_int16_operand,
7905         two_insn_const_operand, move_src_operand,
7906         move_double_src_operand, move_dest_operand,
7907         eqne_comparison_operator, signed_comparison_operator,
7908         large_insn_p, conditional_move_operand, carry_compare_operand,
7909         m32r_block_immediate_operand, extend_operand,
7910         reg_or_eq_int16_operand, int8_operand, and
7911         reg_or_zero_operand.
7912         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
7913         seth_add3_operand, int8_operand, cmp_int16_operand,
7914         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
7915         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
7916         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
7917         move_double_src_operand, move_dest_operand,
7918         eqne_comparison_operator, signed_comparison_operator,
7919         extend_operand, small_insn_p, large_insn_p,
7920         conditional_move_operand, carry_compare_operand,
7921         m32r_block_immediate_operand): Move to predicates.md.
7922         (MAX_MOVE_BYTES): Move to m32r.h.
7923         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
7924         * config/m32r/m32r.md: Include predicates.md.
7925         * config/m32r/predicates.md: New.
7926
7927 2005-03-18  James E Wilson  <wilson@specifixinc.com>
7928
7929         PR c++/19769
7930         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
7931         origin.
7932
7933 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7934
7935         * config/mn10300/mn10300-protos.h: Remove the prototypes for
7936         call_address_operand, const_8bit_operand.
7937         * config/mn10300/mn10300.c (call_address_operand,
7938         const_8bit_operand, const_1f_operand): Move to predicates.md.
7939         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
7940         * config/mn10300/mn10300.md: Include predicates.md.
7941         * config/mn10300/predicates.md: New.
7942
7943 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
7944
7945         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
7946         declarations in diagnostics and %E for identifiers, not %s.
7947
7948 2005-03-18  Jan Hubicka  <jh@suse.cz>
7949             Dale Johannesen  <dalej@apple.com>
7950
7951         * basic-block.h (scale_bbs_frequencies_int,
7952         scale_bbs_frequencies_gcov_type): Declare.
7953         * cfg.c (RDIV): New macro.
7954         (update_bb_frequency_for_threading): Fix.
7955         * basic-block.h (scale_bbs_frequencies_int,
7956         scale_bbs_frequencies_gcov_type): New.
7957         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
7958         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
7959         scale_bbs_frequencies_int.
7960         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
7961
7962 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7963
7964         * config/m32r/m32r-protos.h: Remove the prototypes for
7965         call_address_operand, symbolic_operand, seth_add3_operand,
7966         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
7967         reg_or_uint16_operand, reg_or_cmp_int16_operand,
7968         two_insn_const_operand, move_src_operand,
7969         move_double_src_operand, move_dest_operand,
7970         eqne_comparison_operator, signed_comparison_operator,
7971         large_insn_p, conditional_move_operand, carry_compare_operand,
7972         m32r_block_immediate_operand, extend_operand,
7973         reg_or_eq_int16_operand, int8_operand, and
7974         reg_or_zero_operand.
7975         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
7976         seth_add3_operand, int8_operand, cmp_int16_operand,
7977         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
7978         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
7979         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
7980         move_double_src_operand, move_dest_operand,
7981         eqne_comparison_operator, signed_comparison_operator,
7982         extend_operand, small_insn_p, large_insn_p,
7983         conditional_move_operand, carry_compare_operand,
7984         m32r_block_immediate_operand): Move to predicates.md.
7985         (MAX_MOVE_BYTES): Move to m32r.h.
7986         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
7987         * config/m32r/m32r.md: Include predicates.md.
7988         * config/m32r/predicates.md: New.
7989
7990         * config/pa/pa-protos.h: Add prototypes for magic_milli and
7991         shadd_constant_p.
7992         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
7993         symbolic_operand, symbolic_memory_operand,
7994         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
7995         indexed_memory_operand, move_dest_operand, move_src_operand,
7996         prefetch_cc_operand, prefetch_nocc_operand,
7997         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
7998         arith_operand, arith11_operand, pre_cint_operand,
7999         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
8000         ireg_operand, int5_operand, uint5_operand, int11_operand,
8001         uint32_operand, arith5_operand, and_operand, ior_operand,
8002         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
8003         pc_or_label_operand, div_operand, plus_xor_ior_operator,
8004         shadd_operand, movb_comparison_operator,
8005         cmpib_comparison_operator): Move to predicates.md.
8006         (magic_milli, shadd_constant_p): Make it extern.
8007         * config/pa/pa.h (PREDICATE_CODES): Remove.
8008         * config/pa/pa.md: Include predicates.md.
8009         * config/pa/predicates.md: New.
8010
8011         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
8012         predicate.
8013
8014 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8015
8016         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
8017         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
8018         config/alpha/freebsd.h, config/alpha/linux.h,
8019         config/alpha/netbsd.h, config/alpha/osf5.h,
8020         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
8021         config/h8300/h8300-protos.h, config/h8300/h8300.c,
8022         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
8023         doc/cppopts.texi: Update copyright.
8024
8025 2005-03-18  Jan Hubicka  <jh@suse.cz>
8026
8027         PR middle-end/20225
8028         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
8029         too late.
8030         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
8031         called too late.
8032
8033 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8034
8035         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
8036         VEC_safe_push.
8037
8038 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
8039
8040         * combine.c (gen_binary): Remove.
8041         (known_cond, simplify_shift_const, find_split_point,
8042         combine_simplify_rtx, simplify_if_then_else, simplify_set,
8043         simplify_logical, expand_field_assignment, extract_left_shift,
8044         force_to_mode, if_then_else_cond, apply_distributive_law,
8045         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
8046         simplify_comparison, reversed_comparison): Replace with
8047         simplify_gen_binary, simplify_gen_relational or
8048         distribute_and_simplify_rtx.
8049         (distribute_and_simplify_rtx): New function.
8050
8051 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
8052             Paolo Bonzini  <gcc.gnu.org>
8053
8054         * calls.c (setjmp_call_p, special_function_p): Update comments
8055         at the head of the functions.
8056
8057 2005-03-18  Jan Hubicka  <jh@suse.cz>
8058
8059         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
8060
8061         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
8062         function body should be released; do not proactively release function
8063         bodies in non-unit-at-a-time mode.
8064
8065 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
8066
8067         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
8068         mno-fp-ret-in-387 multilib variants.
8069
8070 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
8071
8072         * common.opt (m): Remove.
8073         * opts.c (handle_option): Pass 'm' options to set_target_switch if
8074         table lookup fails.
8075         (common_handle_option): Remove OPT_m case.
8076
8077 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8078
8079         * builtins.c (fold_builtin_bitop): Take decomposed arguments
8080         of CALL_EXPR.
8081         (fold_builtin_1): Update a call to fold_builtin_bitop.
8082
8083         * builtins.c (fold_builtin_signbit): Take decomposed arguments
8084         of CALL_EXPR.
8085         (fold_builtin_1): Update a call to fold_builtin_signbit.
8086
8087 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
8088
8089         PR tree-optimization/20474
8090         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
8091         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
8092
8093 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8094
8095         * config/h8300/h8300-protos.h: Remove prototypes for
8096         general_operand_src, general_operand_dst, single_one_operand,
8097         single_zero_operand, call_insn_operand,
8098         two_insn_adds_subs_operand, small_call_insn_operand,
8099         jump_address_operand, bit_operand, bit_memory_operand,
8100         stack_pointer_operand, const_int_gt_2_operand,
8101         const_int_ge_8_operand, const_int_qi_operand,
8102         const_int_hi_operand, incdec_operand, bit_operator,
8103         nshift_operator, eqne_operator, gtle_operator,
8104         gtuleu_operator, iorxor_operator.
8105         Add prototypes for h8sx_shift_type h8sx_classify_shift and
8106         h8300_ldm_stm_parallel.
8107         * config/h8300/h8300.c (h8sx_shift_type,): Move to
8108         h8300-protos.h.
8109         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
8110         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
8111         (h8300_ldm_stm_parallel): Make it extern.
8112         (h8300_ldm_parallel, h8300_stm_parallel,
8113         h8300_return_parallel, general_operand_src,
8114         general_operand_dst, h8300_dst_operand, h8300_src_operand,
8115         nibble_operand, reg_or_nibble_operand, single_one_operand,
8116         single_zero_operand, call_insn_operand,
8117         two_insn_adds_subs_operand, small_call_insn_operand,
8118         jump_address_operand, bit_operand, bit_memory_operand,
8119         stack_pointer_operand, const_int_gt_2_operand,
8120         const_int_ge_8_operand, const_int_qi_operand,
8121         const_int_hi_operand, incdec_operand, eqne_operator,
8122         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
8123         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
8124         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
8125         nshift_operator): Move to predicates.md.
8126         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
8127         * config/h8300/h8300.md: Include predicates.md.
8128         * config/h8300/predicates.md: New.
8129
8130 2005-03-17  Richard Henderson  <rth@redhat.com>
8131
8132         * config.gcc (ia64*-*-hpux*): Add extra_options.
8133         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
8134         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
8135         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
8136         (ia64_tls_size_string, ia64_tune_string): Remove.
8137         (ia64_tune): Init to PROCESSOR_ITANIUM2.
8138         (TARGET_DEFAULT_TARGET_FLAGS): New.
8139         (TARGET_HANDLE_OPTION): New.
8140         (ia64_override_options): Move options parsing ...
8141         (ia64_handle_option): ... here.  New.
8142         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
8143         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
8144         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
8145         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
8146         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
8147         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
8148         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
8149         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
8150         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
8151         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
8152         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
8153         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
8154         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
8155         TARGET_EARLY_STOP_BITS): Remove.
8156         (TARGET_ILP32): Default false.
8157         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
8158         (enum ia64_inline_type): New.
8159         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
8160         * config/ia64/ia64.md: Update for new definitions of
8161         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
8162         * config/ia64/ia64.opt: New file.
8163         * config/ia64/ilp32.opt: New file.
8164
8165 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8166
8167         PR target/18380
8168         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
8169
8170 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8171
8172         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
8173         instead of MASK_H8300S.
8174         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
8175         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
8176         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
8177         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
8178         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
8179         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
8180         TARGET_SWITCHES): Remove.
8181         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
8182         TARGET_H8300SX.
8183         * config/h8300/h8300.opt: New.
8184
8185         * config/alpha/alpha.opt, config/arc/arc.opt,
8186         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
8187         notices.
8188
8189 2005-03-17  Ian Lance Taylor  <ian@airs.com>
8190
8191         * gmon.c: Remove.
8192
8193 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
8194
8195         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
8196         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
8197         (TARGET_HANDLE_OPTION): Override default.
8198         (arc_handle_option): New function.
8199         (arc_init): Remove code to set arch_cpu_string.
8200         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
8201         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
8202         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
8203         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
8204         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
8205         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
8206         (arc_rodata_string, TARGET_OPTIONS): Delete.
8207         * config/arc/arc.opt: New file.
8208
8209 2005-03-17  Richard Henderson  <rth@redhat.com>
8210
8211         * doc/extend.texi (Weak Pragmas): New section.
8212         (attribute alias): Clarify that target must be in the same
8213         translation unit.
8214
8215 2005-03-17  Richard Henderson  <rth@redhat.com>
8216
8217         * config/alpha/alpha.opt: New file.
8218         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
8219         of alpha_cpu.
8220         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
8221         alpha_fprm_string, alpha_fptm_string): Make static.
8222         (alpha_tls_size_string): Remove.
8223         (alpha_handle_option): New.
8224         (override_options): Update for alpha_cpu/alpha_tune split.
8225         (alpha_file_start): Likewise.
8226         (TARGET_DEFAULT_TARGET_FLAGS): New.
8227         (TARGET_HANDLE_OPTION): New.
8228         * config/alpha/alpha.h (alpha_tune): Declare.
8229         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
8230         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
8231         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
8232         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
8233         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
8234         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
8235         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
8236         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
8237         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
8238         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
8239         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
8240         (TARGET_DEFAULT): Remove MASK_FP.
8241         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
8242         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
8243         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
8244         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
8245         alpha_tls_size_string): Remove.
8246         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
8247         (attribute tune): Rename from attribute cpu.
8248         * config/alpha/ev4.md: Update to match.
8249         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
8250         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
8251         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
8252         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
8253         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
8254         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
8255
8256 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
8257
8258         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
8259         and return without creating new state if before_nops_num is nonzero.
8260         * config/ia64/ia64.md (first_insn): New attribute.
8261         (alloc): Set it to yes.
8262
8263 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
8264
8265         * tree-vectorizer.c (new_vec_stmt_info): Initialize
8266         STMT_VINFO_SUBVARS to NULL.
8267         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
8268
8269 2005-03-16 Dale Johannesen  <dalej@apple.com>
8270
8271         * rtlanal.c (find_first_parameter_load):  Rewrite to
8272         return actual first param load or the call if none,
8273         instead of first in block, when not all loads exist.
8274
8275 2005-03-16  Roger Sayle  <roger@eyesopen.com>
8276
8277         * optabs.c (expand_copysign_absneg): Make static.
8278         * optabs.h (expand_copysign_absneg): Delete prototype.
8279         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
8280
8281 2005-03-16  Richard Henderson  <rth@redhat.com>
8282
8283         PR middle-end/15700
8284         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
8285         (alias_pairs): Rename from output_defs.
8286         (find_decl_and_mark_needed): Split out from assemble_alias.
8287         (do_assemble_alias): New.
8288         (assemble_output_def): Remove.
8289         (finish_aliases_1, finish_aliases_2): New.
8290         (process_pending_assemble_output_defs): Remove.
8291         (assemble_alias): Defer aliases for which we don't yet have a
8292         non-external decl for the target symbol.
8293         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
8294         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
8295         * toplev.c (compile_file): Use finish_aliases_2 instead of
8296         process_pending_assemble_output_defs.
8297         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
8298         (process_pending_assemble_output_defs): Remove.
8299
8300 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
8301
8302         Fix PR tree-optimization/20489
8303
8304         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
8305         for empty structures.
8306
8307 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
8308
8309         Fix PR tree-optimization/20490
8310
8311         * tree-ssa-pre.c (create_expression_by_pieces): Use
8312         force_gimple_operand on result of fold.
8313
8314 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
8315
8316         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
8317         of closing parenthesis.
8318
8319 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8320
8321         * builtins.c (expand_movstr): Update a call to
8322         fold_builtin_strcpy.
8323         (expand_builtin_strncpy): Update a call to
8324         fold_builtin_strncpy.
8325         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
8326         arguments of CALL_EXPR.
8327         (fold_builtin_1): Update calls to fold_builtin_strcpy and
8328         fold_builtin_strncpy.
8329         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
8330         * tree.h: Update the prototypes of fold_builtin_strcpy and
8331         fold_builtin_strncpy.
8332
8333 2005-03-16  Steven Bosscher  <stevenb@suse.de>
8334             Dorit Naishlos  <dorit@il.ibm.com>
8335
8336         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
8337         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
8338         error.
8339
8340 2005-03-16  Steven Bosscher  <stevenb@suse.de>
8341
8342         * tree-inline.c (walk_type_fields, walk_tree,
8343         walk_tree_without_duplicates): Move from here...
8344         * tree.c: ...to here.
8345
8346 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
8347
8348         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
8349         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
8350         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
8351         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
8352         (version): Define using $(BASEVER_c).
8353         (Makefile, config.status, build/gcov-iov.o): No longer depends on
8354         version.c.
8355         (version.o): Depend on version files; add custom generation command.
8356         (prefix.o): Define BASEVER on command line.
8357         (s-iov): Depend on version files; adjust command.
8358         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
8359         Add gcc-vers.texi.
8360         (gcc-vers.texi): New rule.
8361         (doc/%.info, doc/%.dvi): Add -I . to command line.
8362         (doc/gccinstall.dvi): Likewise.
8363         (PACKAGE): Delete.  All uses replaced with "gcc".
8364         * aclocal.m4: Do not include gcc-version.m4.
8365         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
8366         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
8367         Set is_release based on contents of DEV-PHASE.
8368         Set gcc_version based on contents of BASE-VER.
8369         Define WIN32_REGISTRY_KEY only if the user overrode the default.
8370         * config.in, configure: Regenerate.
8371         * gccbug.in: Determine version of GCC in use at runtime.
8372         * gcov-iov.c: Get version number and development phase from
8373         command line, not by including version.c.
8374         * intl.c: Replace all uses of PACKAGE with "gcc".
8375         * libada-mk.in: Delete unused "gcc_version" variable.
8376         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
8377         * version.c: (VERSUFFIX): New hook for redistributors; adjust
8378         commentary to match.
8379         (version_string): Put together from pieces.
8380         * config/alpha/x-vms: Do not use $(gcc_version).
8381         * config/i386/t-nwld: Likewise.
8382         * doc/include/gcc-common.texi: Include gcc-vers.texi for
8383         version-GCC and DEVELOPMENT.
8384
8385 2005-03-15  Roger Sayle  <roger@eyesopen.com>
8386
8387         PR tree-optimization/17454
8388         * tree.c (tree_size): Add case for TREE_BINFO.
8389         * fold-const.c (fold_checksum_tree): Only clear the overloaded
8390         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
8391
8392 2005-03-15  Roger Sayle  <roger@eyesopen.com>
8393
8394         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
8395         op1 whilst expanding the signed widenening multiply variant.
8396
8397 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
8398
8399         * toplev.c (display_target_options): Avoid unused variable warning if
8400         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
8401         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
8402         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
8403         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
8404         (mips_isa_info): New variable.
8405         (mips_parse_cpu): Remove the first argument and leave the caller
8406         to report errors.
8407         (TARGET_HANDLE_OPTION): Override default.
8408         (mips_handle_option): New function.  Move option validation code from...
8409         (override_options): ...here.  Update calls to mips_parse_cpu.
8410         * config/mips/mips.h (mips_arch_string, mips_tune_string)
8411         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
8412         (SUBTARGET_TARGET_OPTIONS): Delete.
8413         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
8414         (mno-flush-func, mtune=): New options.
8415
8416 2005-03-15  Roger Sayle  <roger@eyesopen.com>
8417             Richard Henderson  <rth@redhat.com>
8418
8419         * real.c (c4x_single_format, c4x_extended_format): Provide values
8420         for signbit_ro for c4x's single and extended floating point formats.
8421         * optabs.c (expand_copysign): Use the floating point format's
8422         signbit_ro for expanding via expand_copysign_absneg, and it's
8423         signbit_rw field for expanding via expand_copysign_bit.
8424
8425 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
8426
8427         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
8428         known_alignment_for_access_p.
8429         (known_alignment_for_access_p): New.
8430         (do_peeling_for_alignment): Field made int instead of bool and renamed
8431         to peeling_for_alignment.
8432         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
8433         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
8434         functionality used to be in vect_analyze_operations.
8435         (vect_analyze_operations): Code to determine vectorization factor was
8436         moved to vect_determine_vectorization_factor.
8437         (vect_enhance_data_refs_alignment): Update to correct alignment when it
8438         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
8439         factor.
8440         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
8441         be part of vect_analyze_operations).
8442         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
8443         creating the guard condition, as the number of iterations may be
8444         constant.
8445         (slpeel_tree_peel_loop_to_edge): Use new name of
8446         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
8447         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
8448         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
8449         (vect_do_peeling_for_alignment): Use fold.
8450         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
8451
8452         (vect_update_inits_of_dr): Renamed to
8453         vect_update_init_of_dr.
8454         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
8455         (vectorizable_store): Fix assertion to use == instead of =.
8456
8457 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
8458
8459         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
8460         call_used_regs for wCG registers.
8461
8462 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
8463
8464         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
8465         for non-offsettable memory references to cope with outstanding reload
8466         replacements, take 2.
8467
8468 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
8469
8470         PR target/18668
8471         * config/i386/i386.h (x86_fisttp): New.
8472         (TARGET_FISTTP): New macro.
8473         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
8474         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
8475         instruction when fisttp flag is set.
8476         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
8477
8478         * config/i386/i386.md (type attribute): Add fisttp.
8479         (unit attribute): Set to i387 for fisttp type.
8480         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
8481         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
8482         TARGET_FISTTP.
8483         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
8484         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
8485         macros.
8486         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
8487         patterns for TARGET_FISTTP.  Enable patterns for
8488         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
8489         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
8490         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
8491         implement fisttp x87 insn.
8492         (fix_trunc*_i387_fisttp splitters): New patterns.
8493         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
8494         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
8495         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
8496         clobber.
8497         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
8498         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
8499         Implement using mode macros. Disable patterns for TARGET_FISTTP.
8500         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
8501         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
8502         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
8503         Disable patterns for TARGET_FISTTP.
8504         (fix_trunc*_i387 splitters): Implement usign mode macros.
8505         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
8506         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
8507         (fix_trunx*_sse peephole2s): Implement using mode macros.
8508
8509 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
8510
8511         PR rtl-optimization/20291
8512         * combine.c (try_combine): If splitting fails, re-try with
8513         original combined pattern, i.e. before clobber stripping.
8514
8515 2005-03-14  Eric Christopher  <echristo@redhat.com>
8516
8517         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
8518         STACK_GROWS_DOWNWARD.
8519
8520 2005-03-14  Roger Sayle  <roger@eyesopen.com>
8521
8522         * real.h (struct real_format): Split the signbit field into two
8523         two fields, signbit_ro and signbit_rw.
8524         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
8525         mips_double_format, ieee_extended_motorola_format,
8526         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
8527         ieee_extended_intel_128_format, ibm_extended_format,
8528         mips_extended_format, ieee_quad_format, mips_quad_format,
8529         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
8530         i370_double_format, c4x_single_format, c4x_extended_format,
8531         real_internal_format): Update initializers for new field.
8532         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
8533         real_format structure.
8534         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
8535         field of the real_format structure.
8536
8537 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
8538
8539         Fix PR tree-optimization/20458
8540
8541         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
8542         DECL_EXTERNAL on STRUCT_FIELD tags.
8543         (clear_call_clobbered): Ditto.
8544         * tree-ssa-operands.c (note_addressable): Make sure the original
8545         variable doesn't slip into the addressable list if we have
8546         subvars.
8547         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
8548         tags too.
8549
8550 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
8551
8552         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
8553         (-fwide-exec-charset): Likewise.
8554         (-finput-charset): Likewise.
8555         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
8556         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
8557         * c.opt (Wnormalized): New.
8558
8559 2005-03-14  Devang Patel  <dpatel@apple.com>
8560
8561         * doc/invoke.texi: Add reference to Visibility document.
8562
8563 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
8564
8565         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
8566         MASK_SPLIT_ADDRESSES.
8567         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
8568         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
8569         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
8570         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
8571         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
8572         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
8573         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
8574         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
8575         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
8576         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
8577         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
8578         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
8579         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
8580         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
8581         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
8582         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
8583         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
8584         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
8585         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
8586         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
8587         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
8588         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
8589         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
8590         (TARGET_EXPLICIT_RELOCS): Delete.
8591         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
8592         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
8593         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
8594         (override_options): Set MASK_LONG64 if -mint64 is given and no
8595         -mlongXX option is.  Complain about -mint64 -mlong32.
8596         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
8597         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
8598         * config/mips/mips.opt: New file.
8599
8600 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
8601
8602         * config.gcc (extra_options): New variable for listing option files.
8603         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
8604         * configure.ac (extra_opt_files): New AC_SUBST variable.
8605         (tm_file_list, tm_include_list): Include options.h first.
8606         * configure: Regenerate.
8607         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
8608         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
8609         (s-options-h): New rule.
8610         (options.h): Depend on it.
8611         (TEXI_GCCINT_FILES): Add options.texi.
8612         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
8613         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
8614         * target.h (gcc_target): Add default_target_flags and handle_option.
8615         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
8616         (TARGET_HANDLE_OPTION): New macros.
8617         (TARGET_INITIALIZER): Include them.
8618         * opt-functions.awk (opt_args, nth_arg): New functions.
8619         (switch_flags): Handle the "Target" flag.
8620         (var_args): Delete.
8621         (var_name): Use opt_args and nth_arg.
8622         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
8623         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
8624         macros for the "Mask" and "InverseMask" options.
8625         * opts.h (cl_var_cond): New enum.
8626         (cl_option): Replace the "has_set_value" and "set_value" fields with
8627         "var_cond" and "var_value".
8628         (CL_TARGET): New macro.
8629         (option_enabled, print_filtered_help): Declare.
8630         (decode_options): Move definition.
8631         * opts.c (handle_option): Search for the original option before
8632         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
8633         var_cond and var_value fields.  Use targetm.handle_option to handle
8634         target options.
8635         (decode_options): Set target_flags to targetm.default_target_flags.
8636         (print_filtered_help): Make global.  Handle CL_TARGET.
8637         (option_enabled): New function.
8638         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
8639         (display_target_options, set_target_switch, print_switch_values)
8640         (default_pch_valid_p): Guard uses of target_switches with
8641         #ifdef TARGET_SWITCHES.  Also...
8642         (display_target_options): Display the CL_TARGET entries in cl_options.
8643         (set_target_option): Don't complain about the "" option when
8644         TARGET_SWITCHES is undefined.
8645         (print_switch_values): Use option_enabled.
8646         (default_pch_valid_p): Check cl_options[] when looking for something
8647         that has changed the value of target_flags.
8648         * c.opt: Remove documentation from top of file.
8649         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
8650         * doc/sourecebuild.texi: Refer to the new options documentation
8651         instead of c.opt.  Document machine-specific .opt files.
8652         * doc/tm.texi (target_flags): Say that this variable is declared
8653         by options.h.
8654         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
8655         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
8656         an alternative.
8657         * doc/options.texi: New file.
8658
8659 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
8660
8661         PR middle-end/18628
8662         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
8663         register.
8664
8665 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
8666
8667         PR c++/20280
8668         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
8669         temporary variable of pointer type if an lvalues is required.
8670         (gimplify_modify_expr_rhs): Request an rvalue from it.
8671         (gimplify_expr): Pass fallback on.
8672
8673 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
8674
8675         * cfgbuild.c: Update comments.
8676
8677 2005-03-14  Roger Sayle  <roger@eyesopen.com>
8678
8679         PR rtl-optimization/17236
8680         * optabs.c (expand_doubleword_mult): New helper function split out
8681         from expand_binop.  Permute the order in which instructions are
8682         emitted to minimize the number of simultaneously live registers.
8683         (expand_binop): Call expand_doubleword_mult to synthesize a double
8684         word multiplication.
8685
8686 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
8687
8688         * basic-block.h: Update the prototypes of cached_make_edge and
8689         rtl_make_eh_edge.
8690         * cfg.c (cached_make_edge): Take edge_cache representing one
8691         row of the adjacency matrix of edges.
8692         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
8693         (make_edges): Initialize edge_cache to represent one row of
8694         the adjacency matrix of edges.
8695
8696 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
8697
8698         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
8699         New functions.
8700         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
8701         Remove unused removed_phis variable.
8702         (conditional_replacement): Use build1/build2.
8703         (abs_replacement): Use last_and_only_stmt and build1/build2.
8704
8705 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
8706
8707         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
8708         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
8709         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
8710         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
8711         * c-common.c (handle_novops_attribute): New function.
8712         (c_common_attribute_table): Add "no vops" entry.
8713         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
8714         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
8715         * tree-ssa-operands.c (get_call_expr_operands): Do not
8716         create virtual operands for calls with ECF_NOVOPS flag.
8717         * tree.h (DECL_IS_NOVOPS): New macro.
8718         (struct tree_decl): Add novops_flag.
8719         (ECF_NOVOPS): New constant.
8720
8721 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
8722
8723         PR target/17688
8724         * config/i386/i386.c (x86_use_himode_fiop): New.
8725         (x86_use_simode_fiop): Rename from x86_use_fiop.
8726         * config/i386/i386.h (x86_use_himode_fiop): Declare.
8727         (TARGET_USE_HIMODE_FIOP): New.
8728         (x86_use_simode_fiop): Rename from x86_use_fiop.
8729         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
8730
8731         * config/i386/i386.md (X87MODEI12): New mode macro define.
8732         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
8733         to implement x87 FP compare with HImode input operands.
8734         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
8735         Use X87MODEI12 mode macro to handle HImode input operands.
8736         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
8737         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
8738         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
8739         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
8740         macro to implement x87 operators with HImode input operands.
8741         (fop splitters): Use X87MODEI12 mode macro to handle HImode
8742         input operands.
8743
8744 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
8745
8746         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
8747         integer_zerop.
8748         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
8749         constants invariant.
8750
8751 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
8752
8753         * basic-block.h (BB_VISITED): Removed.
8754         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
8755
8756 2005-03-14  Falk Hueffner  <falk@debian.org>
8757
8758         PR bootstrap/20424
8759         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
8760
8761 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
8762
8763         * ggc-zone.c: Fix comment typos.
8764
8765         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
8766         stringpool.c, config/mips/mips-protos.h: Update copyright.
8767
8768 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
8769
8770         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
8771         throughout with its typedef, "rtx".
8772         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
8773         (rs6000_tls_symbol_ref_1): Remove inline keyword.
8774         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
8775         regs in comment to match code.
8776
8777 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
8778
8779         * except.c (check_handled): Make it static.
8780         * except.h: Remove the corresponding prototype.
8781
8782         * function.c (get_func_frame_size): Make it static.
8783         * function.h: Remove the corresponding type.
8784
8785         * regclass.c (reg_class_superclasses, reg_class_subclasses):
8786         Make them static.
8787         * hard-reg-set.h: Remove the corresponding declarations.
8788
8789         * tree-cfg.c (verify_stmts): Check that
8790         bb_for_stmt (stmt) == bb for every PHI node and statement.
8791
8792 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
8793
8794         * config.gcc: Remove excess indentation.
8795         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
8796
8797 2005-03-13  Roger Sayle  <roger@eyesopen.com>
8798
8799         PR middle-end/19331
8800         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
8801         * fold-const.c (fold_sign_changed_comparison): Likewise.
8802         (fold_binary): Optimize comparisons against widened operands if
8803         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
8804
8805 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8806
8807         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
8808         (sparc_override_options): Initialize it.
8809         (sparc_struct_value_rtx): Set it on the MEM to be returned.
8810
8811 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
8812
8813         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
8814         (reg_or_none500mem_operand): New predicate.
8815         (zero_reg_mem_operand): New predicate.
8816         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
8817         to reg_or_none500mem_operand.
8818         (extendsfdf2_fpr): Add MEM alternative.
8819         (extenddftf2_internal): Change operand2 predicate to
8820         zero_reg_mem_operand.
8821
8822 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
8823
8824         * ggc-zone.c: Rewritten.
8825
8826         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
8827         if there are none.
8828         * configure.ac: Define GGC_ZONE for --with-gc=zone.
8829         * config.in: Regenerated.
8830         * configure: Regenerated.
8831         * gengtype.c (write_types_process_field, write_func_for_structure):
8832         Pass new argument to gt_pch_note_object.
8833         * ggc-common.c (struct ptr_data): Add TYPE.
8834         (gt_pch_note_object): Take TYPE argument and save it.
8835         (call_count): Update call to ggc_pch_count_object.
8836         (call_alloc): Update call to ggc_pch_alloc_object.
8837         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
8838         file.
8839         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
8840         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
8841         (ggc_alloc_zone_stat): Delete.
8842         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
8843         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
8844         (ggc_pch_alloc_object): Update prototypes.
8845         (garbage_zone): Delete.
8846         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
8847         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
8848         pointers.
8849         (tree_id_zone): New variable.
8850         (ggc_alloc_cleared_zone): Remove unused.
8851         (ggc_alloc_zone): Define.
8852         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
8853         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
8854         ggc_alloc_zone_stat.
8855         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
8856         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
8857         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
8858         (make_node_stat): Likewise.  Use tree_id_zone.
8859
8860 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
8861             Joseph S. Myers  <joseph@codesourcery.com>
8862
8863         * configure.ac: Check for MIPS TLS.
8864         * configure: Regenerated.
8865         * config/mips/mips-protos.h (enum mips_symbol_type): Add
8866         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
8867         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
8868         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
8869         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
8870         (mips_classify_symbol, mips_symbolic_constant_p)
8871         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
8872         (mips_tls_operand_p, mips_call_tls_get_addr)
8873         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
8874         (mips_tls_symbol_ref_1): New functions.
8875         (mips_legitimize_address, mips_legitimize_const_move): Call
8876         mips_legitimize_tls_address.
8877         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
8878         for MIPS16.
8879         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
8880         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
8881         (mips_char_to_class): Document V1_REG.
8882         (HAVE_AS_TLS): Provide default.
8883         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
8884         constants.
8885         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
8886         !TARGET_ABICALLS.
8887         (tls_get_tp_<mode>): New instruction.
8888
8889 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
8890
8891         * configure.ac: Update checks for target tools.
8892         * configure: Regenerated.
8893
8894 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
8895
8896         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
8897
8898 2005-03-13  Roger Sayle  <roger@eyesopen.com>
8899
8900         * expmed.c (expand_mult): Use synthetic multiplication sequences for
8901         more classes of DImode multiplication by constant.  Allow both
8902         multiplication by small negative constants (by performing a
8903         multiplication by a positive constant and negating the result) and
8904         multiplications by large powers of two, by using a left shift.
8905
8906 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
8907
8908         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
8909         of basic blocks into work_stack.
8910
8911         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
8912         config/mips/vr.h: Update copyright.
8913
8914         * c-decl.c (c_init_decl_processing): Remove useless calls to
8915         build_function_type.
8916
8917         * builtins.c (fold_trunc_transparent_mathfn,
8918         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
8919         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
8920         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
8921         fold_builtin_strcpy, fold_builtin_strncpy,
8922         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
8923         TREE_TYPE (exp).
8924
8925         * builtins.c (expand_builtin_mathfn_3): Remove local variable
8926         before_call.
8927
8928         * lambda-code.c (lambda_compute_auxillary_space): Remove local
8929         variable determinant.
8930
8931         * tree-cfg.c (group_case_labels): Remove local variable type.
8932
8933         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
8934         variable ann.
8935
8936         * tree-ssa-phiopt.c (value_replacement): Remove local variable
8937         result.
8938
8939 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
8940
8941         PR target/18251
8942         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
8943         (*movmemqi_insn): Delete.
8944         (*movmemhi): Delete.
8945
8946 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
8947
8948         * builtins.c (fold_builtin_classify): Take decomposed
8949         arguments of CALL_EXPR.
8950         (fold_builtin_1): Update a call to fold_builtin_classify.
8951
8952 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
8953
8954         PR c/20402
8955         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
8956         through into call to parser_xref_tag after parse error.
8957         (c_parser_struct_declaration): Consistently return NULL_TREE on
8958         error.
8959
8960 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
8961
8962         * tree-flow-inline.h (ref_contains_array_ref): New function.
8963         (lookup_subvars_for_var): Ditto.
8964         (get_subvars_for_var): Ditto.
8965         (var_can_have_subvars): Ditto.
8966
8967         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
8968         (struct subvar): New type.
8969
8970         * tree-dfa.c (okay_component_ref_for_subvars): New function.
8971
8972         * tree-optimize.c (init_tree_optimization_passes): Call
8973         pass_create_structure_vars.
8974
8975         * tree-ssa-alias.c: Include vec.h.
8976         (init_alias_info): Don't auto-clear call clobbered on struct-field
8977         tags.
8978         (compute_flow_insensitive_aliasing): Handle subvars.
8979         (group_aliases): Handle STRUCT_FIELD aliases.
8980         (setup_pointers_and_addressables): Ditto.
8981         Don't mark variables non-addressable if they still have
8982         addressable subvars.
8983         Also mark subvars addressable when the real variable is marked
8984         addressable.
8985         (add_pointed_to_var): Try to prune the pointed-to set by only
8986         pointing to subvars when possible.
8987         Otherwise, make sure we set addresses_needed and pt_vars to
8988         properly include subvars.
8989         (bitpos_of_field): New function.
8990         (push_fields_onto_fieldstack): Ditto.
8991         (get_or_create_used_part_for): Ditto.
8992         (create_overlap_variables_for): Ditto.
8993         (find_used_portions): Ditto.
8994         (create_structure_vars): Ditto.
8995         (pass_create_structure_vars): New structure.
8996
8997         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
8998         (get_expr_operands): Handle subvars.  Also try to turn
8999         COMPONENT_REF accesses into must-defs now that we can accurately
9000         portray it.
9001         (note_addressable): Try to only mark as addressable those subvars
9002         we know a COMPONENT_REF touches.
9003         (overlap_subvar): New function.
9004
9005         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
9006         Handle subvar storing.
9007         (vect_address_analysis): Update caller of vect_object_analysis.
9008
9009         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
9010
9011         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
9012         (STMT_VINFO_SUBVARS): New macro.
9013
9014         * common.opts: add flag_tree_salias.
9015
9016         * opts.c (decode_options): flag_tree_salias defaults to on.
9017
9018         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
9019
9020         * doc/tree-ssa.texi: Document structural alias analysis.
9021
9022 2005-03-12  Steven Bosscher  <stevenb@suse.de>
9023
9024         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
9025         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
9026         * tree-ssa-operands.c (get_expr_operands): Likewise.
9027         (get_expr_operands): Likewise for ERROR_MARK.
9028
9029 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
9030
9031         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
9032         var.
9033
9034         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
9035         removed_phis.
9036
9037         * tree-ssa-pre.c (compute_avail): Remove local variable val.
9038         (mark_operand_necessary): Remove local variable ver.
9039
9040         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
9041         variable prefix_len.
9042
9043         * value-prof.c (mod_subtract_transform): Remove local variable
9044         value.
9045
9046         * builtins.c (fold_builtin_exponent): Take decomposed
9047         arguments of CALL_EXPR.
9048         (fold_builtin_1): Update a call to fold_builtin_exponent.
9049
9050         * builtins.c (fold_builtin_logarithm): Take decomposed
9051         arguments of CALL_EXPR.
9052         (fold_builtin_1): Update a call to fold_builtin_logarithm.
9053
9054         * c-decl.c (c_init_decl_processing): Remove local variables
9055         ptr_ftype_void and ptr_ftype_ptr.
9056
9057         * gimplify.c (gimplify_expr): Remove local variables r0 and
9058         r1.
9059
9060         * reg-stack.c (move_for_stack_reg): Remove local variable
9061         push_insn.
9062         (compare_for_stack_reg): Remove local variable flags_user.
9063         (convert_regs_1): Remove local variable deleted.
9064
9065         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
9066         variable new_cond.
9067         (combine_blocks): Remove local variables exits and new_e.
9068
9069         * tree-inline.c (expand_call_inline): Remove local variable
9070         decl.
9071
9072         * tree-ssa-live.c (create_ssa_var_map,
9073         calculate_live_on_entry): Remove local variable snn.
9074
9075 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
9076
9077         * c-lex.c (c_lex_with_flags): Add parameter to call to
9078         cpp_spell_token.
9079
9080 2005-03-11  Per Bothner  <per@bothner.com>
9081
9082         * c-tree.h (struct c_declarator): New id_loc field.
9083         * c-pragma.h (c_lex_with_flags): Take position reference.
9084         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
9085         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
9086         (c_lex): Pass dummy location to c_lex_with_flags.
9087         * c-parser.c (c_lex_one_token): Set c_token's location using
9088         c_lex_with_flags, instead of input_location, which might be "ahead".
9089         (c_parser_direct_declarator): Set declarator's id_loc from
9090         c_token's id_loc.
9091         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
9092         declarator's id_loc, rather than probably-imprecise input_location.
9093         (build_id_declarator): Initialize c_declarator's id_loc field.
9094
9095 2005-03-11  Roger Sayle  <roger@eyesopen.com>
9096
9097         PR middle-end/20419
9098         * builtins.c (expand_builtin_signbit): Force the signbit's word
9099         into an integer register to avoid SUBREGs of floating point modes.
9100
9101 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
9102
9103         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
9104         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
9105         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
9106         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
9107
9108 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
9109
9110         PR rtl-optimization/20306
9111         * expr.c (emit_move_complex): Set try_int false if mode is
9112         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
9113         emit_block_move if try_int is true.
9114
9115 2005-03-11  Richard Henderson  <rth@redhat.com>
9116
9117         PR target/20415
9118         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
9119         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
9120         to match.
9121
9122 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
9123
9124         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
9125         (TARGET_FIX_VR4130): New macro.
9126         (TARGET_OPTIONS): Add -mfix-vr4130.
9127         (ISA_HAS_MACCHI): New macro.
9128         (ASM_SPEC): Add -mfix-vr4130.
9129         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
9130         (override_options): Handle mips_fix_vr4130_string.
9131         (mips_avoid_hazards): Clear all_noreorder_p
9132         if we're working around VR4130 errata and the macc alternatives
9133         are not available.
9134         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
9135         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
9136         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
9137         (MULTILIB_DEFAULTS): Remove leading "march=".
9138         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
9139         if no architecture option is given.
9140         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
9141         VR4130 multilibs.
9142         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
9143         * doc/invoke.texi: Document -mfix-vr4130.
9144
9145 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
9146
9147         * config/mips/mips.c (override_options): Only warn about -mint64
9148         deprecation if TARGET_INT64.
9149
9150 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9151
9152         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
9153         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
9154         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
9155         are non-specific regarding the nonnull parameter positions.
9156         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
9157         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
9158         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
9159         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
9160
9161         * builtins.def: Use the non-specific "nonnull" attibute lists.
9162
9163 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
9164
9165         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
9166         single_pred_edge, single_succ, single_pred): Improve comments.
9167
9168 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
9169
9170         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
9171         single_pred_edge, single_succ, single_pred): New inline functions.
9172         * bb-reorder.c (rotate_loop, find_traces_1_round,
9173         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
9174         duplicate_computed_gotos): Use the single_succ/pred functions.
9175         * cfganal.c (forwarder_block_p): Ditto.
9176         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
9177         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
9178         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
9179         merge_seq_blocks): Ditto.
9180         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
9181         * cfglayout.c (fixup_reorder_chain): Ditto.
9182         * cfgloop.c (mark_single_exit_loops, update_latch_info,
9183         canonicalize_loop_headers, verify_loop_structure): Ditto.
9184         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
9185         mfb_update_loops, create_preheader, force_single_succ_latches,
9186         create_loop_notes): Ditto.
9187         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
9188         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
9189         commit_one_edge_insertion, purge_dead_edges,
9190         cfg_layout_can_merge_blocks_p): Ditto.
9191         * except.c (sjlj_emit_function_enter): Ditto.
9192         * flow.c (init_propagate_block_info): Ditto.
9193         * function.c (thread_prologue_and_epilogue_insns): Ditto.
9194         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
9195         insert_insn_end_bb): Ditto.
9196         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
9197         find_if_case_2): Ditto.
9198         * lambda-code.c (perfect_nestify): Ditto.
9199         * lcm.c (optimize_mode_switching): Ditto.
9200         * loop-doloop.c (doloop_modify): Ditto.
9201         * loop-init.c (loop_optimizer_init): Ditto.
9202         * loop-iv.c (simplify_using_initial_values): Ditto.
9203         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
9204         * loop-unswitch.c (unswitch_loop): Ditto.
9205         * modulo-sched.c (generate_prolog_epilog): Ditto.
9206         * predict.c (combine_predictions_for_insn, estimate_probability,
9207         tree_estimate_probability, last_basic_block_p,
9208         estimate_bb_frequencies): Ditto.
9209         * profile.c (branch_prob): Ditto.
9210         * regrename.c (copyprop_hardreg_forward): Ditto.
9211         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
9212         * tracer.c (layout_superblocks): Ditto.
9213         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
9214         cfg_remove_useless_stmts_bb, cleanup_control_flow,
9215         cleanup_control_expr_graph, disband_implicit_edges,
9216         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
9217         tree_verify_flow_info, tree_make_forwarder_block,
9218         tree_forwarder_block_p, remove_forwarder_block,
9219         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
9220         * tree-if-conv.c (tree_if_conversion): Ditto.
9221         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
9222         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
9223         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
9224         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
9225         copy_loop_headers): Ditto.
9226         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
9227         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
9228         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
9229         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
9230         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
9231         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
9232         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
9233         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
9234         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
9235         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
9236         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
9237         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
9238         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
9239         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
9240         slpeel_add_loop_guard): Ditto.
9241
9242 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
9243
9244         PR tree-optimization/15784
9245         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
9246         and -1 - A to ~A.
9247
9248         * stmt.c (expand_case): Don't change index_type.  Convert minval
9249         to the proper type.
9250
9251         PR tree-optimization/20130
9252         * fold-const.c (fold): Fold x * -1 into -x.
9253
9254 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
9255
9256         PR rtl-optimization/20331
9257         * rtlanal.c (modified_between_p): Check its address first for MEM.
9258         (modified_in_p): Likewise.
9259
9260 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
9261
9262         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
9263
9264 2005-03-10  Steven Bosscher  <stevenb@suse.de>
9265
9266         * expr.c (expand_expr_real_1): If possible, use a conditional
9267         move for expanding MIN_EXPR and MAX_EXPR.
9268         Use temp for moving around rtx-en.
9269
9270 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
9271
9272         PR rtl-opt/20412
9273         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
9274         correct mode.
9275
9276 2005-03-10  Roger Sayle  <roger@eyesopen.com>
9277
9278         * builtins.c (expand_builtin_signbit): Extend to handle floating
9279         point modes wider than the largest integer type, using the
9280         operand_subword_force function to obtain the signbit's word.
9281
9282 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
9283
9284         PR target/20322
9285         * combine.c (try_combine): If recog_for_combine added CLOBBERs
9286         to NEWI2PAT, fail to combine if they are used by NEWPAT.
9287
9288 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
9289
9290         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
9291
9292 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
9293
9294         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
9295         type void.
9296         (perform_edge_inserts): Unconditionally call
9297         free_dominator_info.
9298
9299         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
9300
9301 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
9302
9303         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
9304
9305 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
9306
9307         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
9308
9309         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
9310         gcc_unreachable.
9311         (rtl_register_value_prof_hooks,
9312         tree_value_profile_transformations,
9313         tree_register_value_prof_hooks): Likewise.
9314         * var-tracking.c (stack_adjust_offset_pre_post,
9315         variable_htab_free, variable_union, dataflow_set_different_2,
9316         count_uses, variable_was_changed, set_frame_base_location,
9317         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
9318         vt_add_function_parameters): Likewise.
9319         * varasm.c (named_section_real, named_section, make_decl_rtl,
9320         asm_emit_uninitialised, assemble_integer, decode_addr_const,
9321         const_hash_1, compare_constant, copy_constant, force_const_mem,
9322         output_constant_pool_2, output_constant_pool_1, output_constant,
9323         output_constructor, make_decl_one_only, decl_tls_model,
9324         default_no_named_section, default_elf_select_section_1,
9325         default_unique_section_1): Likewise.
9326         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
9327         * vmsdbgout.c (addr_const_to_string): Likewise.
9328
9329         PR c++/20375
9330         * function.c (struct assign_parm_data_one): Remove last_named
9331         field.
9332         (assign_parm_find_data_types): Don't determine last_named.
9333         Reorder named_parm determination.
9334         (assign_parms): Only setup varargs on the last non-varadic
9335         parameter.
9336
9337 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
9338
9339         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
9340         sda base address on medium model.
9341
9342 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
9343
9344         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
9345         * cfgloop.c (flow_loop_nodes_find): Export.
9346         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
9347         Declare.
9348         * cfgloopmanip.c (fix_loop_structure): New function.
9349         * predict.c (predict_loops): Clean up the loops information.
9350         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
9351         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
9352         loop structure.
9353         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
9354         (rewrite_into_loop_closed_ssa): Declaration changed.
9355         * tree-loop-linear.c (linear_transform_loops): Add argument to
9356         rewrite_into_loop_closed_ssa call.
9357         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
9358         * tree-ssa-loop-im.c (move_computations): Ditto.
9359         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
9360         * tree-vectorizer.c (vectorize_loops): Ditto.
9361         * tree-optimize.c: Include cfgloop.h.
9362         (execute_todo): Choose whether to call cleanup_tree_cfg or
9363         cleanup_tree_cfg_loop.
9364         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
9365         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
9366         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
9367         cleanup_tree_cfg_loop call.
9368         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
9369         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
9370         work on part of cfg.
9371
9372 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
9373
9374         PR inline-asm/20314
9375         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
9376         with multiple alternatives.
9377
9378         * stmt.c (parse_output_constraint): Fix a typo.
9379
9380 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
9381
9382         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
9383         assembly directive instead of deprecated "no-generics".
9384
9385 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
9386
9387         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
9388         for non-offsettable memory references to cope with outstanding reload
9389         replacements.
9390         * config/s390/s390.md ("reload_outti"): Call find_replacement to
9391         avoid losing outstanding address reloads.
9392         ("reload_outdi", "reload_outdf"): Likewise.
9393
9394 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9395
9396         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
9397         code.  Add more cbrt transformations.
9398
9399 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9400
9401         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
9402
9403 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9404
9405         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
9406         NULL_TREE when a given tree is not simplified.
9407         (fold): Return the original tree when any of the functions
9408         mentioned above NULL_TREE.
9409
9410         * fold-const.c (fold_unary, fold_binary): Take decomposed
9411         arguments, code, type, op0, and op1 in case of fold_binary.
9412         (fold): Update calls to fold_unary and fold_binary.
9413
9414 2005-03-09  Roger Sayle  <roger@eyesopen.com>
9415
9416         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
9417         a fndecl and an arglist instead of a CALL_EXPR, exp.
9418
9419 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9420
9421         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
9422
9423         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
9424
9425         * expr.c (expand_assignment): Remove orig_to_rtx.
9426
9427         * fold-const.c (int_const_binop): Remove no_overflow.
9428
9429         * ifcvt.c (noce_emit_move_insn): Remove inmode.
9430
9431         * loop-iv.c (get_biv_step_1): Remove lhs.
9432
9433         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
9434
9435         * real.c (real_nan): Remove neg.
9436
9437         * function.c (thread_prologue_and_epilogue_insns): Remove i
9438         and newinsn.
9439
9440         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
9441         tb.
9442
9443         * tree-eh.c (tree_could_trap_p): Remove idx.
9444
9445         * tree-into-ssa.c (ann): Remove ann.
9446
9447         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
9448
9449         * tree-sra.c (decide_block_copy): Remove inst_count.
9450
9451         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
9452
9453         * tree-ssa-loop-im.c (lhs): Remove.
9454
9455         * cfgbuild.c (state, STATE, SET_STATE,
9456         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
9457         make_edges.
9458         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
9459         (find_basic_blocks): Set the state of each basic block to
9460         BLOCK_NEW.
9461
9462 2005-03-08  Jeff Law  <law@redhat.com>
9463
9464         * tree-cfg.c (cleanup_control_flow): If removal of a computed
9465         goto results in the removal of edges in the CFG, then we need
9466         to recompute dominators.
9467
9468 2005-03-09  Ben Elliston  <bje@au.ibm.com>
9469
9470         * c-common.c (c_do_switch_warnings): Comment fix.
9471
9472 2005-03-08  Julian Brown  <julian@codesourcery.com>
9473
9474         * Patch from 2005-03-08 reverted for causing regressions and
9475         ppc-darwin bootstrap failure.
9476
9477 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
9478
9479         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
9480         Define the real function for ppc-darwin.
9481         * c-typeck.c (convert_arguments): Check for target-specific
9482         invalid argument call to unprototyped function.
9483         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
9484         New Macro.
9485         * target.h (invalid_arg_for_unprototyped_fn): New field
9486         in struct calls.
9487         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
9488         default target hook.
9489         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
9490         Declare.
9491
9492 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9493
9494         * c-typeck.c (constructor_stack, constructor_range_stack,
9495         initializer_stack): Make them static.
9496
9497         * cfg.c (rbi_pool): Make it static.
9498
9499         * gimple-low.c (lower_stmt_body): Make it static.
9500         * tree-flow.h: Remove the corresponding prototype.  Don't
9501         declare lower_data.
9502
9503         * sched-deps.c (cache_size): Make it static.
9504
9505         * stor-layout.c (lang_adjust_rli): Make it static.
9506
9507 2005-03-08  Julian Brown  <julian@codesourcery.com>
9508
9509         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
9510         from being used for symbols with vague linkage when
9511         HAVE_GAS_COMDAT_GROUP is true.
9512
9513 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
9514
9515         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
9516         nlabel == JUMP_LABEL (jump).
9517
9518 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9519
9520         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
9521         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
9522         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
9523         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
9524
9525 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
9526
9527         PR c/14411
9528         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
9529         * c-common.c (handle_returns_twice): New function.
9530         (c_common_attribute_table): Declare eturns_twice' attribute.
9531         * doc/extend.texi: Document eturns_twice' attribute.
9532         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
9533         (struct tree_decl): Add returns_twice_flag.
9534
9535 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9536
9537         * tree-ssa-phiopt.c: Fix a comment typo.
9538
9539         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
9540         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
9541         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
9542         copyright.
9543
9544 2005-03-08  Richard Henderson  <rth@redhat.com>
9545
9546         * config/alpha/alpha.c (code_for_builtin): Replace special-case
9547         builtin codes with ctzdi2, clzdi2, popcountdi2.
9548         (struct alpha_builtin_def): Add is_const.
9549         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
9550         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
9551         (alpha_init_builtins): Init them.  Set nothrow and const attributes
9552         on builtins.
9553         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
9554         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
9555         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
9556         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
9557         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
9558         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
9559         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
9560         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
9561         (TARGET_FOLD_BUILTIN): New.
9562         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
9563         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
9564         (ffsdi2): Use ctz.
9565         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
9566
9567 2005-03-08  Ira Rosen  <irar@il.ibm.com>
9568
9569         PR tree-optimization/20122
9570         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
9571         condition of access function instead of base.
9572
9573 2005-03-07  Jeff Law  <law@redhat.com>
9574             Steven Bosscher  <stevenb@suse.de>
9575
9576         * tree-cfg.c (find_taken_edge_computed_goto): New function.
9577         (find_taken_edge): Call find_taken_edge_computed_goto as
9578         appropriate.  Allow any gimple invariant rather than just
9579         INTEGER_CST for VAL.
9580         (cleanup_control_flow): Cleanup a computed goto which has turned
9581         into a simple goto.
9582         (tree_merge_blocks): If block B has any forced labels, move
9583         them to the start of block A.
9584         * tree-ssa-dom.c (thread_across_edge): Allow threading across
9585         computed gotos as well.
9586         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
9587         removal of unnecessary computed gotos too.
9588         (lookup_redirection_data): Fix type of INSERT argument.  Callers
9589         updated.
9590
9591 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9592
9593         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
9594         Remove trailing spaces.
9595
9596         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
9597         unshare_all_trees): Make them static.
9598         * tree-gimple.h: Remove the corresponding prototypes.
9599
9600         * diagnostic.h: Remove unused prototype
9601         debug_output_buffer.
9602         * modulo-sched.c: Remove unused prototype
9603         set_row_column_for_ps.
9604
9605         * tree-ssa-phiopt.c (tree_ssa_phiopt,
9606         replace_phi_edge_with_variable): Remove unused variable i.
9607
9608 2005-03-07  Per Bothner  <per@bothner.com>
9609
9610         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
9611
9612 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
9613
9614         PR tree-opt/17671
9615         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
9616         bbs on the COND_EXPR instead of the PHI_NODEs.
9617         (candidate_bb_for_phi_optimization): Remove.
9618         (replace_phi_with_stmt): Rename to ...
9619         (replace_phi_edge_with_variable): this and change so that we
9620         replace the phi argument instead of removing the PHI.
9621         (conditional_replacement): Change so we deal with PHI with more
9622         than two arguments.
9623         (value_replacement): Likewise.
9624         (abs_replacement): Likewise.
9625
9626 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
9627
9628         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
9629         output_e500_flip_gt_bit.
9630
9631         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
9632         as bit 31.
9633         (rs6000_generate_compare): Fix logic to look at the correct bits.
9634         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
9635         Look at GT bit.
9636         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
9637         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
9638         gen_move_from_CR_gt_bit.
9639
9640         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
9641         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
9642         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
9643
9644         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
9645         (E500_CR_IOR_COMPARE): New constant.
9646
9647 2005-03-08  Earl Chew <earl_chew@agilent.com>
9648             David Billinghurst <David.Billinghurst@riotinto.com>
9649
9650         * config/i386/host-cygwin.c: New file to support precompiled
9651         headers on cygwin
9652         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
9653         * config.host: Use above files for cygwin host.
9654
9655 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
9656
9657         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
9658         ordering ops from earlier change.
9659
9660 2005-03-07  Per Bothner  <per@bothner.com>
9661
9662         Various fixes to allow us to again build if --enable-mapped-location:
9663         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
9664         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
9665         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
9666         local variable loc. Change logic appropriately.
9667         * tree-vect-transform.c (vect_finish_stmt_generation): Use
9668         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
9669         * c-parser.c (c_parser_for_statement): Initialize loc variable.
9670         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
9671         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
9672
9673 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
9674
9675         PR rtl-optimization/19683
9676         * reload1.c (choose_reload_regs): Pass the number of bits, not the
9677         number of bytes, to smallest_int_for_mode.  Fix arguments to
9678         REG_CANNOT_CHANGE_MODE_P.
9679
9680 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9681
9682         * reorg.c (relax_delay_slots): Check that the jump is
9683         conditional before trying to invert it.
9684
9685 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9686
9687         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
9688         Make them static.
9689
9690         * calls (stack_arg_under_construction): Make it static.
9691
9692         * flow.c (regs_live_at_setjmp): Make it static.
9693         * flow.h: Remove the corresponding prototype.
9694
9695         * reload1.c (reload_startobj, reload_firstobj,
9696         something_needs_operands_changed, reload_inherited,
9697         reload_inheritance_insn, reload_override_in,
9698         reload_spill_index): Make them static.
9699
9700         * recog.c (verify_changes): Make it static.
9701         * recog.h: Remove the corresponding prototype.
9702
9703         * cfgbuild.c (find_sub_basic_blocks): Remove.
9704         * basic-block.h: Remove the corresponding prototype.
9705         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
9706         in comments.
9707         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
9708
9709         * tree-ssa-operands.c (check_build_stmt): Remove.
9710
9711         * stor-layout.c (set_alignment): Remove.
9712         * tree.h: Remove the corresponding prototype.
9713
9714         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
9715
9716         * tree-ssa-dce.c (control_dependence_map,
9717         visited_control_parents): Make them static.
9718
9719         * cfghooks.c (verify_flow_info): Remove local variable
9720         num_bb_notes.
9721
9722         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
9723         last_bb_seen.
9724
9725         * loop-unswitch.c (unswitch_loop): Remove local variable src.
9726
9727 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
9728
9729         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
9730
9731 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
9732
9733         * config/ia64/hpux.h (LINK_SPEC): Add -z.
9734         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
9735         PARALLEL for an empty structure.
9736
9737 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9738
9739         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
9740
9741         * fold-const.c (fold_binary): Unroll the very first "for"
9742         loop.
9743
9744 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
9745
9746         * config/rs6000/predicates.md (branch_comparison_operator): Remove
9747         redundant match_code test.
9748         (scc_comparison_operator): Swap match_operand and match_code
9749         tests.
9750         (branch_positive_comparison_operator): Same.
9751         (trap_comparison_operator): Use comparison_operator and swap with
9752         match_code test.
9753
9754 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9755
9756         PR target/20288
9757         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
9758         (out_movhi_r_mr): Read low byte of volatile MEM first.
9759         (out_movhi_mr_r): Write high byte of volatile MEM first.
9760
9761 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9762
9763         * cselib.c (reg_values, reg_values_size): Make them static.
9764
9765         * cse.c (cse_reg_info_table): Make it static.
9766
9767         * fold-const.c (fold_unary): Use build1 instead of copy_node.
9768
9769 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
9770
9771         * cse.c (find_best_addr): Use canon_for_address.
9772
9773 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9774
9775         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
9776         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
9777         SUBREG and MEM, respectively.
9778
9779         * fold-const.c (fold_binary): Use code instead of t.
9780
9781         * fold-const.c (optimize_minmax_comparison): Take decomposed
9782         arguments code, type, op0, and op1 instead of t.
9783         (fold_binary): Update a call to optimize_minmax_comparison.
9784
9785         * fold-const.c (fold_range_test): Take decomposed arguments
9786         code, type, op0, and op1 instead of t.
9787         (fold_binary): Update a call to fold_range_test.
9788
9789         * fold-const.c (fold_binary_op_with_conditional_arg): Take
9790         decomposed arguments code, type, op0, and op1 instead of t.
9791         (fold_binary): Update a call to fold_range_test.
9792
9793 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9794
9795         * fold-const.c (fold_binary): Avoid directly using the original
9796         expression t as much as possible.
9797
9798 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9799
9800         * c-semantics.c (build_stmt): Use TYPE_P instead of
9801         IS_NON_TYPE_CODE_CLASS.
9802         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
9803         (NON_TYPE_CHECK): Use TYPE_P instead of
9804         IS_NON_TYPE_CODE_CLASS.
9805
9806         * fold-const.c (fold): Remove handling of binary expressions.
9807
9808 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
9809
9810         * doc/c-tree.texi: Wrap comments in @r{}.
9811         * doc/cpp.texi: Likewise.
9812         * doc/cppinternals.texi: Likewise.
9813         * doc/extend.texi: Likewise.
9814         * doc/md.texi: Likewise.
9815         * doc/objc.texi: Likewise.
9816         * doc/sourcebuild.texi: Likewise.
9817         * doc/tm.texi: Likewise.
9818         * doc/tree-ssa.texi
9819
9820 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9821
9822         * predict.c (apply_return_prediction): Standardize PHI chain
9823         walking.
9824         * tree-ssa.c (ssa_redirect_edge): Likewise.
9825
9826         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
9827         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
9828         Update copyright.
9829
9830         * tree-phinodes.c (remove_phi_node): Drop the last argument.
9831         * tree-flow.h: Adjust the prototype for remove_phi_node.
9832         * lambda-code.c (perfect_nestify): Adjust a call to
9833         remove_phi_node.
9834         * tree-cfg.c
9835         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
9836         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
9837         Likewise.
9838         * tree-ssa-dce.c (remove_dead_phis): Likewise.
9839         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
9840         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
9841         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
9842
9843         * combine.c (simplify_and_const_int): Use gen_int_mode instead
9844         of GEN_INT (trunc_int_for_mode (...)).
9845         * loop-iv.c (iv_number_of_iterations): Likewise.
9846         * postreload.c (reload_cse_move2add): Likewise.
9847         * simplify-rtx.c (simplify_const_unary_operation,
9848         simplify_const_binary_operation): Likewise.
9849         * stor-layout.c (get_mode_bounds): Likewise.
9850
9851         * fold-const.c (fold_binary): New.
9852         (fold): Call fold_binary on binary expressions.
9853
9854 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
9855
9856         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
9857         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
9858         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
9859         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
9860         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
9861
9862 2005-03-04  Devang Patel  <dpatel@apple.com>
9863
9864         PR tree-optimization/18815
9865         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
9866         loops with zero exit edges.
9867
9868 2005-03-04  Devang Patel  <dpatel@apple.com>
9869
9870         * doc/invoke.texi: Remove reference to webpage that does not exist.
9871
9872 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
9873             Joseph S. Myers  <joseph@codesourcery.com>
9874
9875         PR c++/19797
9876         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
9877         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
9878         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
9879         * pa.c (get_plabel): Change argument to symbol_ref.  Call
9880         maybe_get_identifier instead of get_identifier.
9881         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
9882         (struct deferred_plabel): Replace name field with symbol field.
9883         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
9884         ASM_OUTPUT_EXTERNAL_REAL is defined.
9885         (output_global_address): Use output_addr_const for output of all
9886         symbol_refs.
9887         (output_deferred_plabels): Use symbol_ref instead of name for address
9888         output.
9889         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
9890         ASM_OUTPUT_SYMBOL_REF): New macros.
9891         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
9892         comment.
9893         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
9894         label.
9895
9896 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
9897
9898         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
9899         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
9900
9901 2005-03-04  Jeff Law  <law@redhat.com>
9902
9903         * basic-block.h (rediscover_loops_after_threading): Declare.
9904         * tree-ssa-dom.c: Include cfgloop.h.
9905         (tree_ssa_dominator_optimize): Discover loops and some basic
9906         properties.  Remove forwarder blocks recreated by loop header
9907         canonicalization.  Also mark backedges in the CFG.
9908         * tree-ssa-threadupdate.c: Include cfgloop.h
9909         (rediscover_loops_after_threading): Define.
9910         (struct local_info): New field, JUMP_THREADED.
9911         (prune_undesirable_thread_requests): New function.
9912         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
9913         then record that fact for the callers of redirct_edges.
9914         (thread_block): If BB has incoming backedges, then call
9915         prune_undesirable_thraed_requests.    Note when we are
9916         going to have to rediscover loop information.  Return a
9917         boolean indicating if any jumps were threaded.
9918         (thread_through_all_blocks): Bubble up boolean indicating
9919         if any jumps were threaded.
9920         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
9921         (tree-ssa-threadupdate.o): Similarly.
9922
9923 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9924
9925         * fold-const.c (fold_ternary): Unroll the "for" loop to
9926         extract operands.
9927
9928 2005-03-04  Andrew Haley  <aph@redhat.com>
9929
9930         * unwind-dw2-fde-glibc.c (struct
9931         unw_eh_callback_data.check_cache): New field.
9932         (frame_hdr_cache): New.
9933         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
9934         Cache frame header info.
9935
9936 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
9937
9938         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
9939         (print_c_condition): Declare.
9940         * read-rtl.c (ptr_loc): New structure.
9941         (ptr_locs, ptr_loc_obstack, joined_conditions)
9942         (joined_conditions_obstack): New variables.
9943         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
9944         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
9945         (join_c_conditions, print_c_condition): New functions.
9946         (apply_macro_to_string): Associate the new string with the same
9947         source location as the old one.
9948         (add_condition_to_string): Use join_c_conditions.
9949         (read_string): Use set_rtx_ptr_loc to record a filename and line
9950         number for the string.
9951         (read_rtx): Initialize the new variables above.
9952         * genattrtab.c (write_test_expr, write_attr_value): Use
9953         print_c_condition.
9954         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
9955         comment above the GCC_VERSION check.
9956         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
9957         Inline the definition of MAYBE_EVAL.
9958         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
9959         * genoutput.c (process_template): Likewise.
9960         * genpreds.c (write_predicate_subfunction): Likewise.
9961         (write_predicate_expr): Use print_c_condition.
9962         * genrecog.c (write_cond): Likewise.
9963         * gensupport.c (process_rtx): Use join_c_conditions to join the
9964         conditions of a define_insn_and_split.  Record a source location
9965         for the string after the "&&".
9966         (alter_test_for_insn): Use join_c_conditions.
9967
9968 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
9969
9970         Revert for now:
9971         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
9972         PR tree-optimization/15784
9973         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
9974         and -1 - A to ~A.
9975
9976 2005-03-04  Ben Elliston  <bje@au.ibm.com>
9977
9978         * gcc.c (option_map): Add --coverage.
9979         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
9980         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
9981         * config/darwin.h: Pass -lgcov for `coverage'.
9982         * doc/invoke.texi (Debugging Options): Document --coverage.
9983
9984 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9985
9986         * gcse.c (bypass_block): Use find_edge wherever possible.
9987
9988 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
9989
9990         Fix PR debug/20253
9991
9992         * c-opts.c (c_common_parse_file): Call start_source_file
9993         and end_source_file at the approriate times.
9994
9995         * dwarf2out.c (dwarf2out_finish): Don't auto-end
9996         the main file, it will be done for us now.
9997
9998 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9999
10000         * fold-const.c (fold_ternary): New.
10001         (fold): Call fold_ternary on ternary expressions.  Remove
10002         handling of ternary expressions.
10003
10004 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
10005
10006         PR tree-optimization/15784
10007         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
10008         and -1 - A to ~A.
10009
10010 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
10011
10012         * config/rs6000/predicates.md (branch_comparison_operator):
10013         Convert from C block to conditional format.
10014
10015 2005-03-03  Jan Hubicka  <jh@suse.cz>
10016
10017         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
10018         and non-constant public variables.
10019
10020 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10021
10022         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
10023         with LABEL_EXPR.
10024
10025         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
10026         EDGE_I.
10027
10028         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
10029         calls to release_ssa_name and release_phi_node.
10030
10031         * fold-const.c (fold): Remove handling of unary expressions.
10032
10033         * fold-const.c (fold_unary): Avoid directly using the original
10034         expression t as much as possible.
10035
10036 2005-03-03  Roger Sayle  <roger@eyesopen.com>
10037             Andrew Pinski  <pinskia@physics.uc.edu>
10038
10039         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
10040         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
10041
10042 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
10043
10044         Describe special registers SRP and MOF as allocatable registers.
10045         * config/cris/cris.c (cris_md_asm_clobbers): New function.
10046         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
10047         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
10048         TARGET_HAS_MUL_INSNS.
10049         (cris_print_operand) <case 'd'>: New case.
10050         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
10051         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
10052         define.
10053         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
10054         (REG_ALLOC_ORDER): Update for MOF.
10055         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
10056         SPECIAL_REGS.
10057         (GENERAL_REGS): No longer a define of ALL_REGS.
10058         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
10059         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
10060         Adjust accordingly.
10061         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
10062         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
10063         (SECONDARY_RELOAD_CLASS): Define.
10064         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
10065         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
10066         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
10067         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
10068         (REGISTER_MOVE_COST): Define.
10069         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
10070         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
10071         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
10072         (CRIS_MOF_REGNUM): New define_constants.
10073         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
10074         special registers.
10075         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
10076         New patterns.
10077         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
10078         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
10079         Adjust for MOF being properly described as a register.
10080         (indir_to_reg_split): Name this split.  Conditionalize on the
10081         destination register being a general register.
10082         (movei): Conditionalize on on operands 0 and 1 having the same
10083         register class.
10084
10085 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
10086
10087         PR target/20277
10088         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
10089         -mcpu to override any other explicitly given flags.
10090
10091 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
10092
10093         * recog.c (verify_changes, confirm_change_group): New functions,
10094         broken out of apply_change_group.
10095         (apply_change_group): Use them.
10096         * recog.h (verify_change, confirm_change_group): Declare.
10097         * rtl.h (redirect_jump_2): Declare.
10098         * jump.c (redirect_exp, invert_exp): Delete.
10099         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
10100         (redirect_jump_2): New function, broken out of redirect_jump.
10101         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
10102         (invert_jump): Use invert_jump_1 and redirect_jump_2.
10103         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
10104
10105 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
10106
10107         * varasm.c (named_section): Use xstrdup rather than doing it by
10108         hand.
10109
10110         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
10111
10112 2005-03-02  Devang Patel  <dpatel@apple.com>
10113
10114         Undo PR tree-optimization/18815 fix.
10115
10116 2005-03-02  Devang Patel  <dpatel@apple.com>
10117
10118         PR tree-optimization/18815
10119         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
10120         loops with zero exit edges.
10121
10122 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10123
10124         * cfg.c (connect_src, connect_dest, disconnect_src,
10125         disconnct_dest): New.
10126         (unchecked_make_edge, remove_edge, redirect_edge_succ,
10127         redirect_edge_pred): Use the new functions.
10128
10129         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
10130         free_dominance_info only when needed.
10131
10132 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
10133
10134         PR target/20276
10135         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
10136         (reg_or_sub_cint64_operand): Same.
10137
10138 2005-03-02  Jeff Law  <law@redhat.com>
10139
10140         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
10141         CFG_ALTERED in the main DOM iteration loop.
10142
10143 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
10144
10145         PR c++/19916
10146         * varasm.c (initializer_constant_valid_p): Allow conversions
10147         between OFFSET_TYPEs.  Tidy.
10148
10149 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
10150
10151         * config/cris/cris.md ("return"): Remove epilogue delay list
10152         sanity check.
10153
10154 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
10155
10156         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
10157         for Thumb.
10158         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
10159
10160 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10161
10162         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
10163         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
10164         config/m68k/m68k.c, config/mips/mips.h,
10165         config/rs6000/rs6000-protos.h, doc/contrib.texi,
10166         doc/include/gcc-common.texi: Update copyright.
10167
10168         PR middle-end/18029 and PR middle-end/18030
10169         * expr.c (optimize_bitfield_assignment_op): Add a special case
10170         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
10171
10172         * fold-const.c (fold_unary): New.
10173         (fold): Call fold_unary on unary expressions.
10174
10175 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
10176
10177         * cgraph.h (struct cgraph_edge): Add prev_caller and
10178         prev_callee fields.
10179         (cgraph_node_remove_callees): Export.
10180         * cgraph.c (cgraph_create_edge): Initialize prev_caller
10181         and prev_callee.
10182         (cgraph_edge_remove_callee): New function.
10183         (cgraph_edge_remove_caller): Likewise.
10184         (cgraph_remove_edge): Use.
10185         (cgraph_redirect_edge_callee): Likewise.
10186         (cgraph_node_remove_callees): New function.
10187         (cgraph_node_remove_callers): Likewise.
10188         (cgraph_remove_node): Use.
10189         * tree-optimize.c (tree_rest_of_compilation): Use
10190         cgraph_node_remove_callees instead of manual loop.
10191         * cgraphunit.c (cgraph_finalize_function): Likewise.
10192         (cgraph_expand_function): Likewise.
10193         (cgraph_remove_unreachable_nodes): Likewise.
10194
10195 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
10196
10197         PR c/8927
10198         * c-tree.h (undeclared_variable, build_external_ref): Add extra
10199         argument.
10200         * c-decl.c (undeclared_variable): Take location as argument.
10201         * c-typeck.c (build_external_ref): Likewise.
10202         * c-parser.c (c_parser_postfix_expression): Pass location of
10203         identifier to build_external_ref.
10204
10205 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
10206
10207         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
10208         CCEQ mode for branch_positive_comparison_operator test.
10209         * config/rs6000/predicates (branch_comparison_operator): Revert to
10210         define_predicate.
10211         (scc_comparison_operator): Same.
10212         (branch_positive_comparison_operator): Same.
10213
10214 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
10215
10216         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
10217         (cris_delay_slots_for_epilogue): Remove.
10218         (save_last): Move into cris_target_asm_function_epilogue.
10219         (cris_target_asm_function_epilogue): Remove tests for file being
10220         NULL.
10221         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
10222         (cris_delay_slots_for_epilogue): Remove prototypes.
10223         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
10224         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
10225
10226 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
10227
10228         * config/rs6000/predicates.md (branch_comparison_operator): Change
10229         to define_special_predicate.
10230         (scc_comparison_operator): Same.
10231         (branch_positive_comparison_operator): Same.
10232
10233 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
10234
10235         * Makefile.in (tree-ssa-sink.o): New.
10236         (OBJS-common): Add tree-ssa-sink.o.
10237         * common.opt: Add -ftree-sink
10238         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
10239         * timevar.def (TV_TREE_SINK): new timevar.
10240         * tree-flow.h (is_hidden_global_store): Prototype.
10241         * tree-optimize.c (init_tree_optimization_passes): Add
10242         pass_sink_code.
10243         * tree-pass.h (pass_sink_code): New.
10244         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
10245         for non-obvious global store store to is_hidden_global_store, and
10246         call that new function.
10247         * tree-ssa-sink.c: New file.
10248         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
10249         * doc/passes.texi: Document forward store motion.
10250         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
10251         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
10252         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
10253         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
10254
10255 2005-03-01  Per Bothner  <per@bothner.com>
10256
10257         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
10258         and we have a non-zero column-number, add it to the message.
10259         Also factor out the diagnostic_kind_text.
10260
10261 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
10262
10263         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
10264         flow_loop_pre_header_scan, flow_loop_pre_header_find,
10265         flow_loop_scan): Removed.
10266         (flow_loop_dump): Do not dump removed fields.
10267         (flow_loop_free): Do not free removed fields.
10268         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
10269         (loop_exit_edge_p): New function.
10270         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
10271         num_pre_header_edges, entry_edges, num_entries, exit_edges,
10272         num_exits, exits_doms.
10273         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
10274         LOOP_EDGES, LOOP_ALL): Removed.
10275         (flow_loop_scan): Declaration removed.
10276         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
10277         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
10278         flow_loops_find.
10279         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
10280         (if_convert): Call flow_loops_find and flow_loops_free
10281         when calling mark_loop_exit_edges.
10282         * cfgloopanal.c (mark_loop_exit_edges): Moved from
10283         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
10284         free_dominance_info calls.
10285         * loop-init.c (flow_loops_find): Ditto.
10286         * passes.c (rest_of_handle_branch_prob): Ditto.
10287         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
10288         * loop-unroll.c (analyze_insns_in_loop): Do not use
10289         EDGE_LOOP_EXIT.
10290         * predict.c (predict_loops): Do not call flow_loop_scan.
10291         Use get_loop_exit_edges.
10292         (tree_estimate_probability): Do not pass flags to flow_loops_find.
10293         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
10294         Do not use EDGE_LOOP_EXIT.
10295         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
10296         to bb_with_exit_edge_p.
10297         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
10298         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
10299         to bb_with_exit_edge_p.
10300         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
10301         EDGE_LOOP_EXIT.
10302         * tree-loop-linear.c (linear_transform_loops): Do not call
10303         flow_loop_scan.  Use loop->single_exit.
10304         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
10305         (vect_analyze_loop_form): Do not call flow_loop_scan.
10306         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
10307         loop->single_exit.
10308         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
10309         loop->single_exit.
10310         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
10311         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
10312         slpeel_tree_duplicate_loop_to_edge_cfg,
10313         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
10314         Use loop_preheader_edge and loop->single_exit.  Do not call
10315         flow_loop_scan.
10316
10317 2005-03-01  Nick Clifton  <nickc@redhat.com>
10318
10319         * config/arm/arm.c (thumb_find_work_register): Check all of the
10320         argument registers to see if they are free, and a couple of
10321         special cases where the last argument register but can be proved
10322         to be available during the function's prologue.
10323         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
10324         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
10325         thumb_unexpanded_epilogue): Use unsigned long as the type for the
10326         register bit-mask.
10327         (thumb_compute_save_reg_mask): Likewise.  Also use
10328         thumb_find_work_register() to ensure that there is agreement about
10329         which work register is going to be used in the prologue.
10330         (thumb_output_function_prologue): Use unsigned long as the type
10331         for the register bit-mask.  Also delay pushing the link register if
10332         other high registers are going to be pushed.
10333         (thumb_compute_save_reg_mask, emit_multi_reg_push,
10334         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
10335         redundant prototypes.
10336
10337 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
10338
10339         PR target/19819
10340         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
10341         and after reload in REG+REG indexed addresses without REG_POINTER
10342         set in the base and not set in the index.
10343
10344 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
10345
10346         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
10347         Don't undefine here.
10348         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
10349         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
10350         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
10351         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
10352         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
10353         Delete.
10354         * config.gcc (sh*-*-linux*): Use config/linux.h.
10355
10356 2005-02-28  Dale Johannesen  <dalej@apple.com>
10357             Stan Shebs  <shebs@apple.com>
10358
10359         Rewrite of 64-bit Darwin structure-by-value pass/return.
10360         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
10361         intoffset, use_stack, named.
10362         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
10363         (rs6000_darwin64_record_arg_advance_flush):  New.
10364         (rs6000_darwin64_record_arg_advance_recurse): New.
10365         (rs6000_darwin64_record_arg_flush):  New.
10366         (rs6000_darwin64_record_arg_recurse):  New.
10367         (rs6000_darwin64_record_arg):  New.
10368         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
10369         (function_arg_boundary):  Handle 128-bit aligned structs.
10370         (function_arg_advance):  Rewrite darwin64 struct handling.
10371         (function_arg):  Call rs6000_darwin64_record_arg.
10372         (function_arg_partial_nregs):  Handle darwin64 structs.
10373         (rs6000_darwin64_function_value):  Remove.
10374         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
10375
10376 2005-02-28  Roger Sayle  <roger@eyesopen.com>
10377
10378         PR tree-optimization/20216
10379         * tree-chrec.c (tree_fold_factorial): Delete.
10380         (tree_fold_binomial): Change argument list to take a return type
10381         and change the type of K to unsigned int.  Rewrite to avoid explicit
10382         evaluation of factorials, and (recursively) calling fold to perform
10383         compile-time arithmetic.  Return NULL on (internal) overflow.
10384         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
10385         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
10386         if any intermediate calculation overflows.
10387         (chrec_apply): Update call to chrec_evaluate.
10388
10389 2005-02-28  James E Wilson  <wilson@specifixinc.com>
10390
10391         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
10392
10393 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
10394
10395         PR c/20245
10396         * c-parser.c (c_parser_compound_statement): Return error_mark_node
10397         instead of NULL_TREE on error.
10398
10399 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
10400
10401         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
10402         (EASY_VECTOR_15_ADD_SELF): Remove.
10403         (num_insns_constant_wide): Not static.
10404         (validate_condition_mode): Not static.
10405         (toc_relative_expr_p): Not static.
10406         (legitimate_indirect_address_p): Not static.
10407         (macho_lo_sum_memory_operand): Not static.
10408         (invalid_e500_subreg): Not static.
10409         (easy_vector_same): Not static.
10410         (easy_vector_splat_const): Not static.
10411         (RS6000_SYMBOL_REF_TLS_P): Remove.
10412         (any_operand): Delete.
10413         (any_parallel_operand): Delete.
10414         (count_register_operand): Delete.
10415         (altivec_register_operand): Delete.
10416         (xer_operand): Delete.
10417         (s8bit_cint_operand): Delete.
10418         (short_cint_operand): Delete.
10419         (u_short_cint_operand): Delete.
10420         (non_short_cint_operand): Delete.
10421         (exact_log2_cint_operand): Delete.
10422         (gpc_reg_operand): Delete.
10423         (cc_reg_operand): Delete.
10424         (cc_reg_not_cr0_operand): Delete.
10425         (reg_or_short_operand): Delete.
10426         (reg_or_neg_short_operand): Delete.
10427         (reg_or_aligned_short_operand): Delete.
10428         (reg_or_u_short_operand): Delete.
10429         (reg_or_cint_operand): Delete.
10430         (reg_or_arith_cint_operand): Delete.
10431         (reg_or_add_cint64_operand): Delete.
10432         (reg_or_sub_cint64_operand): Delete.
10433         (reg_or_logical_cint_operand): Delete.
10434         (got_operand): Delete.
10435         (got_no_const_operand): Delete.
10436         (easy_fp_constant): Delete.
10437         (easy_vector_constant): Delete.
10438         (easy_vector_constant_add_self): Delete.
10439         (zero_constant): Delete.
10440         (zero_fp_constant): Delete.
10441         (volatile_mem_operand): Delete.
10442         (offsettable_mem_operand): Delete.
10443         (mem_or_easy_const_operand): Delete.
10444         (add_operand): Delete.
10445         (non_add_cint_operand): Delete.
10446         (logical_operand): Delete.
10447         (non_logical_cint_operand): Delete.
10448         (mask_operand): Delete.
10449         (mask_operand_wrap): Delete.
10450         (mask64_operand): Delete.
10451         (mask64_2_operand): Delete.
10452         (and64_operand): Delete.
10453         (and64_2_operand): Delete.
10454         (and_operand): Delete.
10455         (reg_or_mem_operand): Delete.
10456         (lwa_operand): Delete.
10457         (symbol_ref_operand): Delete.
10458         (call_operand): Delete.
10459         (current_file_function_operand): Delete.
10460         (input_operand): Delete.
10461         (rs6000_nonimmediate_operand): Delete.
10462         (rs6000_tls_symbol_ref): Delete.
10463         (save_world_operation): Delete.
10464         (restore_world_operation): Delete.
10465         (load_multiple_operation): Delete.
10466         (store_multiple_operation): Delete.
10467         (vrsave_operation): Delete.
10468         (mfcr_operation): Delete.
10469         (mtcrf_operation): Delete.
10470         (lmw_operation): Delete.
10471         (stmw_operation): Delete.
10472         (branch_comparison_operator): Delete.
10473         (branch_positive_comparison_operator): Delete.
10474         (scc_comparison_operator): Delete.
10475         (trap_comparison_operator): Delete.
10476         (boolean_operator): Delete.
10477         (boolean_or_operator): Delete.
10478         (min_max_operator): Delete.
10479         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
10480         (EASY_VECTOR_15): Moved to here.
10481         (EASY_VECTOR_15_ADD_SELF): Move to here.
10482         (PREDICATE_CODES): Delete.
10483         * config/rs6000/rs6000-protos.h: Delete predicate functions.
10484         Declare functions no longer static.
10485         * config/rs6000/predicates.md: New.
10486         * config/rs6000/rs6000.md: Include predicates.md
10487
10488 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10489
10490         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
10491         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
10492         REG_ALWAYS_RETURN.
10493         * cfgrtl.c (need_fake_edge_p): Likewise.
10494         * combine.c (distribute_notes): Likewise.
10495         * emit-rtl.c (try_split): Likewise.
10496         * recog.c (peephole2_opimize): Likewise.
10497         * reg-notes.def (ALWAYS_RETURN): Remove.
10498         * rtl.h (LCT_ALWAYS_RETURN): Remove.
10499         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
10500         * tree.h (ECF_ALWAYS_RETURN): Remove.
10501
10502 2005-02-28  Roger Sayle  <roger@eyesopen.com>
10503
10504         PR middle-end/19874
10505         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
10506         between different machine modes is never a "useless" conversion.
10507
10508 2005-02-28  Geert Bosch  <bosch@gnat.com>
10509
10510         PR ada/15977
10511         * doc/contrib.texi: List contributors for Ada front end
10512
10513 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
10514
10515         * simplify-rtx.c (simplify_unary_operation_1,
10516         simplify_const_unary_operation): New, extracted from...
10517         (simplify_unary_operation): ... this one.
10518         (simplify_binary_operation_1,
10519         simplify_const_binary_operation): New, extracted from...
10520         (simplify_binary_operation): ... this one.
10521         * rtl.h (simplify_const_unary_operation,
10522         simplify_const_binary_operation): Add prototypes.
10523
10524 2005-02-28  Julian Brown  <julian@codesourcery.com>
10525
10526         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
10527         building libjava and caused PR regression/20228.
10528
10529 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
10530
10531         PR bootstrap/17383
10532         * Makefile.in (host_subdir): New.
10533         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
10534         * configure: Regenerate.
10535
10536 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
10537
10538         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
10539         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
10540         installation directory first.
10541
10542 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
10543
10544         PR target/19065.
10545         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
10546         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
10547         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
10548         * config/cris/cris.md: Tweak comments referring to Q.
10549         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
10550         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
10551         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
10552         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
10553         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
10554         Insert spaces in constraints to align alternatives vertically for
10555         readability.
10556         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
10557         operand 1: "M".
10558
10559 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10560
10561         PR rtl-optimization/17728
10562         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
10563         operand 0 from general_operand to move_dest_operand.
10564
10565 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10566
10567         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
10568         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
10569         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
10570         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
10571
10572 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
10573
10574         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
10575         * configure: Regenerate.
10576         * libada-mk.in: Remove CC; rename
10577         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
10578
10579 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
10580
10581         PR tree-opt/20188
10582         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
10583         for the lhs, also walk over the tree.  Likewise for rhs.
10584
10585 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
10586
10587         * tree-ssa-dom.c (simple_iv_increment_p): New function.
10588         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
10589         Do not propagate value of iv before increment over the increment.
10590
10591 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
10592
10593         * c-parser.c: New file.
10594         * c-parse.in: Remove.
10595         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
10596         Remove.
10597         (c-parser.o): Add dependencies.
10598         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
10599         maintainer-clean, TAGS): Update.
10600         * c-config-lang.in (gtfiles): Update.
10601         * gengtype-lex.l: Don't handle "@@".
10602         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
10603         objc_build_synchronized, objc_begin_try_stmt,
10604         objc_begin_catch_clause, objc_finish_catch_clause,
10605         objc_build_finally_clause, objc_finish_try_stmt): New.
10606         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
10607         type_seen_p.
10608         (c_parse_init): Update comment.
10609         * c-decl.c (c_init_decl_processing): Update comment.
10610         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
10611         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
10612         new c_declspecs members.
10613
10614 2005-02-25  Julian Brown  <julian@codesourcery.com>
10615
10616         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
10617         from being used for symbols with vague linkage when
10618         HAVE_GAS_COMDAT_GROUP is true.
10619
10620 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
10621
10622         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
10623
10624 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
10625
10626         PR target/19930
10627         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
10628         (LIBGCC2_HAS_DF_MODE): New.
10629         (LIBGCC2_HAS_XF_MODE): New.
10630         (LIBGCC2_HAS_TF_MODE): New.
10631         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
10632         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
10633         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
10634         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
10635         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
10636         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
10637         and add _fixtfdi, _fixunstfdi, _floatditf
10638         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
10639         L_fixunstfdi, L_floatditf.
10640         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
10641         (LIBGCC2_HAS_TF_MODE): Define.
10642
10643 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
10644
10645         PR tree-optimization/20204
10646         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
10647         REWRITE_THIS_STMT markers on PHI nodes.
10648         (rewrite_initialize_block): Likewise.
10649
10650 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
10651
10652         * version.c (version_string): Update to 4.1.
10653
10654 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
10655
10656         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
10657         Clarify that the alternative way doesn't work in GNU C++.
10658
10659 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
10660
10661         PR tree-optimization/19937
10662         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
10663         to the type of the induction variable.
10664
10665 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
10666
10667         PR rtl-optimization/20117
10668         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
10669         the block including noncopyable insn.
10670
10671 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10672
10673         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
10674         calls to find_reg_note.
10675
10676 2005-02-24  Richard Henderson  <rth@redhat.com>
10677
10678         PR tree-opt/20127
10679         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
10680         the type.
10681
10682 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
10683
10684         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
10685         vector types if to use base reg for misaligned non-word ld/std.
10686
10687 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
10688
10689         PR target/14619
10690         * config/cris/cris.c (cris_target_asm_function_prologue): Create
10691         dwarf2 label manually and put it after, not before the prologue.
10692
10693 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
10694
10695         PR target/19019
10696         * reload.c (operands_match_p): Only increment register number for
10697         SCALAR_INT_MODE_P modes in multiple hard registers.
10698
10699         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
10700         Fix formatting.
10701
10702 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10703
10704         * ChangeLog.5: Fix log message typo(s).
10705         * ChangeLog.7: Likewise.
10706         * ChangeLog.tree-ssa: Likewise.
10707         * cfgexpand.c: Fix comment typo(s).
10708         * conflict.c: Likewise.
10709         * defaults.h: Likewise.
10710         * dwarf2out.c: Likewise.
10711         * gcse.c: Likewise.
10712         * ggc-page.c: Likewise.
10713         * tree-eh.c: Likewise.
10714         * tree-ssa-dom.c: Likewise.
10715
10716 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
10717
10718         PR target/19019
10719         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
10720         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
10721         if SHARED is defined.
10722
10723         PR target/20196
10724         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
10725         allow splitting only if operands 0 and 3 don't overlap.
10726
10727 2005-02-24  Richard Henderson  <rth@redhat.com>
10728
10729         PR middle-end/19953
10730         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
10731         (fold_builtin_1): Call them.
10732         * fold-const.c (fold_complex_mult_parts): Split out from ...
10733         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
10734         (fold_complex_div_parts, fold_complex_div): New.
10735         (fold): Use them.
10736         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
10737
10738 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10739
10740         * tree-ssa-ccp.c (visit_assignment): Verify that result of
10741         VIEW_CONVERT_EXPR is_gimple_min_invariant.
10742
10743         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
10744         (print_node): Likewise.
10745         Print TYPE_SIZES_GIMPLIFIED.
10746
10747 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
10748
10749         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
10750         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
10751         operands as commutative in constraints.
10752
10753 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
10754
10755         * tree-into-ssa.c: Re-organize internal functions.
10756
10757 2005-02-24  Richard Henderson  <rth@redhat.com>
10758
10759         PR middle-end/18902
10760         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
10761         for c99.
10762         * common.opt (fcx-limited-range): New.
10763         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
10764         * toplev.c (flag_complex_method): Initialize to 1.
10765         (process_options): Set flag_complex_method to 0 if
10766         flag_cx_limited_range.
10767         * doc/invoke.texi (-fcx-limited-range): New.
10768
10769 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10770
10771         * cse.c (delete_trivially_dead_insns): Speed up by using
10772         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
10773         prev_real_insn.
10774
10775 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
10776
10777         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
10778         functions when -mid-shared-library is being used.
10779
10780 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
10781
10782         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
10783         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
10784         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
10785         * system.h: Poison LINK_LIBGCC_SPECIAL.
10786
10787 2005-02-23  James E Wilson  <wilson@specifixinc.com>
10788
10789         * gengtype.c (note_insn_name): Make 1 element larger.
10790
10791 2005-02-23  Roger Sayle  <roger@eyesopen.com>
10792
10793         PR target/20018
10794         PR rtl-optimization/20097
10795         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
10796         BImode SUBREGs of SImode registers which confuse the ia64 backend.
10797
10798 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
10799
10800         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
10801         * t-aix52 (SHLIB_INSTALL): Same.
10802
10803 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10804
10805         * genpreds.c: Update copyright.
10806
10807 2005-02-23  Michael Beach  <michaelb@ieee.org>
10808
10809         PR target/20159
10810         * config/sparc/t-elf (startup files): Assemble with CPP.
10811
10812 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
10813
10814         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
10815         (write_predicate_expr): Likewise.
10816
10817 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
10818
10819         PR tree-optimization/20100
10820         PR tree-optimization/20115
10821         * tree-optimize.c (init_tree_optimization_passes): Remove
10822         pass_maybe_create_global_var.
10823         * tree-pass.h (pass_maybe_create_global_var): Remove.
10824         * tree-ssa-alias.c (aliases_computed_p): Declare.
10825         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
10826         (count_calls_and_maybe_create_global_var): Remove.
10827         (pass_maybe_create_global_var): Remove.
10828         (init_alias_info): Do not declare aliases_computed_p.
10829         (maybe_create_global_var): If the function contains no
10830         call-clobbered variables and a mix of pure/const and regular
10831         function calls, create .GLOBAL_VAR.
10832         Mark all call-clobbered variables for renaming.
10833         (merge_pointed_to_info): Update comment.
10834         (add_pointed_to_var): Likewise.
10835         (is_escape_site): Likewise.
10836         Accept struct alias_info * instead of size_t *.
10837         Update all users.
10838         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
10839         as necessary.
10840         * tree-ssa-operands.c (get_call_expr_operands): If
10841         ALIASES_COMPUTED_P is false, do not add call-clobbering
10842         operands.
10843         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
10844         (delete_tree_ssa): Likewise.
10845
10846 2005-02-22  James E Wilson  <wilson@specifixinc.com>
10847
10848         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
10849         (do_compile): Do call it here.
10850
10851 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
10852
10853         PR rtl-optimization/20017.
10854         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
10855         rest_of_handle_cse2, rest_of_handle_gcse): Call
10856         delete_dead_jumptables immediately before calling cleanup_cfg.
10857
10858 2005-02-22  Devang Patel  <dpatel@apple.com>
10859
10860         PR 19952
10861         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
10862         all labels
10863
10864 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
10865
10866         * config/rs6000/aix.h (WINT_TYPE): Define.
10867
10868 2005-02-22  Stan Shebs  <shebs@apple.com>
10869
10870         * config/rs6000/rs6000.c (rs6000_override_options): Default to
10871         natural alignment for 64-bit Darwin.
10872         (rs6000_parse_alignment_option): Warn about uses of -malign-power
10873         on 64-bit Darwin.
10874         * doc/invoke.texi: Document this.
10875
10876 2005-02-22  DJ Delorie  <dj@redhat.com>
10877
10878         * c-common.c (c_common_type_for_mode): Pass the mode's precision
10879         to make_[un]signed_type, not the mode itself.
10880
10881 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
10882
10883         * cfg.c (cached_make_edge): Call make_edge if edge cache is
10884         not available.  Use tail calls wherever possible.
10885         (make_edge): Call unchecked_make_edge to create an edge.
10886
10887         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
10888         (coalesce_ssa_name): Don't check for
10889         SSANORM_USE_COALESCE_LIST.
10890         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
10891
10892 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
10893
10894         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
10895         (rewrite_into_ssa): ... here.
10896
10897 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
10898
10899         PR tree-optimization/19786
10900         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
10901         tag to another's may-alias bitmap when adding to the other's list.
10902
10903 2005-02-21  DJ Delorie  <dj@redhat.com>
10904
10905         * tree-ssa-loop-ivopts.c (computation_cost): Start register
10906         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
10907         registers in unsupported ways.
10908         * expmed.c (init_expmed): Likewise.
10909
10910 2005-02-21  Stan Cox  <scox@redhat.com>
10911
10912         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
10913
10914 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
10915
10916         * tree-cfg.c (fold_cond_expr_cond): New.
10917         (make_edges): Call fold_cond_expr_cond.
10918         (find_taken_edge): Accept nothing but INTEGER_CST.
10919         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
10920         and 1.
10921         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
10922
10923         * flow.c (delete_dead_jumptables): Speed up by scanning insns
10924         that do not belong to any basic block.
10925
10926 2005-02-21  Jeff Law  <law@redhat.com>
10927
10928         * cfganal.c (find_unreachable_blocks): Manually CSE load of
10929         e->dest.
10930
10931 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
10932
10933         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
10934         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
10935         Adjust their definitions.
10936         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
10937         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
10938
10939         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
10940         genautomata.c, langhooks.c, langhooks.h, system.h,
10941         config/arm/lib1funcs.asm: Update copyright.
10942
10943 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
10944
10945         * dbxout.c (dbxout_function_end): Emit Lscope label always.
10946
10947 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
10948
10949         PR bootstrap/13770
10950         * doc/install.texi: Document --with-gc.
10951
10952 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
10953
10954         * simplify-rtx.c (simplify_unary_operation): Add a missing
10955         "break" statement.
10956
10957 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
10958
10959         PR tree-optimization/18663
10960         * tree-ssa-dom.c (extract_range_from_cond): Return 0
10961         if the type has variable bounds.
10962
10963 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10964
10965         * gcse.c: Remove an obsolete comment.
10966
10967         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
10968
10969 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
10970
10971         * doc/extend.texi (Function Attributes) <Attribute const>: The
10972         attribute "pure" is below this text, not above.
10973
10974 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10975
10976         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
10977         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
10978         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
10979
10980 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
10981
10982         PR 18785
10983         * langhooks.h (struct lang_hooks): Add to_target_charset.
10984         * langhooks.c (lhd_to_target_charset): New function.
10985         * langhooks-def.h: Declare lhd_to_target_charset.
10986         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
10987         (LANG_HOOKS_INITIALIZER): Update.
10988         * c-common.c (c_common_to_target_charset): New function.
10989         * c-common.h: Declare it.
10990         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
10991         c_common_to_target_charset.
10992
10993         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
10994         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
10995         Delete definitions.
10996         * system.h: Poison them.
10997         * doc/tm.texi: Don't discuss them.
10998         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
10999         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
11000         (pp_c_char): Do not attempt to generate letter escapes for
11001         newline, tab, etc.
11002         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
11003         * config/mips/mips.c (mips_output_ascii): Likewise.
11004
11005 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
11006
11007         PR tree-optimization/19951
11008         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
11009         is abnormal.
11010
11011 2005-02-19  Steven Bosscher  <stevenb@suse.de>
11012
11013         PR middle-end/19698
11014         * function.h (struct function): New field `max_loop_depth'.
11015         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
11016         (flow_loops_find): Reset the max loop depth count before finding loops.
11017         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
11018         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
11019         (calculate_global_regs_live): Make sure the loop will terminate
11020         when the initial sets are not empty.
11021
11022 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
11023
11024         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
11025         object inside.
11026         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
11027
11028 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
11029
11030         PR other/19525
11031         * doc/invoke.texi: Remove documentation of %M spec.
11032         * gcc.c: Likewise.
11033         (init_spec): Remove %M suffix from -lgcc_s.
11034         (do_spec_1): Remove 'M' case.
11035         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
11036         to put shared libraries in the multilib directory.  Remove the
11037         shlib_so_soname substitution variable.  Don't add a multilib encoding
11038         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
11039         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
11040         SHLIB_INSTALL as well as SHLIB_LINK.
11041         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
11042         (SHLIB_NAME): Delete.
11043         (SHLIB_DIR): New macro.
11044         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
11045         (SHLIB_INSTALL): Adjust accordingly.
11046         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
11047         * config/t-slibgcc-sld: Likewise.
11048         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
11049         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
11050         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
11051         in $(SHLIB_DIR).
11052         (SHLIBUNWIND_INSTALL): Adjust accordingly.
11053         * config/i386/t-nwld (SHLIB_SONAME): Delete.
11054         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
11055         Use @shlib_base_name@ instead of @shlib_so_name@.
11056         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
11057         and @shlib_base_name@.so in @multilib_dir@.
11058         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
11059         to the install path.
11060         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
11061         (SHLIB_LINK): Remove previous workaround.
11062         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
11063         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
11064         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
11065         the install path.
11066         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
11067         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
11068         (SHLIB_INSTALL): Adjust accordingly.
11069         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
11070         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
11071         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
11072         config/t-slibgcc-elf-ver.
11073
11074 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
11075             Jakub Jelinek  <jakub@redhat.com>
11076
11077         PR tree-optimization/19828
11078         * tree-ssa-loop-im.c: Add a TODO comment.
11079         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
11080         without side-effects.
11081
11082 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
11083
11084         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
11085         call fold_convert.
11086
11087 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
11088
11089         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
11090         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
11091         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
11092         functions.
11093         (ia64_reorg): Delete fixup_errata call.
11094         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
11095         (TARGET_SWITCHES): Delete -mb-step entry.
11096
11097 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
11098
11099         PR c/20043
11100         * c-typeck.c (composite_type): Handle quals in transparent unions.
11101         (type_lists_compatible_p): Likewise.
11102
11103 2005-02-18  Stan Shebs  <shebs@apple.com>
11104
11105         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
11106         expressions in the .literal8 section.
11107
11108 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
11109
11110         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
11111
11112 2005-02-18  Roger Sayle  <roger@eyesopen.com>
11113
11114         * fold-const.c (constant_boolean_node): Always create values of the
11115         specified type, don't bother calling truthvalue_conversion.
11116
11117 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
11118
11119         * except.c (output_function_exception_table): Call
11120         assemble_external_libcall (eh_personality_libfunc).
11121
11122 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
11123
11124         PR target/19886
11125         * config/ia64/ia64.h (struct machine_function): Add state_num.
11126         * config/ia64/ia64.c (process_epilogue,
11127         process_for_unwind_directive): Use new unwind state numbers each
11128         time rather than state 1.
11129
11130 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11131
11132         PR target/20054
11133         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
11134         before the "*llgt_didi" pattern.
11135
11136 2005-02-18  Jason Merrill  <jason@redhat.com>
11137
11138         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
11139
11140 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
11141
11142         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
11143         (div0): Use it in place of ARM_FUNC_ALIAS.
11144         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
11145
11146 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
11147
11148         PR middle-end/20030
11149         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
11150         access, the lower bound of the array type if it exists.
11151
11152 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
11153
11154         PR c++/20008
11155         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
11156         cases that are out-of-range for the index type.
11157
11158 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
11159
11160         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
11161         (estimate_case_costs): Don't call convert.
11162         * expmed.c (expand_shift): Likewise.
11163         (make_tree): Call fold_convert instead of convert.
11164
11165 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
11166
11167         PR c++/19813
11168         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
11169         that ref to be marked MEM_READONLY_P doesn't have base that needs
11170         constructing.
11171
11172 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
11173
11174         * genautomata.c (output_get_cpu_unit_code_func,
11175         output_cpu_unit_reservation_p): Don't generate old-style function
11176         definitions.
11177
11178 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
11179
11180         PR c++/20023
11181         PR tree-optimization/20009
11182         * convert.c (convert_to_integer): Revert 2005-02-16 change.
11183
11184         PR tree-optimization/18947
11185         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
11186         inline, remove all nodes that are inlined into the extern inline
11187         being redefined.
11188
11189 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11190
11191         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
11192         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
11193         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
11194         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
11195         Update copyright.
11196
11197 2005-02-17  Roger Sayle  <roger@eyesopen.com>
11198
11199         PR tree-optimization/19917
11200         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
11201         to be potentially trapping.
11202
11203 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11204
11205         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
11206
11207 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11208
11209         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
11210         tem becomes a local variable which is set to the value of the
11211         back end defined INITIAL_FRAME_ADDRESS macro.
11212         (expand_builtin_frame_address): Omit the base parameter to
11213         expand_builtin_return_addr.
11214         (expand_builtin_profile_func): Likewise.
11215         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
11216         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
11217         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
11218
11219 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
11220
11221         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
11222         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
11223         * config/frv/frv.c (frv_function_epilogue): Likewise.
11224
11225 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
11226
11227         * lambda-code (perfect_nestify): Remove mark/unmark
11228         for rewriting hack.
11229         * tree-loop-linear.c (linear_transform_loops): Add
11230         rewrite_into_ssa call so that ssa is correct for
11231         rewriting into loop closed.
11232
11233 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
11234
11235         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
11236         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
11237         BITMAP_FREE.
11238         * bt-load.c (btr_def_live_range, combine_btr_defs,
11239         migrate_btr_def, migrate_btr_defs): Likewise.
11240         * cfgcleanup.c (thread_jump): Likewise.
11241         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
11242         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
11243         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
11244         df_rd_local_compute, df_reg_info_compute): Likewise.
11245         * dominance.c (init_dom_info, free_dom_info): Likewise.
11246         * flow.c (init_propagate_block_info,
11247         free_propagate_block_info): Likewise.
11248         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
11249         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
11250         modify_reg_pav): Likewise.
11251         * loop-invariant.c (find_defs, find_invariant_insn,
11252         find_invariants, free_inv_motion_data): Likewise.
11253         * predict.c (tree_predict_by_opcode,
11254         estimate_bb_frequencies): Likewise.
11255         * stmt.c (expand_case): Likewise.
11256         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
11257         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
11258         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
11259         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
11260         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
11261         rewrite_ssa_into_ssa): Likewise.
11262         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11263         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
11264         analyze_edges_for_bb, perform_edge_inserts): Likewise.
11265         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
11266         * tree-sra.c (tree_sra): Likewise.
11267         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
11268         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
11269         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
11270         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
11271         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
11272         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
11273         Likewise.
11274         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
11275         calculate_live_on_entry, calculate_live_on_exit,
11276         build_tree_conflict_graph): Likewise.
11277         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
11278         record_important_candidates, set_use_iv_cost, find_depends,
11279         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
11280         tree_ssa_iv_optimize_finalize): Likewise.
11281         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
11282         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
11283         tree_duplicate_loop_to_header_edge): Likewise.
11284         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
11285         * tree-ssa.c (verify_flow_insensitive_alias_info,
11286         verify_name_tags, verify_ssa, init_tree_ssa,
11287         delete_tree_ssa): Likewise.
11288         * tree-ssanames.c (marked_ssa_names, init_ssanames,
11289         fini_ssanames): Likewise.
11290         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
11291
11292 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
11293
11294         * config/rs6000/t-rtems: Completely reworked.
11295
11296 2005-02-17  Ira Rosen  <irar@il.ibm.com>
11297
11298         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
11299
11300 2005-02-17  Ira Rosen  <irar@il.ibm.com>
11301
11302         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
11303         POINTER_TYPE_P when checking that type is a pointer.
11304         (vect_get_memtag): Remove.
11305         (vect_address_analysis): Use POINTER_TYPE_P. Call
11306         vect_object_analysis with dummy parameter for memtag.
11307         (vect_object_analysis): Extract memtag (functionality that
11308         used to be in vect_get_memtag and moved here). Fix printings.
11309         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
11310         with correct parameters. Remove call to vect_get_memtag.
11311
11312 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
11313
11314         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
11315         (tree-vectorizer.o): Added missing dependencies.
11316
11317         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
11318         decleration.
11319         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
11320         declaration in tree-vectorizer.c, now has an extern declaration in
11321         tree-vectorizer.h).
11322         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
11323         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
11324         get_vectype_for_scalar_type, vect_is_simple_use,
11325         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
11326         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
11327         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
11328         vectorizable_store, vectorizable_operation, vectorizable_assignment,
11329         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
11330         find_loop_location): Likewise.
11331
11332         * tree-vectorizer.c (langhooks.h): #include removed.
11333         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
11334         moved to tree-vectorized.h.
11335         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
11336         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
11337         get_vectype_for_scalar_type, vect_is_simple_use,
11338         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
11339         vect_supportable_dr_alignment, new_loop_vec_info,
11340         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
11341         vect_set_verbosity_level, find_loop_location): Likewise.
11342
11343         (vect_analyze_loop): Function externalized. Declaration moved to
11344         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
11345         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
11346         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
11347         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
11348         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
11349         vect_enhance_data_refs_alignment, vect_analyze_operations,
11350         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
11351         vect_stmt_relevant_p, vect_get_loop_niters,
11352         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
11353         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
11354         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
11355         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
11356         vect_get_memtag): Likewise.
11357
11358         (vectorizable_load): Function externalized. Declaration moved to
11359         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
11360         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
11361         vect_transform_loop): Likewise.
11362         (vect_transform_stmt): Moved to tree-vect-transform.c.
11363         (vect_align_data_ref, vect_create_destination_var,
11364         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
11365         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
11366         vect_get_vec_def_for_operand, vect_init_vector,
11367         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
11368         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
11369         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
11370         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
11371         vect_do_peeling_for_loop_bound): Likewise.
11372
11373         * tree-vect-analyze.c: New file.
11374         * tree-vect-transform.c: New file.
11375
11376 2005-02-17  Jason Merrill  <jason@redhat.com>
11377
11378         PR mudflap/19319, c++/19317
11379         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
11380         slot explicit.
11381
11382 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
11383
11384         * doc/install.texi (Specific): Update link for Darwin-specific
11385         tool binary site.
11386
11387 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
11388
11389         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
11390         constant_boolean_node.
11391
11392 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
11393
11394         PR target/19019
11395         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11396         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
11397
11398 2005-02-16  Richard Henderson  <rth@redhat.com>
11399
11400         PR 19920
11401         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
11402         with W_TYPE_SIZE.
11403         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
11404         replace uses with Wtype_MAXp1_F.
11405         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
11406         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
11407         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
11408         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
11409         and HAVE_TFMODE as appropriate.
11410         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
11411         (__floatdisf): Likewise.
11412         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
11413         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
11414         (Wtype_MAXp1_F): New.
11415         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
11416         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
11417
11418 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
11419
11420         * PR target/19162
11421         * arm.c (arm_apply_result_size): New function.
11422         * arm.h (APPLY_RESULT_SIZE): Define.
11423         * arm-protos.h (arm_apply_result_size): Add prototype.
11424         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
11425         (movxf): New expand.
11426         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
11427         (call_value_symbol): Remove predicate for operand 0.
11428         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
11429         (untyped_call): Rework to correclty return values for any type.
11430         (untyped_return): New expand.
11431         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
11432
11433 2005-02-16  Stan Shebs  <shebs@apple.com>
11434
11435         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
11436         * config/rs6000/t-darwin8: New, for 64-bit multilib.
11437
11438 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11439
11440         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
11441         configure settings on Solaris 7 and later.
11442
11443 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
11444
11445         PR tree-optimization/19865
11446         * tree-optimize.c (init_tree_optimization_passes): Run
11447         pass_may_alias after pass_sra.
11448
11449 2005-02-16  Richard Henderson  <rth@redhat.com>
11450             Stuart Hastings  <stuart@apple.com>
11451
11452         PR debug/19521
11453         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
11454         Do nothing if debug info suppressed for this function.
11455         (dbxout_begin_function): Early exit if debug info suppressed for
11456         this function.
11457
11458 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
11459
11460         PR target/20007
11461         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
11462         find_basic_blocks.
11463         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
11464
11465         PR tree-optimization/19967
11466         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
11467         expand_builtin_strchr, expand_builtin_strrchr): Take a new
11468         argument TYPE.  Adjust calls to fold_builtin_XXX.
11469         (expand_builtin, fold_builtin_1): Adjust calls to
11470         expand_builtin_XXX.
11471         (fold_builtin_strchr, fold_builtin_strpbrk,
11472         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
11473         result to a requested type TYPE.
11474
11475 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
11476
11477         PR middle-end/19857
11478         * fold-const.c (fold): Don't optimize (T)(x & cst) to
11479         (T)x & (T)cst if (T)cst overflows.
11480         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
11481         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
11482
11483 2005-02-15  Jeff Law  <law@redhat.com>
11484
11485         * gcse.c (blocks_with_calls): New bitmap.
11486         (alloc_gcse_mem): Allocate it.
11487         (free_gcse_mem): Free it.
11488         (clear_modifY_mem_tables): Clear it.
11489         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
11490         when we encounter CALL_INSNs.
11491         (compute_transp, case MEM): Handle blocks with calls separate
11492         from blocks without calls.  Use bitmap iterators rather than
11493         FOR_EACH_BB.
11494
11495 2005-02-15  Peter O'Gorman  <peter@pogma.com>
11496
11497         PR bootstrap/18810
11498         * mklibgcc.in (vis_hide): Use a temporary object file, not
11499         -o /dev/null.
11500
11501 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
11502
11503         PR target/19924
11504         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
11505         access optimization.
11506
11507 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
11508             Alan Modra  <amodra@bigpond.net.au>
11509
11510         PR target/19019
11511         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
11512         (_xlqsub): Rename to __gcc_qsub.
11513         (_xlqmul): Rename to __gcc_qmul.
11514         (_xlqdiv): Rename to __gcc_qdiv.
11515         Provide versioned symbol aliases with old names.
11516         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
11517         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
11518         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
11519         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
11520         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
11521
11522 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
11523
11524         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
11525         Fold ~(A - 1) and ~(A + -1) to -A.
11526
11527 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
11528
11529         PR pch/14940
11530         PR target/19300
11531         * config/host-linux.c (linux_gt_pch_use_address): Copy from
11532         config/pa/pa-host.c:pa_gt_pch_use_address.
11533
11534 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
11535
11536         * tree-vn.c (get_value_handle): Make sure that given an
11537         is_gimple_min_invariant expression, we always return it.
11538
11539 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11540
11541         * passes.c (rest_of_handle_gcse): Fix a comment.
11542
11543 2005-02-15  Jeff Law  <law@redhat.com>
11544
11545         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
11546         bitmap.
11547         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
11548         (canon_list_insert, record_last_mem_set_info): Similarly.
11549         (clear_modify_mem_tables): Similarly.
11550
11551 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11552
11553         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
11554         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
11555         config/mips/mips.md, config/rs6000/aix.h,
11556         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
11557
11558 2005-02-15  Richard Henderson  <rth@redhat.com>
11559
11560         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
11561         call to be best_edge.
11562
11563 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
11564
11565         * basic-block.h: Adjust the prototype for find_basic_blocks.
11566         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
11567         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
11568         find_basic_blocks.
11569
11570         * flow.c (recompute_reg_usage): Remove all arguments.
11571         * passes.c (rest_of_compilation): Adjust the call to
11572         recompute_reg_usage.
11573         * rtl.h: Adjust the prototype for recompute_reg_usage.
11574
11575 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
11576
11577         * tree-dump.c (dump_files): Update to reflect new member
11578         of dump_file_info.
11579         (dump_register): Add new argument.
11580         Set glob name.
11581         (dump_switch_p_1): Check against glob name if doglob was passed.
11582         (dump_switch_p): Check against regular first, then glob if
11583         we didn't have any hits on the dump name.
11584         * tree-optimize.c (register_one_dump_file):
11585         Pass in glob name as well.
11586         * tree-pass.h (struct dump_file_info): Add glob
11587         member.
11588
11589 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
11590
11591         PR preprocessor/16323
11592         * doc/invoke.texi: Document that -Wendif-labels is on by default.
11593
11594 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
11595
11596         PR target/19019
11597         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
11598         (trunctfdf2_internal1): New.
11599         (trunctfdf2_internal2): Renamed from trunctfdf2.
11600
11601 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
11602
11603         PR tree-optimization/19853
11604         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
11605
11606 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
11607
11608         * passes.c (rest_of_handle_loop_optimize): Remove calls to
11609         delete_dead_jumptables and cleanup_cfg.
11610
11611 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
11612
11613         * reload.c (find_reloads): Swap address_reloaded flags when
11614         swapping commutative operands.
11615
11616 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
11617
11618         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
11619         Use standard_iv_increment_position for computing the bsi position
11620         for create_iv.
11621         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
11622         the bsi position.
11623
11624 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
11625
11626         PR target/17428
11627         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
11628         life range of hard registers.
11629         * value-prof.c (insn_prefetch_values_to_profile): Only
11630         scan normal insns.
11631
11632         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
11633         profile in libcalls.
11634
11635 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
11636
11637         * bitmap.h (bitmap_and_compl_into): Return bool.
11638         * bitmap.c (bitmap_and_compl_into): Return changed flag.
11639
11640 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
11641
11642         PR tree-optimization/19944
11643         * fold-const.c (fold): Re-add ABS_EXPR folding.
11644
11645 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
11646
11647         PR target/19019
11648         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
11649         {TARGET,MASK}_XL_COMPAT.
11650         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
11651         MASK_XL_COMPAT.
11652         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
11653         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
11654         TARGET_XL_COMPAT.
11655         (rs6000_arg_partial_bytes): Same.
11656         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
11657         and XL compatibility enabled.
11658         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
11659         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
11660         test to final condition.
11661         (cmptf_internal2): New.
11662         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
11663         xl-compat.  Add TFmode information to description.
11664
11665 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
11666
11667         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
11668
11669 2005-02-13  Jason Merrill  <jason@redhat.com>
11670
11671         PR c++/16405
11672         * fold-const.c (fold_indirect_ref_1): Split out from...
11673         (build_fold_indirect_ref): Here.
11674         (fold_indirect_ref): New fn.
11675         * tree.h: Declare it.
11676         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
11677         (gimplify_modify_expr_rhs): Likewise.
11678         (gimplify_expr): Likewise.
11679
11680 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
11681
11682         PR tree-optimization/14303
11683         PR tree-optimization/15784
11684         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
11685         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
11686         ABS_EXPR<x> != 0 to x != 0.
11687
11688 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
11689
11690         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
11691         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
11692         spelling conventions.
11693
11694         * passes.c (rest_of_handle_gcse): Don't run cse_main and
11695         delete_trivially_dead_insns too many times.
11696
11697         * passes.c (rest_of_handle_gcse): Remove dead assignments to
11698         tem and tem2.
11699
11700 2005-02-12  Ira Rosen  <irar@il.ibm.com>
11701
11702         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
11703         (vect_is_simple_iv_evolution): Remove redundant parameter
11704         and step check.
11705         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
11706         without last parameter.
11707         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
11708         Return pointer step. Call vect_is_simple_iv_evolution without
11709         last parameter. Check only that the step is multiple of size
11710         type. Remove stmt_vinfo updates.
11711         (vect_get_memtag_and_dr): Remove.
11712         (vect_get_memtag): New function.
11713         (vect_address_analysis): New function.
11714         (vect_object_analysis): New function.
11715         (vect_analyze_data_refs): Call vect_object_analysis and
11716         vect_get_memtag. Update stmt_vinfo fields.
11717
11718 2005-02-12  Ira Rosen  <irar@il.ibm.com>
11719
11720         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
11721         exist and are objects. Remove checks for pointer.
11722         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
11723         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
11724         (vect_create_data_ref_ptr): Likewise.
11725         (vect_base_addr_differ_p): New function.
11726         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
11727         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
11728         Don't set the DR_BASE_NAME field of data-ref.
11729         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
11730
11731 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
11732
11733         * optabs.h (enum optab_index): Add new OTI_ldexp.
11734         (ldexp_optab): Define corresponding macro.
11735         * optabs.c (init_optabs): Initialize ldexp_optab.
11736         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
11737         patterns.
11738         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
11739         using ldexp_optab.
11740         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
11741         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
11742
11743         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
11744         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
11745         intrinsics.
11746
11747 2005-02-12  Ira Rosen  <irar@il.ibm.com>
11748
11749         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
11750         to base_address.
11751         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
11752         stmt_vec_info.
11753         (vect_get_base_and_offset): Always return an address.
11754         (vect_create_addr_base_for_vector_ref): Remove treatment for
11755         different data reference types.
11756         (vect_compute_data_ref_alignment): Rename base to base_address in
11757         stmt_vec_info. Get the object in order to force its alignment.
11758         (vect_get_memtag_and_dr): Rename base to base_address in
11759         stmt_vec_info. Extract the object for memtag analysis.
11760
11761 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
11762
11763         PR regression/19898.
11764         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
11765         changes cc_status, use apply modified_in_p to part of cc_status
11766         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
11767         body.
11768
11769 2005-02-11  Richard Henderson  <rth@redhat.com>
11770
11771         * tree-complex.c (expand_complex_libcall): New.
11772         (expand_complex_multiplication): Use it for c99 compliance.
11773         (expand_complex_division): Likewise.
11774         * fold-const.c (fold_complex_add, fold_complex_mult): New.
11775         (fold): Call them.
11776         * builtins.c (built_in_names): Remove const.
11777         * tree.c (build_common_builtin_nodes): Build complex arithmetic
11778         builtins.
11779         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
11780         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
11781         (built_in_names): Remove const.
11782         * c-common.c (c_common_type_for_mode): Handle complex modes.
11783         * flags.h, toplev.c (flag_complex_method): Rename from
11784         flag_complex_divide_method.
11785         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
11786         __mulsc3, __muldc3, __mulxc3, __multc3): New.
11787         * libgcc2.h: Declare them.
11788         * libgcc-std.ver: Export them.
11789         * mklibgcc.in (lib2funcs): Build them.
11790
11791 2005-02-11  Steven Bosscher  <stevenb@suse.de>
11792
11793         PR tree-optimization/19876
11794         Partially revert my change from 2005-01-14
11795         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
11796         (compute_antic): ...and remove the loop here.
11797
11798 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
11799
11800         PR middle-end/19858
11801         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
11802         is number of inner's bits, avoid creating a BIT_FIELD_REF.
11803
11804         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
11805         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
11806
11807 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
11808
11809         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
11810         offsets for the big-endian 32-bit case.
11811
11812 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
11813
11814         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
11815
11816 2005-02-11  Dale Johannesen  <dalej@apple.com>
11817
11818         * cselib.c (cselib_process_insn):  Clear out regs where
11819         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
11820         * reload.c (find_equiv_reg): Ditto.
11821
11822 2005-02-11  Ian Lance Taylor  <ian@airs.com>
11823
11824         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
11825         with no elements.
11826
11827         * tree.c (build_function_type_list): Work correctly if there are
11828         no arguments.
11829
11830 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
11831
11832         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
11833         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
11834         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
11835         TARGET_ZARCH instead of TARGET_64BIT.
11836
11837 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
11838
11839         * config/rs6000/t-rtems:
11840         (MULTILIB_OPTIONS): Remove mcpu=602.
11841         (MUTLILIB_DIRNAMES): Remove m602.
11842         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
11843         Let mcpu=602 match mcpu=603.
11844         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
11845
11846 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11847
11848         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
11849         signal trampolines.
11850
11851 2005-02-10  David Daney  <ddaney@avtrex.com>
11852
11853         * config/alpha/linux-unwind.h: Add exception clause to copyright.
11854         * config/i386/linux-unwind.h: Likewise.
11855         * config/ia64/linux-unwind.h: Likewise.
11856         * config/mips/linux-unwind.h: Likewise.
11857         * config/pa/linux-unwind.h: Likewise.
11858         * config/rs6000/linux-unwind.h: Likewise.
11859         * config/s390/linux-unwind.h: Likewise.
11860         * config/sh/linux-unwind.h: Likewise.
11861         * config/sparc/linux-unwind.h: Likewise.
11862
11863 2005-02-10  Steven Bosscher  <stevenb@suse.de>
11864
11865         PR tree-optimization/17549
11866         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
11867         TER to replace a DEF with its expression if the DEF and the
11868         rhs of the expression we replace into have the same root
11869         variable.
11870
11871 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
11872
11873         * config/mips/mips.md: Fix the placement of the match_scratch in the
11874         lea64 peephole2.
11875
11876 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11877
11878         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
11879         Fix comment typos.
11880
11881 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
11882
11883         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
11884         (strip_offset): Handle addresses.
11885         (add_address_candidates): Use strip_offset.
11886         (difference_cost): Reflect strip_offset change.
11887         (force_var_cost, difference_cost): Strip nops.
11888
11889 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11890
11891         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
11892
11893         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
11894         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
11895         config/cris/cris-protos.h, config/cris/cris.c: Update
11896         copyright.
11897
11898 2005-02-10  Jeff Law  <law@redhat.com>
11899
11900         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
11901         (lookup_avail_expr): Similarly.
11902
11903 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
11904
11905         * builtins.c (fold_builtin_powi): New function.
11906         (fold_builtin_1): Call it.
11907
11908 2005-02-10  Steven Bosscher  <stevenb@suse.de>
11909
11910         PR documentation/19309
11911         * doc/cpp.texi: The __GNUC__ and related predefined macros
11912         are also defined for the "standalone" cpp.
11913         Some non-GCC compilers may also define __GNUC__.
11914
11915 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
11916
11917         PR c/19342
11918         * c-typeck.c (common_type): New routine.  Old common_type renamed
11919         to...
11920         (c_common_type): ...this.
11921         (build_conditional_expr, build_binary_op): Use c_common_type instead
11922         of common_type.
11923
11924 2005-02-10  Steven Bosscher  <stevenb@suse.de>
11925
11926         * doc/md.texi: Replace @samp{length} with @code{length}.
11927
11928 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
11929
11930         PR tree-optimization/18687
11931         * tree-flow.h (find_loop_niter): Declare.
11932         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
11933         Try using scev even for loops with more than one exit.
11934         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
11935         (struct ivopts_data): Added niters field.
11936         (struct nfe_cache_elt): New.
11937         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
11938         functions.
11939         (tree_ssa_iv_optimize_init): Initialize niters cache.
11940         (determine_number_of_iterations): Removed.
11941         (find_induction_variables): Do not call determine_number_of_iterations.
11942         Access niters for single exit through niter_for_single_dom_exit.
11943         (add_iv_outer_candidates): Access niters for single exit through
11944         niter_for_single_dom_exit.
11945         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
11946         number_of_iterations_cond.
11947         (iv_period): New function.
11948         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
11949         (may_replace_final_value): Take data argument.  Use
11950         niter_for_single_dom_exit.
11951         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
11952         (rewrite_use_compare): Pass data to may_eliminate_iv.
11953         (rewrite_use_outer): Pass data to may_replace_final_value.
11954         (free_loop_data): Clean up the niters cache.
11955         (tree_ssa_iv_optimize_finalize): Free the niters cache.
11956         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
11957         * tree-ssa-loop-niter.c (find_loop_niter): New function.
11958         (find_loop_niter_by_eval): Use tree_int_cst_lt.
11959         (num_ending_zeros): Moved to tree.c.
11960         * tree.h (num_ending_zeros): Declare.
11961         * tree.c (num_ending_zeros): Moved from tree.c.
11962
11963 2005-02-09  Richard Henderson  <rth@redhat.com>
11964
11965         * builtins.c (DEF_BUILTIN): Add COND argument.
11966         * tree.h (DEF_BUILTIN): Likewise.
11967         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
11968         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
11969         match.
11970         (DEF_BUILTIN_STUB): New.
11971         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
11972         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
11973         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
11974         * c-common.c (DEF_BUILTIN): Add COND argument.
11975         * tree.c (local_define_builtin): New.
11976         (build_common_builtin_nodes): New.
11977
11978 2005-02-09  Roger Sayle  <roger@eyesopen.com>
11979
11980         * fold-const.c (fold_strip_sign_ops): New function to simplify a
11981         floating point expression ignoring the sign of the result.
11982         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
11983         (fold) <MULT_EXPR>: Use it to simplify x*x.
11984         * tree.h (fold_strip_sign_ops): Prototype here.
11985         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
11986         argument.  Use fold_strip_sign_ops to simplify the first argument.
11987         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
11988         first argument when the second argument is an even integer
11989         constant, but only with -funsafe_math_optimizations.
11990         (fold_builtin_1): Update call to fold_builtin_copysign.
11991
11992 2005-02-09  Ian Lance Taylor  <ian@airs.com>
11993
11994         PR middle-end/19583
11995         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
11996         just check whether EH_FILTER_FAILURE falls through.
11997
11998 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
11999
12000         * gcc/haifa-sched.c (schedule_block): Make queued sched group
12001         insns return to ready list in the next turn.
12002
12003 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
12004
12005         PR middle-end/19402
12006         * builtins.def: New __builtin_powi[lf].
12007         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
12008         (expand_builtin_powi): New function.
12009         (expand_builtin): Dispatch to expand_builtin_powi.
12010         * libgcc2.h: Add prototypes for __builtin_powi[lf].
12011         * libgcc2.c: Add __builtin_powi[lf] implementation.
12012         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
12013         * optabs.h: Add powi_optab.
12014         * optabs.c (init_optabs): Initialize powi_optab.
12015         * doc/extend.texi: Document __builtin_powi[lf].
12016
12017 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
12018
12019         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
12020         exists.
12021
12022 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
12023
12024         PR middle-end/19854
12025         * fold-const.c (try_move_mult_to_index): Remove redundant
12026         type argument.  Create ADDR_EXPR with correct type.
12027         (fold): Update callers of try_move_mult_to_index.  Convert
12028         result to the appropriate type.
12029
12030 2005-02-09  Roger Sayle  <roger@eyesopen.com>
12031
12032         PR target/19597
12033         * config/avr/avr.c (default_rtx_costs): Delete.
12034         (avr_operand_rtx_cost): New function.
12035         (avr_rtx_costs): Completely rewrite.
12036
12037 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
12038
12039         PR target/19806
12040         * config/cris/cris.c (in_code): New variable.
12041         (cris_output_addr_const): Now a static function, a wrapper for
12042         output_addr_const.
12043         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
12044         case from old cris_output_addr_const.
12045         (cris_asm_output_label_ref): Similar for LABEL_REF.
12046         (cris_output_addr_const_extra): Similar for UNSPEC.
12047         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
12048         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
12049         * config/cris/cris-protos.h (cris_output_addr_const): Remove
12050         declaration.
12051         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
12052         (cris_asm_output_label_ref): Declare.
12053
12054 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
12055
12056         PR preprocessor/19801
12057         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
12058         filenames that changed when libcpp was moved to the toplevel.
12059
12060 2005-02-07  Roger Sayle  <roger@eyesopen.com>
12061
12062         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
12063         zero extensions of BImode operands.  Call lowpart_subreg instead
12064         of gen_lowpart_common and gen_lowpart_SUBREG.
12065
12066 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12067
12068         PR ada/19489
12069         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
12070         * configure.ac: Set cc_for_cross_gnattools.
12071         * configure: Regenerate.
12072
12073 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
12074
12075         PR target/19803
12076         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
12077
12078 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
12079
12080         PR debug/19327
12081         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
12082         of nested functions.
12083
12084 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
12085
12086         * doc/extend.texi: Document deprecated extensions allowing
12087         static floating-point members to have initializers and allowing
12088         floating-point literals in integral constant expressions.
12089
12090 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12091
12092         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
12093         config/darwin7.h, config/mips/mips.c,
12094         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
12095         Update copyright.
12096
12097         * cse.c: Update comments.
12098
12099 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
12100
12101         PR middle-end/19775
12102         * builtins.c (fold_builtin_sqrt): Transform
12103         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
12104         pow(x,y*0.5).
12105
12106 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
12107             Dorit Naishlos  <dorit@il.ibm.com>
12108
12109         * doc/invoke.texi (ftree-vectorizer-verbose): New.
12110         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
12111         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
12112         was added.
12113         * tree.h (vect_set_verbosity_level): New extern function declaration
12114         added.
12115         * tree-vectorizer.h (verbosity_levels): New enum type.
12116         * tree-vectorizer.c (vect_debug_stats): Function removed.
12117         (vect_debug_details): Likewise.
12118         (vect_verbosity_level): Global variable was defined and initialized.
12119         (vect_dump): Global variable definition.
12120         (vect_print_dump_info): New function.
12121         (vect_set_dump_settings): New function.
12122         (vect_set_verbosity_level): New function.
12123         (vectorize_loops): Add call to vect_set_dump_settings.
12124
12125         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
12126         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
12127         (slpeel_tree_peel_loop_to_edge): Likewise.
12128
12129         (vect_analyze_offset_expr): Call to vect_print_dump_info with
12130         appropriate verbosity level instead of call to vect_debug_details
12131         or vect_debug_stats.
12132         (vect_get_base_and_offset):
12133         (vect_create_addr_base_for_vector_ref):
12134         (get_vectype_for_scalar_type):
12135         (vect_create_data_ref_ptr):
12136         (vect_init_vector):
12137         (vect_get_vec_def_for_operand):
12138         (vect_finish_stmt_generation):
12139         (vectorizable_assignment):
12140         (vectorizable_operation):
12141         (vectorizable_store):
12142         (vectorizable_load):
12143         (vect_transform_stmt):
12144         (vect_update_ivs_after_vectorizer):
12145         (vect_do_peeling_for_loop_bound):
12146         (vect_update_inits_of_drs):
12147         (vect_do_peeling_for_alignment):
12148         (vect_transform_loop):
12149         (vect_is_simple_use):
12150         (vect_analyze_operations):
12151         (vect_is_simple_iv_evolution):
12152         (vect_analyze_scalar_cycles):
12153         (vect_analyze_data_ref_dependence):
12154         (vect_analyze_data_ref_dependences):
12155         (vect_compute_data_ref_alignment):
12156         (vect_enhance_data_refs_alignment):
12157         (vect_analyze_data_refs_alignment):
12158         (vect_analyze_data_ref_access):
12159         (vect_analyze_data_ref_accesses):
12160         (vect_analyze_pointer_ref_access):
12161         (vect_get_memtag_and_dr):
12162         (vect_analyze_data_refs):
12163         (vect_mark_relevant):
12164         (vect_stmt_relevant_p):
12165         (vect_mark_stmts_to_be_vectorized):
12166         (vect_can_advance_ivs_p):
12167         (vect_get_loop_niters):
12168         (vect_analyze_loop_form):
12169         (vect_analyze_loop):
12170         (vectorize_loops): Likewise.
12171
12172         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
12173         (vect_update_inits_of_drs):
12174         (vect_do_peeling_for_alignment):
12175         (vect_transform_loop):
12176         (vect_analyze_operations):
12177         (vect_analyze_scalar_cycles):
12178         (vect_analyze_data_ref_dependences):
12179         (vect_analyze_data_refs_alignment):
12180         (vect_analyze_data_ref_accesses):
12181         (vect_analyze_data_refs):
12182         (vect_mark_stmts_to_be_vectorized):
12183         (vect_get_loop_niters):
12184         (vect_analyze_loop_form):
12185         (vect_analyze_loop): Likewise.
12186         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
12187
12188 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
12189
12190         PR bootstrap/19796
12191         Revert:
12192         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
12193         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
12194         either -ffast-math or -funsafe-math-optimizations is in use.
12195
12196         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
12197         * config/mips/irix-csr.c: New file.
12198         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
12199         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
12200         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
12201         executables.
12202
12203 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
12204
12205         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
12206         redundant, incorrect definitions.
12207
12208         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
12209         expand.
12210         ("*tls_indirect_call"): New, reference hard regs directly.
12211         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
12212
12213 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
12214
12215         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
12216         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
12217
12218 2005-02-06  Roger Sayle  <roger@eyesopen.com>
12219
12220         PR rtl-optimization/19800
12221         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
12222         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
12223         gen_lowpart.
12224
12225 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
12226
12227         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
12228
12229 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
12230
12231         PR other/17135
12232         * doc/invoke.texi: Correct documentation of -freorder-functions.
12233
12234 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
12235
12236         PR other/14402
12237         * doc/invoke.texi: Don't mention gccbug.
12238
12239 2005-02-06  Roger Sayle  <roger@eyesopen.com>
12240             Andrew Pinski  <pinskia@physics.uc.edu>
12241             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
12242
12243         * simplify-rtx.c (simplify_relational_operation_1): Simplify
12244         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
12245         into just (zero_extract:SI FOO (const_int 1) BAR).
12246
12247 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
12248
12249         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
12250         macro locally.  Don't give last revision date.  Use GCC version
12251         number from gcc-common.texi.
12252         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
12253         revision date.  Use GCC version number from gcc-common.texi.
12254         Describe being a library as current state rather than as 3.x
12255         history.
12256         * doc/gcc.texi: Remove last update date.
12257         * doc/gccint.texi: Likewise.  Update copyright dates.
12258         * doc/install.texi: Update copyright dates.
12259
12260 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
12261
12262         PR other/7549
12263         * doc/invoke.texi: Mention for each option included in -Wall that
12264         it is included in -Wall.
12265         * doc/gcc.texi: Update copyright and last modification date.
12266
12267 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
12268
12269         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
12270         unnecessary cast to original induction variable increments.
12271
12272 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
12273
12274         PR tree-optimization/18219
12275         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
12276         in distributed form.
12277
12278 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
12279
12280         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
12281         Set bitpos and offset later in the function.  Do nothing if the
12282         target is a register and if the bitfield lies completely outside
12283         that register.
12284         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
12285         here.  Return an uninitialised register if the source value is stored
12286         in a register and the bitfield lies completely outside that register.
12287
12288 2005-02-06  Steven Bosscher  <stevenb@suse.de>
12289
12290         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
12291         not SET_DEST.
12292
12293 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
12294
12295         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
12296
12297 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
12298
12299         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
12300         * config/darwin8.h: New.
12301         * config/darwin7.h: Update comment.
12302
12303 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
12304             Dorit Naishlos  <dorit@il.ibm.com>
12305
12306         * tree-vectorizer.h (LOC): New type.
12307         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
12308         (loop_line_number): New field in struct _loop_vec_info.
12309         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
12310
12311         * tree-vectorizer.c (input.h): Included.
12312         (find_loop_location): New function.
12313         (vect_debug_stats): Argument changed from loop to LOC. Computation of
12314         loop line number removed.
12315         (vect_debug_details): Likewise.
12316         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
12317
12318         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
12319         call to vect_debug_details/stats changed from loop to loop_loc.
12320         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
12321         (slpeel_tree_peel_loop_to_edge): Likewise.
12322
12323         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
12324         changed from NULL to UNKNOWN_LOC.
12325         (vect_get_base_and_offset):
12326         (vect_create_addr_base_for_vector_ref):
12327         (get_vectype_for_scalar_type):
12328         (vect_create_data_ref_ptr):
12329         (vect_init_vector):
12330         (vect_get_vec_def_for_operand):
12331         (vect_finish_stmt_generation):
12332         (vectorizable_assignment):
12333         (vectorizable_operation):
12334         (vectorizable_store):
12335         (vectorizable_load):
12336         (vect_transform_stmt):
12337         (vect_update_ivs_after_vectorizer):
12338         (vect_do_peeling_for_loop_bound):
12339         (vect_do_peeling_for_alignment):
12340         (vect_transform_loop):
12341         (vect_is_simple_use):
12342         (vect_analyze_operations):
12343         (vect_is_simple_iv_evolution):
12344         (vect_analyze_scalar_cycles):
12345         (vect_analyze_data_ref_dependences):
12346         (vect_compute_data_ref_alignment):
12347         (vect_enhance_data_refs_alignment):
12348         (vect_analyze_data_ref_access):
12349         (vect_analyze_data_ref_accesses):
12350         (vect_analyze_pointer_ref_access):
12351         (vect_get_memtag_and_dr):
12352         (vect_analyze_data_refs):
12353         (vect_mark_relevant):
12354         (vect_stmt_relevant_p):
12355         (vect_mark_stmts_to_be_vectorized):
12356         (vect_can_advance_ivs_p):
12357         (vect_get_loop_niters):
12358         (vect_analyze_loop):
12359         (vectorize_loops): Likewise.
12360
12361         (vectorizable_load): Argument in call to vect_debug_details/stats
12362         changed from loop to LOOP_LOC (loop_vinfo).
12363         (vect_transform_loop):
12364         (vect_analyze_operations):
12365         (vect_analyze_scalar_cycles):
12366         (vect_analyze_data_ref_dependence):
12367         (vect_enhance_data_refs_alignment):
12368         (vect_analyze_data_ref_accesses):
12369         (vect_analyze_pointer_ref_access):
12370         (vect_analyze_data_refs):
12371         (vect_analyze_loop): Likewise.
12372
12373         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
12374         changed from loop to loop_loc.
12375
12376         (vect_enhance_data_refs_alignment): Removed unused variable loop.
12377
12378 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
12379             Dorit Naishlos  <dorit@il.ibm.com>
12380
12381         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
12382         declaration added.
12383         (vect_analyze_data_ref_dependences): Likewise.
12384
12385         (vect_is_simple_use): Argument changed from loop structure to
12386         loop_vect_info structure.
12387         (vect_can_advance_ivs_p): Likewise.
12388         (vect_create_index_for_vector_ref): Likewise.
12389         (vect_update_ivs_after_vectorizer): Likewise.
12390         (new_stmt_vec_info): Likewise.
12391
12392         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
12393         changed from loop to loop_vinfo.
12394         (vect_create_data_ref_ptr): First argument in call to
12395         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
12396         (vectorizable_assignment): Second argument in call to vect_is_simple_use
12397         was changed from loop to loop_vinfo.
12398         (vectorizable_operation): Likewise.
12399         (vectorizable_store): Likewise.
12400         (vect_mark_stmts_to_be_vectorized): Likewise.
12401         (vect_do_peeling_for_loop_bound): First argument in call to
12402         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
12403         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
12404         was changed from loop to loop_vinfo.
12405         (vect_analyze_data_ref_dependences): Third argument in call to
12406         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
12407
12408         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
12409         (vect_create_data_ref_ptr): Likewise.
12410         (vect_init_vector): Likewise.
12411         (vect_get_vec_def_for_operand): Likewise.
12412         (vectorizable_assignment): Likewise.
12413         (vectorizable_operation): Likewise.
12414         (vectorizable_store): Likewise.
12415         (vectorizable_load): Likewise.
12416         (vect_update_ivs_after_vectorizer): Likewise.
12417         (vect_is_simple_use): Likewise.
12418         (vect_analyze_data_ref_dependence): Likewise.
12419         (vect_analyze_pointer_ref_access): Likewise.
12420         (vect_can_advance_ivs_p): Likewise.
12421
12422         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
12423         before _stmt_vec_info.
12424         (_stmt_vec_info): Loop field replaced by loop_vec_info.
12425         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
12426         (new_stmt_vec_info): Argument changed from loop structure to
12427         loop_vect_info structure
12428
12429         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
12430         (vect_analyze_offset_expr): Avoid 80 columns overflow.
12431         (vect_create_addr_base_for_vector_ref): Likewise.
12432         (vect_analyze_pointer_ref_access): Likewise.
12433
12434 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
12435
12436         PR tree-opt/19768
12437         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
12438         phi flag if the phi is abnormal.
12439
12440 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
12441
12442         PR tree-opt/19736
12443         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
12444         information for the new statement.
12445
12446 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
12447
12448         PR driver/19117
12449         * gcc.c (main): Include the target in -v output.
12450
12451 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
12452
12453         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
12454         Do not drop the extend if we'd have to add a paradoxical subreg
12455         later.  Include optabs.h and insn-codes.h.
12456         * Makefile.in (combine.o): Depend on $(OPTABS_H).
12457
12458 2005-02-02  Roger Sayle  <roger@eyesopen.com>
12459
12460         PR middle-end/19405
12461         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
12462         * fold-const.c (const_binop): Avoid constant folding floating
12463         point operations in modes that use composite representations.
12464         * simplify-rtx.c (simplify_binary_operation): Likewise.
12465
12466 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
12467
12468         * config/rs6000/altivec.md (altivec_dst): Make the first operand
12469         a REG, not a MEM.
12470         (altivec_dstt): Likewise.
12471         (altivec_dstst): Likewise.
12472         (altivec_dststt): Likewise.
12473         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
12474         of first operand.
12475
12476 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
12477
12478         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
12479         EXPR_LOCUS from orig_cond to the new cond_stmt.
12480         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
12481         the new vec_stmt.
12482
12483 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
12484
12485         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
12486         standard_iv_increment_position. Remove call to bsi_next
12487         (no need to bump the iterator anymore).
12488         (vect_create_index_for_vector_ref): Call
12489         standard_iv_increment_position. Remove second function argument.
12490         (vect_finish_stmt_generation): Remove call to bsi_next
12491         (no need to bump the iterator anymore).
12492         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
12493         to vect_create_index_for_vector_ref.
12494
12495 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
12496
12497         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
12498         phis are used out of the loop.
12499
12500 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
12501
12502         PR c/17807
12503         * c-decl.c (undef_nested_function): New variable.
12504         (pop_scope): Diagnose undefined nested functions.
12505         (finish_function): Don't attempt cgraph processing or genericizing
12506         if current top-level function contained an undefined nested
12507         function.  Reset undef_nested_function at the end of a top-level
12508         function.
12509
12510 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
12511
12512         * tree.c (build_int_cst_type): Take sign of the value into account
12513         when deciding whether sign extend the value.
12514
12515 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
12516
12517         PR c/18502
12518         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
12519         (cpp_options, cc1_options): Change %{std*&ansi} to
12520         %{std*&ansi&trigraphs}.
12521
12522 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12523
12524         * cse.c: Update comments.
12525
12526 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
12527
12528         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
12529         arguments go on the stack.  Do not put complex doubles in odd/even
12530         pairs.
12531
12532 2005-02-02  Steven Bosscher  <stevenb@suse.de>
12533
12534         * doc/invoke.texi: Update the options enabled at -O1, -O2,
12535         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
12536         -ftree-pre, and -fthread-jumps.
12537
12538 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
12539
12540         PR tree-optimization/19578
12541         * tree-flow.h (modified_noreturn_calls): Declare.
12542         (noreturn_call_p): Declare.
12543         * tree-flow-inline.h (noreturn_call_p): New function.
12544         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
12545         * tree-cfg.c (modified_noreturn_calls): New variable.
12546         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
12547         that contain a mid-block noreturn call.
12548         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
12549
12550 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12551
12552         * df.c (df_def_record_1, df_uses_record): Don't use
12553         DF_FOR_REGALLOC.
12554         * df.h (DF_FOR_REGALLOC): Remove.
12555
12556 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
12557
12558         PR c/19435
12559         * c-typeck.c (really_start_incremental_init): Reset
12560         constructor_max_index for arrays of incomplete type.
12561
12562 2005-02-02  Jeff Law  <law@redhat.com>
12563
12564         * gcse.c (struct reg_set): Store the block index where the register
12565         was set rather than the setting insn.
12566         (record_one_set, compute_transp): Corresponding changes.
12567         (pre_insert_copy_insn): Do not call replace_one_set.
12568         (replace_one_set): Remove.
12569
12570 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
12571
12572         PR other/15514
12573         * doc/gcov.texi: Fix typo.
12574
12575 2005-02-01  Richard Henderson  <rth@redhat.com
12576
12577         PR target/19680
12578         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
12579         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
12580         type to bool.
12581         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
12582         * config/i386/i386-protos.h: Update.
12583
12584 2005-02-01  Steven Bosscher  <stevenb@suse.de>
12585
12586         PR tree-optimization/19217
12587         * tree-cfg.c (verify_expr): Use the data field to see if TP was
12588         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
12589         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
12590         that it is walking a PHI node.
12591
12592 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
12593
12594         * doc/extend.texi (Nested Functions): Update.
12595
12596 2005-02-01  Richard Henderson  <rth@redhat.com>
12597
12598         PR 19696
12599         * optabs.c (expand_copysign_absneg): Export.
12600         * optabs.h (expand_copysign_absneg): Declare.
12601         * config/rs6000/rs6000.md (copysigntf3): New.
12602
12603 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
12604
12605         PR tree-optimization/19633
12606         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
12607         * tree-ssa-alias.c (init_alias_info): Initialize.
12608         (merge_pointed_to_info): Set.
12609         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
12610         (dump_points_to_info_for): Show value of pt_null.
12611         (struct count_ptr_d): Declare.
12612         (find_ptr_dereference): Remove.
12613         (ptr_is_dereferenced_by): Remove.
12614         (count_ptr_derefs): New local function.
12615         (count_uses_and_derefs): New local function.
12616         (compute_points_to_and_addr_escape): Call it.  If the number
12617         of dereferences is greater than zero, mark the pointer as
12618         dereferenced.  If there are fewer dereferences than uses of
12619         the pointer, the pointer's value escapes.
12620
12621 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
12622
12623         PR tree-optimization/19670
12624         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
12625         here...
12626         (verify_use): ... set it here, instead.
12627
12628 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
12629
12630         * doc/sourcebuild.texi (Test directives): Fix formatting.
12631
12632         * doc/sourcebuild.texi (Test directives): Describe selector
12633         expressions.
12634
12635 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
12636
12637         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
12638         specific 64-bit CPUs.
12639
12640 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
12641
12642         PR target/16201
12643         * arm.c (arm_eliminable_register): New function.
12644         (adjacent_mem_locations): Don't allow eliminable registers.  Use
12645         HOST_WIDE_INT for address offsets.
12646         * arm-protos.h (arm_eliminable_register): Add prototype.
12647
12648 2005-02-01  Steven Bosscher  <stevenb@suse.de>
12649
12650         PR optimization/15242
12651         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
12652         * basic-block.h (duplicate_computed_gotos): Add prototype.
12653         * bb-reorder.c (duplicate_computed_gotos): New function to
12654         duplicate sufficiently small blocks ending in a computed jump.
12655         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
12656         if not optimizing for size.
12657         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
12658         never do tail merging for blocks ending in a computed jump.
12659         * doc/invoke.texi: Document the max-goto-duplication-insns param.
12660
12661 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12662
12663         Patch from Richard Sandiford <rsandifo@redhat.com>
12664         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
12665         from inheriting a subreg equivalence with a non-spill register.
12666
12667         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
12668
12669 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
12670
12671         * config/frv/frv.c (movcc_fp_destination_operand): New.
12672         (gpr_or_memory_operand): Fix typo in comment.
12673         (gpr_or_memory_operand_with_scratch): New.
12674         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
12675         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
12676         movcc_fp_destination_operand.
12677         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
12678         Legitimize memory addresses using a scratch register.
12679
12680 2005-01-31  Jeff Law  <law@redhat.com>
12681
12682         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
12683         bitmap a sparse bitmap instead of a simple bitmap.
12684         (mark_def_sites_initialize_block):  Corresponding changes.
12685         (ssa_mark_def_sites_initialize_block): Likewise.
12686         (ssa_mark_phi_uses): Likewise.
12687         (mark_def_site, ssa_mark_def_sites): Likewise.
12688         (mark_def_site_blocks): Likewise.
12689         (rewrite_ssa_into_ssa): Likewise.
12690
12691         * tree-ssa-dom.c (record_cond): Pass correct variable type
12692         for last argument to htab_find_slot_with_hash.
12693
12694         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
12695         effects when optimizing 0 % X.  Do not try to optimize X % 0.
12696
12697 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
12698
12699         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
12700         1_mmalua.
12701
12702 2005-02-01  Eric Christopher  <echristo@redhat.com>
12703
12704         * config/mips/mips.c (override_options): Warn if -mint64
12705         is used.
12706         * doc/invoke.texi (MIPS Options): Document that -mint64 is
12707         deprecated.
12708
12709 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12710
12711         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
12712         timestamp.
12713         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
12714         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
12715         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
12716         (cached_regno): Initialize to INVALID_REGNUM.
12717         (cse_reg_info_table_size,
12718         cse_reg_info_table_first_uninitialized,
12719         cse_reg_info_timestamp): New.
12720         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
12721         get_cse_reg_info.
12722         (init_cse_reg_info, get_cse_reg_info_1): New.
12723         (get_cse_reg_info): Cache the last look-up.
12724         (new_basic_block): Update the code to clear mappings from
12725         registers to cse_reg_info entries.
12726         (cse_main): Call init_cse_reg_info.
12727
12728         * cse.c (get_cse_reg_info): Update a comment.
12729
12730 2005-01-31  Steven Bosscher  <stevenb@suse.de>
12731
12732         PR c/19333
12733         * c-decl.c (start_decl): Do not warn about arrays of elements with
12734         an incomplete type here.
12735         (grokdeclarator): Do it here by making a pedwarn an error.
12736         * c-typeck.c (push_init_level): If there were previous errors with
12737         the constructor type, do not warn about braces for initializers.
12738         (process_init_element): Likewise for excess initializer elements.
12739
12740 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12741
12742         * cse.c (delete_trivially_dead_insn): Don't iterate.
12743
12744 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
12745
12746         * config/rs6000/rs6000.md (copysignsf3): New expand.
12747         (copysigndf3): Likewise.
12748
12749 2005-01-31  Steven Bosscher  <stevenb@suse.de>
12750
12751         * recog.c (constrain_operands): Only look for earlyclobber operand
12752         conflicts if an '&' constraint was seen.
12753
12754 2005-01-31  Marc Espie <espie@openbsd.org>
12755
12756         * config.gcc: Don't include embedded systems fragment, switches default
12757         debugging format to ELF.
12758         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
12759         longer pick it up there.
12760
12761 2005-01-31  Dale Johannesen  <dalej@apple.com>
12762
12763         * doc/extend.texi (nested functions): Fix linkage description.
12764         Clarify that static is not allowed.
12765
12766 2005-01-31  Dale Johannesen  <dalej@apple.com>
12767
12768         * config/rs6000/darwin.md (movsf_low_di):  Make work.
12769         (movdf_low_di):  Make work.
12770
12771 2005-01-31  Dale Johannesen  <dalej@apple.com>
12772
12773         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
12774         Make work for 64 bit.
12775
12776 2005-01-31  Roger Sayle  <roger@eyesopen.com>
12777             Dale Johannesen  <dalej@apple.com>
12778
12779         PR middle-end/19650
12780         * fold-const.c (fold_binary_op_with_conditional_arg):
12781         Make types match original operands, before STRIP_NOPS.
12782
12783 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
12784
12785         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
12786         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
12787         (struct gcc_sigcontext): Delete.  Merge contents to..
12788         (struct gcc_ucontext): ..here.
12789         (get_sigcontext): Delete.
12790         (get_regs): New function, like get_sigcontext but return regs ptr.
12791         64-bit version finds regs from r1 to support vdso.
12792         (ppc_linux_aux_vector): New function.
12793         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
12794         and vector regs.
12795
12796 2005-01-31  Ira Rosen  <irar@il.ibm.com>
12797
12798         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
12799         sizetype.
12800         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
12801         redundant fold. Fix misalignment for MINUS_EXPR.
12802         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
12803         (vect_analyze_pointer_ref_access): Likewise.
12804         (vect_get_memtag_and_dr): Likewise.
12805
12806 2005-01-31  Richard Henderson  <rth@redhat.com>
12807
12808         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
12809         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
12810         absnegdf2_i387, absnegxf2_i387): Likewise.
12811
12812 2005-01-31  Richard Henderson  <rth@redhat.com>
12813
12814         PR 19696
12815         * optabs.c (expand_copysign_absneg): New.
12816         (expand_copysign_bit): Split out from ...
12817         (expand_copysign): ... here.  Use expand_copysign_absneg.
12818
12819 2005-01-30  Roger Sayle  <roger@eyesopen.com>
12820
12821         PR middle-end/19697
12822         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
12823         constant as the second operand and a register as the third.
12824
12825 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
12826
12827         PR target/19704
12828         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
12829         that dllimport'd functions do not use all call-clobbered registers
12830         to pass parameters.
12831
12832 2005-01-30  Richard Henderson  <rth@redhat.com>
12833
12834         PR 19696
12835         * optabs.c (expand_absneg_bit): Split out from expand_unop and
12836         expand_abs_nojump and generalize.  Use operand_subword and
12837         emit_no_conflict_block.  Support large modes.
12838         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
12839         back to maximum.
12840         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
12841         negation to subtraction.
12842         (expand_copysign): Check that the format has signed zeros.
12843         Use operand_subword and emit_no_conflict_block.  Support large modes.
12844
12845 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
12846
12847         Fix PR tree-optimization/19624
12848
12849         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
12850         * tree-ssa-pre.c: Add cfgloop.h.
12851         Update comment.
12852         (pre_stats): New member, constified.
12853         (inserted_exprs): New static variable.
12854         (NECESSARY): New macro.
12855         (create_expression_by_pieces): Fold the expression, and
12856         mark it as defaulting to not necessary. Also put in
12857         inserted_exprs.
12858         (fully_constant_expression): New function.
12859         (insert_into_preds_of_block): Modify to not insert phis when we
12860         are playing with induction variables.
12861         Push phis onto the inserted_exprs vector, and mark them as not
12862         necessary by default.
12863         (insert_aux): Call fully_constant_expression on eprime.
12864         If all edges produce the same value, mark it constant.
12865         (mark_operand_necessary): New function.
12866         (remove_dead_inserted_code): New function.
12867         (init_pre): Init loop optimizer to get loop info.
12868         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
12869         (execute_pre): Commit edge inserts, then remove dead code.
12870
12871 2005-01-30  Richard Henderson  <rth@redhat.com>
12872
12873         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
12874         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
12875
12876 2005-01-30  Richard Henderson  <rth@redhat.com>
12877
12878         PR target/19700
12879         * config/i386/i386.c (ix86_expand_copysign): New.
12880         (ix86_split_copysign_const): New.
12881         (ix86_split_copysign_var): Rename from ix86_split_copysign,
12882         rearrange op1/nmask operands.
12883         * config/i386/i386-protos.h: Update.
12884         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
12885         (copysigndf3): Likewise.
12886         (copysignsf3_const, copysigndf3_const): New.
12887         (copysignsf3_var): Rename from copysignsf3, split out splitter
12888         and fix split predicate for X constraint.
12889         (copysigndf3_var): Similarly.
12890
12891 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12892
12893         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
12894         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
12895         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
12896
12897 2005-01-29  Richard Henderson  <rth@redhat.com>
12898
12899         PR target/19690
12900         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
12901         of # and * in constraints.
12902
12903 2005-01-29  Richard Henderson  <rth@redhat.com>
12904
12905         PR middle-end/19689
12906         * expr.c (store_field): Don't strip sub-mode cast when the input
12907         data is even smaller.
12908
12909 2005-01-29  Richard Henderson  <rth@redhat.com>
12910
12911         PR middle-end/19687
12912         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
12913         union being empty.
12914
12915 2005-01-29  Richard Henderson  <rth@redhat.com>
12916
12917         * combine.c (make_field_assignment): Fix argument order
12918         to gen_int_mode.
12919
12920 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
12921
12922         PR tree-optimization/15791
12923         * fold-const.c (extract_array_ref): New function.
12924         (fold): Fold comparisons between &a[i] and &a[j] or
12925         semantically equivalent trees.
12926
12927 2005-01-29  Jeff Law  <law@redhat.com>
12928
12929         * gcse.c (insert_expr_in_table): Revamp handling of available
12930         and anticipatable occurrence lists to avoid unnecessary list
12931         walking.
12932         (insert_set_in_table): Similarly.
12933
12934 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
12935
12936         * c-common.c (fix_string_type): Just use c_build_qualified_type to
12937         build string type.
12938         (c_build_qualified_type): Build qualified array types with
12939         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
12940         * c-decl.c (c_make_fname_decl): Build unqualified array type
12941         before qualified type.
12942         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
12943         type is qualified, not just if type itself is.  Don't apply
12944         qualifiers to array type when declarator is processed.  Apply
12945         qualifiers to field type whether or not it is an array type.
12946         Don't handle array types specially for applying qualifiers to
12947         variables.
12948         * c-typeck.c (composite_type): Build unqualified element type and
12949         array type when forming composite of array types.
12950         (common_pointer_type, comptypes, comp_target_types,
12951         type_lists_compatible_p, build_indirect_ref, build_array_ref,
12952         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
12953         types.
12954         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
12955         (args2) in variables a1 and a2.
12956
12957 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12958
12959         * cse.c (n_elements_made, max_elements_made): Remove.
12960         (insert): Don't touch n_elements_made.
12961         (cse_main): Don't touch n_elements_made or max_elements_made.
12962
12963 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
12964
12965         PR target/15384
12966         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
12967         configuration part of dp-bit.c to be lost.
12968
12969 2005-01-28  Roger Sayle  <roger@eyesopen.com>
12970
12971         * expmed.c (expand_mult_highpart_optab): When attempting to use
12972         a non-widening multiplication in a wider mode, the operands need
12973         to be converted (zero or sign extended) to that mode.
12974
12975 2005-01-28  Ian Lance Taylor  <ian@airs.com>
12976
12977         PR middle-end/16558
12978         PR middle-end/19583
12979         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
12980         through if both operands fall through.
12981
12982 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12983
12984         * cse.c (fold_rtx) <PC>: Don't optimize.
12985
12986 2005-01-28  Jeff Law  <law@redhat.com>
12987
12988         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
12989         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
12990
12991 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12992
12993         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
12994         cse_reg_info_used_list_end): Remove.
12995         (cse_reg_info_list, cse_reg_info_list_free): New.
12996         (get_cse_reg_info): When allocating an instance of
12997         cse_reg_info, add it to the beginning of the cse_reg_info_list
12998         list.  Remove code to maintain cse_reg_info_used_list.
12999         (new_basic_block): Reset the free list to the beginning of
13000         cse_reg_info_list.
13001
13002 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
13003
13004         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
13005         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
13006         (frv_expand_mdpackh_builtin): New function.
13007         (frv_expand_builtin): Use it to expand __MDPACKH.
13008         * doc/extend.texi (__MDPACKH): Update documentation.
13009
13010 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
13011
13012         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
13013         SSE_FLOAT_MODE_P for use_sse computation.
13014
13015 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
13016
13017         PR target/19663
13018         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
13019
13020 2005-01-27  Richard Henderson  <rth@redhat.com>
13021
13022         * builtins.c (expand_builtin_copysign): New.
13023         (expand_builtin): Call it.
13024         * genopinit.c (optabs): Add copysign_optab.
13025         * optabs.c (init_optabs): Initialize it.
13026         (expand_copysign): New.
13027         * optabs.h (OTI_copysign, copysign_optab): New.
13028         (expand_copysign): Declare.
13029
13030         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
13031         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
13032
13033         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
13034         (ix86_expand_fp_absneg_operator): ... here.
13035         (ix86_split_copysign): New.
13036         * config/i386/i386-protos.h: Update.
13037         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
13038         (copysignsf3, copysigndf3): New.
13039
13040         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
13041         (copysignsf3, ncopysignsf3): New.
13042         (copysigndf3, ncopysigndf3): New.
13043         (copysignxf3, ncopysignxf3): New.
13044         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
13045
13046 2005-01-27  Arend Bayer  <arend.bayer@web.de>
13047             Kazu Hirata  <kazu@cs.umass.edu>
13048
13049         * cse.c: (find_best_addr): Don't call copy_rtx before calling
13050         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
13051         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
13052         NULL_RTX.
13053
13054 2005-01-27  Jeff Law  <law@redhat.com>
13055
13056         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
13057         definitions of SSA_NAMEs which are not being rewritten.
13058         (rewrite_ssa_into_ssa): Only initialize the current definition
13059         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
13060         If checking is enabled, assert that SSA_NAME_AUX is clear for all
13061         SSA_NAMEs before returning.
13062
13063 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13064
13065         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
13066         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
13067         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
13068         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
13069         config/mips/iris6.h, config/sh/sh.c: Update copyright.
13070
13071 2005-01-27  Steven Bosscher  <stevenb@suse.de>
13072
13073         PR middle-end/17278
13074         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
13075         higher to -O2 and higher.  Likewise for tree PRE.
13076         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
13077         and better.
13078
13079 2005-01-27  Ian Lance Taylor  <ian@airs.com>
13080
13081         PR middle-end/19583
13082         * gimple-low.c (try_catch_may_fallthru): New static function.
13083         (block_may_fallthru): Handle TRY_CATCH_EXPR.
13084         * tree-inline.c (expand_call_inline): Don't warn about reaching
13085         the end of a non-void function being inlined if the function uses
13086         a return slot.
13087
13088 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
13089
13090         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
13091
13092         PR c/18946
13093         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
13094         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
13095         (implicitly_declare): Handle error_mark_node.
13096
13097 2005-01-27  Richard Henderson  <rth@redhat.com>
13098
13099         PR tree-opt/14329
13100         * tree.h (struct tree_decl): Add debug_expr_is_from.
13101         (DECL_DEBUG_EXPR_IS_FROM): New.
13102         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
13103         * dwarf2out.c (dwarf2out_var_location): Update to match.
13104         * tree-outof-ssa.c (create_temp): Likewise.
13105         * var-tracking.c (track_expr_p): Likewise.
13106         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
13107         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
13108         * toplev.c (default_tree_printer): Likewise.
13109
13110 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
13111
13112         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
13113         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
13114
13115 2005-01-27  Steven Bosscher  <stevenb@suse.de>
13116
13117         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
13118         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
13119         ASM_CLOBBERS): Add tree checks.
13120
13121         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
13122         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
13123         * c-common.def (SWITCH_STMT): Update to match.
13124         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
13125         macros instead of SWITCH_EXPR ones.
13126         * c-dump.c (c_dump_tree): Likewise.
13127         * c-gimplify.c (gimplify_switch_stmt): Likewise.
13128         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
13129
13130         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
13131
13132 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
13133
13134         * unwind-dw2.c (execute_stack_op): Add missing cases for
13135         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
13136
13137 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13138
13139         * config.gcc (Obsolete configurations): Remove 'dummy', add
13140         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
13141         sparc-*-openbsd*.
13142
13143 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
13144
13145         PR tree-optimization/19633
13146         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
13147         CALL_EXPRs.
13148         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
13149         are no call-clobbered variables.
13150         * tree-outof-ssa.c (check_replaceable): Return false for calls
13151         with side-effects.
13152
13153 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
13154
13155         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
13156         even for variables with NULL DECL_INITIAL.
13157
13158 2005-01-26  Stuart Hastings  <stuart@apple.com>
13159
13160         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
13161
13162 2005-01-26  Richard Henderson  <rth@redhat.com>
13163
13164         PR middle-end/18008
13165         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
13166         field's type.
13167         * expr.c (store_field): Strip conversions to odd-bit-sized types
13168         if the destination field width matches.
13169
13170 2005-01-26  Richard Henderson  <rth@redhat.com>
13171
13172         * c-decl.c, expmed.c, expr.c: Revert last change.
13173
13174 2005-01-26  Richard Henderson  <rth@redhat.com>
13175
13176         PR middle-end/18008
13177         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
13178         field's type.
13179         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
13180         if we don't need the bits above those present in the current mode.
13181         * expr.c (store_field): Strip conversions to odd-bit-sized types
13182         if the destination field width matches.
13183
13184 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
13185
13186         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
13187         either -ffast-math or -funsafe-math-optimizations is in use.
13188
13189 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13190
13191         PR target/19293
13192         PR target/19329
13193         * config/avr/avr.c (notice_update_cc): Only set condition code for
13194         ashrqi3 if shift count > 0.
13195         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
13196         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
13197         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
13198         count <= 0 as a no-op, and shift count >= width by copying zero
13199         or sign bit to all bits of the result.
13200         * config/avr/avr.md (all shifts): Add alternatives for zero shift
13201         count, with attribute "length" set to 0 and "cc" set to "none".
13202
13203 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
13204
13205         * doc/invoke.texi: Document -mTLS.
13206
13207         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
13208         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
13209         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
13210         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
13211         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
13212         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
13213         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
13214         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
13215
13216         * configure.ac: Check for a TLS capable gas.
13217
13218         * configure: Regenerate.
13219
13220 2005-01-26  Richard Henderson  <rth@redhat.com>
13221
13222         PR middle-end/18008
13223         * combine.c (make_field_assignment): Simplify store to zero_extract
13224         from a source with an overlapping mask.
13225
13226 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
13227
13228         2004-11-11  Eric Christopher  <echristo@redhat.com>
13229
13230         * config/frv/frv.md: Add fr400_integer automaton. Don't
13231         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
13232         to TYPE_MACC.
13233
13234 2005-01-26  Steven Bosscher  <stevenb@suse.de>
13235
13236         PR middle-end/16585
13237         * cfgbuild.c (make_edges): Do not clear or set
13238         current_function_has_computed_jump.
13239         * function.h (struct function): Remove the has_computed_jump field.
13240         (current_function_has_computed_jump): Do not define.
13241         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
13242         in a computed jump.  Ignore current_function_has_computed_jump.
13243
13244 2005-01-26  Richard Henderson  <rth@redhat.com>
13245
13246         PR middle-end/19515
13247         * expr.c (categorize_ctor_elements): New argument p_must_clear.
13248         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
13249         fully initialized.
13250         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
13251         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
13252         objects into static storage if they have more than one non-zero value.
13253         * tree.h (categorize_ctor_elements): Update decl.
13254
13255 2005-01-26  Steven Bosscher  <stevenb@suse.de>
13256
13257         PR middle-end/19616
13258         * tree.h (CALL_EXPR_TAILCALL): Add comment.
13259         * calls.c (check_sibcall_argument_overlap_1): Revert the change
13260         to this function from 2004-07-10.
13261         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
13262         the current function for tail call optimizations if the address
13263         of one of it its arguments is taken.
13264
13265 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13266
13267         * cse.c (fold_rtx): Call equiv_constant only when necessary.
13268
13269 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
13270
13271         * function.c (expand_function_end): If current_function_calls_alloca,
13272         emit stack restore in a place that is reached when the function falls
13273         through at the end.
13274
13275 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
13276
13277         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
13278         rule to avoid matching inappropriate suffix rule.
13279
13280 2005-01-26  Jan Hubicka  <jh@suse.cz>
13281
13282         PR tree-optimization/19241
13283         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
13284
13285 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
13286
13287         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
13288         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
13289         of doubling.
13290         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
13291         <sim*>: Always use crt1.o, regardless of N in simN.
13292         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
13293         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
13294         (CRT_CALL_STATIC_FUNCTION): Remove.
13295         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
13296         use crt1.o, regardless of N in simN.
13297         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
13298         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
13299         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
13300         case isystem setting.
13301         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
13302
13303 2005-01-25  Ian Lance Taylor  <ian@airs.com>
13304
13305         * gimple-low.c (block_may_fallthru): Correct handling of
13306         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
13307
13308 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
13309
13310         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
13311         handlers to match indentation; nested under the mtune=* handler.
13312         Similar for mcpu= and march=.
13313
13314 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
13315
13316         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
13317         * config/mips/linux64.h (LIB_SPEC): Likewise.
13318         * config/mn10300/linux.h (LIB_SPEC): Likewise.
13319         * config/sh/linux.h (LIB_SPEC): Likewise.
13320
13321 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
13322
13323         * config/frv/frv.c (frv_legitimize_tls_address): New.
13324         (TARGET_HAVE_TLS): Define.
13325         (FRV_SYMBOL_REF_TLS_P): Define.
13326         (frv_override_options): Handle new register classes.
13327         (frv_legitimate_address_p): Reject tls addresses.
13328         (frv_legitimize_address): Handle TLS addresses.
13329         (gen_inlined_tls_plt): New.
13330         (gen_tlsmoff): New.
13331         (frv_legitimize_tls_address): New.
13332         (unspec_got_name): Add TLS entries.
13333         (got12_operand): Add R_FRV_TLSMOFF12 case.
13334         (frv_emit_move): Fixup TLS addresses.
13335         (frv_emit_movsi): Legitimize TLS addresses.
13336
13337         * config/frv/frv.h (MASK_BIG_TLS): New.
13338         (TARGET_BIG_TLS): New.
13339         (HAVE_AS_TLS): Define.
13340         (TARGET_SWITCHES): Add -mTLS and -mtls options.
13341         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
13342         (REG_CLASS_NAMES): Same.
13343         (REG_CLASS_CONTENTS): Same.
13344         (CONSTRAINT_LEN): New.
13345         (REG_CLASS_FROM_CONSTRAINT): New.
13346         (PREDICATE_CODES): Add symbolic_operand.
13347
13348         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
13349         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
13350         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
13351         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
13352         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
13353         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
13354         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
13355         GR9_REG, GR14_REG, LRREG.
13356         (type): Add load_or_call attribute.
13357         ("load_or_call"): New reservation.
13358         ("call_gettlsoff"): New.
13359         ("tls_indirect_call"): New.
13360         ("tls_load_gottlsoff12"): New.
13361         ("tlsoff_hilo"): New.
13362         ("tls_tlsdesc_ldd"): New.
13363         ("tls_tlsoff_ld"): New.
13364         ("tls_lddi"): New.
13365
13366         * config/frv/frv-protos.h (symbolic_operand): Protoize.
13367
13368         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
13369
13370         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
13371         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
13372         * config/frv/frv.c (TLS_BIAS): Define.
13373         (frv_output_dwarf_dtprel): New.
13374
13375 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
13376
13377         PR rtl-optimization/19579
13378         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
13379         both A and B, see if they don't clobber registers the other expr uses.
13380
13381 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
13382
13383         * real.c (do_add): Initialize signalling and canonical members.
13384
13385         * real.c (real_from_integer): Zero out destination.
13386
13387 2005-01-18  Jan Hubicka  <jh@suse.cz>
13388
13389         PR tree-optimize/19337
13390         * tree-inline.c (initialize_inlined_parameters): Copy
13391         saved_static_chain_decl only.
13392
13393 2005-01-25  Richard Henderson  <rth@redhat.com>
13394
13395         PR target/19556
13396         PR target/19584
13397         * config/i386/i386.c (x86_inter_unit_moves): Zero.
13398         (ix86_preferred_reload_class): Rewrite fp-constant section, with
13399         80387 enabled, to return a proper subclass.  Return the subset that
13400         overlaps with GENERAL_REGS for PLUS.
13401         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
13402
13403 2005-01-25  Richard Henderson  <rth@redhat.com>
13404
13405         PR middle-end/19609
13406         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
13407
13408 2005-01-25  Roger Sayle  <roger@eyesopen.com>
13409
13410         * expmed.c (choose_multiplier): Change interface to return the
13411         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
13412         (expand_divmod): Update calls to choose_multiplier.
13413
13414 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13415
13416         PR middle-end/19330
13417         * expmed.c (extract_bit_field): Use adjust_address instead of
13418         gen_lowpart when op0 is a MEM.
13419
13420 2005-01-24  Steven Bosscher  <stevenb@suse.de>
13421
13422         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
13423
13424 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
13425
13426         * config/mips/irix-csr.c: New file.
13427         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
13428         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
13429         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
13430         executables.
13431
13432 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
13433
13434         PR bootstrap/19364
13435         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
13436         sparc/elf.h, add sparc/sp-elf.h.
13437         (sparc-*-rtems*): Likewise.
13438         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
13439         tm-dwarf2.h, add sparc/sp-elf.h.
13440         (sparc86x-*-elf): Likewise.
13441         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
13442         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
13443         TARGET_OS_CPP_BUILTINS.
13444         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
13445         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
13446         Undefine it.
13447         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
13448         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
13449         (SWITCH_TAKES_ARG): Likewise.
13450         (LOCAL_LABEL_PREFIX): Likewise.
13451         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
13452         (TARGET_N_FORMAT_TYPES): Delete.
13453         (TARGET_FORMAT_TYPES): Likewise.
13454         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
13455         * config/sparc/elf.h: Delete.
13456         * config/sparc/sp-elf.h: New file.
13457
13458 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13459
13460         * tree-flow-inline.h (phi_arg_from_edge): Remove.
13461         * tree-flow.h: Remove the corresponding prototype.
13462         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
13463         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
13464
13465 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
13466
13467         PR target/17751
13468         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
13469         for AIX ABI or ELF -fPIC.
13470         (rs6000_emit_load_toc_table): Don't create toc_section here.
13471         (rs6000_xcoff_file_start): Nor here.
13472
13473 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
13474
13475         * sh.c (ra.h): Don't #include.
13476         (hard_regs_intersect_p): New function, resurrected from ra.c.
13477
13478         * sh.c: Fix 1996 Copyright.
13479
13480 2005-01-24  Richard Henderson  <rth@redhat.com>
13481             Aldy Hernandez  <aldyh@redhat.com>
13482
13483         * regrename.c (note_sets): Handle subregs.
13484
13485 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
13486
13487         PR bootstrap/18058
13488         * genconditions.c (write_header, write_conditions): Elide file if
13489         not GCC >= 3.0.1.
13490
13491 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13492
13493         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
13494         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
13495         Update copyright.
13496
13497 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
13498
13499         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
13500         expand_builtin_printf, expand_builtin_fprintf,
13501         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
13502         checking against POINTER_TYPE.
13503         (validate_arglist): Handle POINTER_TYPE code by checking
13504         POINTER_TYPE_P.
13505
13506 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
13507
13508         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
13509         init_rtlanal): New.
13510         (for_each_rtx): Call for_each_rtx_1.
13511         * rtl.h (init_rtlanal): Declare.
13512         * toplev.c (backend_init): Call init_rtlanal.
13513
13514 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
13515
13516         * flow.c (propagate_one_insn): Formatting.
13517
13518         PR middle-end/19551
13519         * flow.c (libcall_dead_p): Be more conservative if unsure.
13520         If there are any instructions between insn and call, see if they are
13521         all dead before saying the libcall is dead.
13522
13523 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
13524
13525         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
13526         operand constraint for operand 0.
13527
13528 2005-01-23  Richard Henderson  <rth@redhat.com>
13529
13530         PR 19486
13531         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
13532         edges leading to join block.
13533
13534 2005-01-23  Roger Sayle  <roger@eyesopen.com>
13535
13536         * expmed.c (expand_mult_highpart): Make static.  Change type of
13537         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
13538         (expand_divmod): Updates calls to expand_mult_highpart by using
13539         gen_int_mode to pass a CONST_INT rtx.
13540         * rtl.h (expand_mult_highpart): Remove prototype.
13541
13542 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13543
13544         * flow.c (regset_bytes, regset_size): Remove.
13545
13546         * cfganal.c: Fix a reference to Harvey's paper.
13547
13548 2005-01-23  Steven Bosscher  <stevenb@suse.de>
13549
13550         PR rtl-optimization/19464
13551         * tree-optimize.c (init_tree_optimization_passes): Add one more
13552         copyrename pass just before out-of-ssa.
13553
13554 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
13555
13556         PR bootstrap/18058
13557         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
13558         * ggc-none.c (ggc_free): Define.
13559
13560 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13561
13562         * cse.c (max_reg, max_insn_uid): Remove.
13563         (cse_main): Don't access max_reg or max_insn_uid.
13564
13565         * c-common.c (explicit_flag_signed_bitfields,
13566         lang_statement_code_p, lang_expand_function_end): Remove.
13567         * c-common.h: Remove the corresponding declarations.
13568         * c-opts.c (c_common_handle_option): Remove all write access
13569         to explicit_flag_signed_bitfields.
13570
13571         * cgraph.c (cgraph_varpool_n_nodes): Remove.
13572         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
13573         * cgraph.h: Remove the corresponding declaration.
13574
13575         * gcse.c (null_pointer_info): Remove.
13576
13577 2005-01-23  Roger Sayle  <roger@eyesopen.com>
13578             Eric Botcazou  <ebotcazou@libertysurf.fr>
13579
13580         * combine.c (simplify_logical): Only simplify logical expressions
13581         of the form ior(and(x,y),z) by the inverse distributive law if the
13582         result is cheaper than the original.
13583
13584 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13585
13586         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
13587         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
13588         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
13589         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
13590         config/freebsd-spec.h, config/arm/arm.h,
13591         config/h8300/h8300.md, config/i386/i386.md,
13592         config/i386/predicates.md, config/i386/sse.md,
13593         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
13594         config/vax/vax.md: Fix comment typos.  Follow spelling
13595         conventions.
13596
13597 2005-01-23  Steven Bosscher  <stevenb@suse.de>
13598
13599         * gengtype.c (walk_type): Produce `not equal to' compares for loop
13600         tests, instead of `less than'.
13601
13602 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
13603
13604         * function.c (assign_parm_setup_block): When creating a new stack slot
13605         for a parameter, get its alignment from the parameter's DECL_ALIGN
13606         rather than the type's TYPE_ALIGN.  Make sure that the parameter
13607         is at least word aligned.
13608
13609 2005-01-22  Roger Sayle  <roger@eyesopen.com>
13610
13611         PR middle-end/19378
13612         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
13613
13614 2005-01-22  Richard Henderson  <rth@redhat.com>
13615
13616         PR target/19506
13617         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
13618         in both compare operands.
13619         (movdfcc_1_sse_max): Likewise.
13620         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
13621         (movdfcc_1_sse): Likewise.
13622         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
13623         scratch register as needed.
13624
13625 2005-01-22  Richard Henderson  <rth@redhat.com>
13626
13627         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
13628
13629         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
13630
13631 2005-01-22  Richard Henderson  <rth@redhat.com>
13632
13633         * genopinit.c (optabs): Use smin/smax for floating point too.
13634         * doc/md.texi: Update to match.  Clarify that floating point
13635         results are undefined for +0/-0 and NaN.
13636         * doc/rtl.texi: Likewise.
13637         * rtl.def (SMIN, SMAX): Likewise
13638         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
13639
13640         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
13641         leading 's' to the name.
13642         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
13643         smaxxf3, sminxf3): Likewise.
13644         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
13645         Likewise.
13646
13647 2005-01-22  Paul Brook  <paul@codesourcery.com>
13648
13649         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
13650
13651 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
13652
13653         * config/s390/s390.c (struct processor_costs): New fields
13654         dlgr, dlr, dr, dsgfr, dsgr.
13655         (z900_cost, z990_cost): Values for new fields.
13656         (s390_rtx_costs): New cases MEM und COMPARE in switch
13657         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
13658         DIV, MOD, UDIV, UMOD.
13659
13660 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
13661
13662         * config/s390/s390.md ("doloop_si64"): Reload input value directly
13663         into the register being decremented.
13664         ("doloop_si31", "doloop_di"): Likewise.
13665         ("*doloop_si_long"): Adapt pattern.
13666
13667 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
13668
13669         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
13670         access registers.
13671         (CLASS_MAX_NREGS): Likewise.
13672
13673 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
13674
13675         * doc/tree-ssa.texi (Statement Operands): Add example for new
13676         must-def macro. Note deprecation of old operands interface.
13677
13678 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
13679
13680         PR tree-optimization/19484
13681         * tree-cfg.c (remove_fallthru_edge): New function.
13682         (cleanup_control_flow): Remove fallthru edges from calls that are
13683         now known not to return.
13684
13685 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
13686
13687         Fix PR tree-optimization/19038
13688         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
13689         copies with loop variant ones.
13690
13691 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
13692
13693         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
13694         config/alpha/alpha-protos.h, config/alpha/alpha.h,
13695         config/alpha/alpha.md, config/alpha/predicates.md,
13696         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
13697         config/sparc/sol2.h: Update copyright.
13698
13699         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
13700         first label to see if it is a nonlocal label.
13701
13702 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
13703             Andrew Pinski  <pinskia@physics.uc.edu>
13704
13705         PR target/19491
13706         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
13707         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
13708
13709 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
13710
13711         * config/rs6000/rtems.h: Update copyright.
13712
13713 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
13714
13715         PR target/19548
13716         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
13717         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
13718         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
13719
13720 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
13721
13722         PR c/18809
13723         * c-typeck.c (convert_arguments): Check for error_mark_node.
13724
13725 2005-01-21  Ian Lance Taylor  <ian@airs.com>
13726
13727         PR tree-optimization/13000
13728         * tree-inline.c: Include "tree-flow.h".
13729         (expand_call_inline): If warn_return_type, warn if non-void inline
13730         function falls through.
13731         * tree-cfg.c (execute_warn_function_return): Don't warn about
13732         control reaching end if TREE_NO_WARNING is set.  Set
13733         TREE_NO_WARNING.
13734         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
13735         has been lowered.
13736         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
13737         branch if we don't need one.
13738         * c-typeck.c: Include "tree-flow.h"
13739         (c_finish_bc_stmt): Don't add a goto if the current statement
13740         list doesn't fall through to the current point.
13741
13742 2005-01-21  Roger Sayle  <roger@eyesopen.com>
13743
13744         PR rtl-optimization/576
13745         * real.c (real_arithmetic): Change return type from void to bool
13746         to return an indication that the result may be inexact.
13747         * real.h (real_arithmeric): Update prototype.
13748         * fold-const.c (const_binop):  Don't constant fold floating
13749         point expressions when the user specifies -frounding-math and
13750         the result may depend upon the run-time rounding mode.
13751         (fold_convert_const_real_from_real): Clean-up.
13752         (fold_initializer): Ignore flag_rounding_math for initializers.
13753         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
13754         constant fold FP operations with flag_rounding_math if the
13755         result may depend upon the run-time rounding mode.
13756
13757 2005-01-21  Tom Tromey  <tromey@redhat.com>
13758
13759         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
13760
13761 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
13762
13763         * tree-cfg.c: Fix comment typos.
13764
13765 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
13766
13767         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
13768         around the call to rest_of_handle_branch_target_load_optimize.
13769
13770 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
13771
13772         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
13773         (sparc64-*-openbsd*): Likewise.
13774         (sparclite-*-elf*): Include tm-dwarf2.h.
13775         (sparc86x-*-elf*): Likewise.
13776         (sparc64-*-elf*): Likewise.
13777         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
13778         (DBX_DEBUGGING_INFO): Likewise.
13779         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
13780         (PREFERRED_DEBUGGING_TYPE): Likewise.
13781         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
13782         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
13783         (PREFERRED_DEBUGGING_TYPE): Likewise.
13784         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
13785         (PREFERRED_DEBUGGING_TYPE): Likewise.
13786         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
13787
13788 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
13789
13790         PR target/18701
13791         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
13792
13793 2005-01-20  Paul Brook  <paul@codesourcery.com>
13794
13795         * doc/rtl.texi: Document value extension requirements for CONST_INT.
13796
13797 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
13798
13799         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
13800         label is first in a sequence of labels.
13801
13802         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
13803
13804 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
13805             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13806
13807         * doc/sourcebuild.texi (Test Directives): New.
13808
13809 2005-01-20  Roger Sayle  <roger@eyesopen.com>
13810
13811         * real.c (real_floor): Don't leave the result uninitialized when
13812         mode is VOIDMode, but return the unrounded intermediate value.
13813         (real_ceil): Likewise.
13814
13815 2005-01-20  Paul Brook  <paul@codesourcery.com>
13816
13817         * config/arm/arm.md (insv): Use gen_int_mode.
13818
13819 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
13820
13821         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
13822         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
13823         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
13824         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
13825         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
13826
13827 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
13828
13829         Fix PR debug/19124
13830         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
13831         fbreg, so we have to assume we can't.
13832         (loc_descriptor_from_tree_1): Ditto.
13833         (containing_function_has_frame_base): New function.
13834         (add_location_or_const_value_attribute): Use it.
13835         Also try to generate a frame_base from a single element location
13836         list.
13837
13838 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
13839
13840         PR tree-optimization/15349
13841         * timevar.def (TV_TREE_MERGE_PHI): New.
13842         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
13843         PHI_WANTED.
13844         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
13845         calls to tree_forwarder_block_p.
13846         (remove_forwarder_block_with_phi, merge_phi_nodes,
13847         gate_merge_phi, pass_merge_phi): New.
13848         * tree-optimize.c (init_tree_optimization_passes): Add
13849         pass_merge_phi.
13850         * tree-pass.h: Add an extern for pass_merge_phi;
13851
13852 2005-01-20  Richard Henderson  <rth@redhat.com>
13853
13854         PR target/19418
13855         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
13856         (_mm_castps_pd, _mm_castps_si128): New.
13857         (_mm_castsi128_ps, _mm_castsi128_pd): New.
13858
13859 2005-01-20  Richard Henderson  <rth@redhat.com>
13860
13861         PR target/19530
13862         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
13863         __builtin_ia32_vec_init_v2si.
13864         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
13865         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
13866         (ix86_init_mmx_sse_builtins): Create it.
13867         (ix86_expand_builtin): Expand it.
13868         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
13869         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
13870         (vec_extractv2si_0, vec_extractv2si_1): New.
13871
13872 2005-01-20  Richard Henderson  <rth@redhat.com>
13873
13874         PR target/16533
13875         * config/i386/i386.c (ix86_expand_push): New.
13876         * config/i386/mmx.md (push<MMXMODE>1): New.
13877         * config/i386/sse.md (push<SSEMODE>1): New.
13878         * config/i386/i386-protos.h: Update.
13879
13880 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
13881
13882         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
13883         copyright.
13884
13885 2005-01-20  Richard Henderson  <rth@redhat.com>
13886
13887         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
13888         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
13889
13890 2005-01-19  Richard Henderson  <rth@redhat.com>
13891
13892         PR target/19350
13893         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
13894         to V4SFmode in SSE1 fallback load path.
13895
13896 2005-01-19  Richard Henderson  <rth@redhat.com>
13897
13898         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
13899         in QImode expansion to ix86_expand_vector_set.
13900         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
13901
13902 2005-01-19  Richard Henderson  <rth@redhat.com>
13903
13904         PR target/19511
13905         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
13906         subclass of the input class.
13907         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
13908         Always true for cross-SSE1 classes.  Rationalize conditionals.
13909         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
13910         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
13911         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
13912         (movdi_2): Add MMX/SSE zeros.
13913         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
13914         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
13915         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
13916         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
13917         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
13918         (zero_extendsidi2_rex64_1): Remove.
13919         (MOV0 peephole): Check GENERAL_REG_P.
13920
13921 2005-01-19  Richard Henderson  <rth@redhat.com>
13922
13923         PR target/19427
13924         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
13925         shufps elements.
13926         (ix86_expand_vector_extract): Likewise.
13927
13928 2005-01-19  Richard Henderson  <rth@redhat.com>
13929
13930         PR middle-end/19304
13931         * expr.c (emit_move_change_mode): New argument force; use
13932         simplify_gen_subreg if true.
13933         (emit_move_via_alt_mode): Merge into ...
13934         (emit_move_via_integer): ... here.
13935         (emit_move_ccmode): Use emit_move_change_mode directly.
13936
13937 2005-01-19  Richard Henderson  <rth@redhat.com>
13938
13939         PR target/19518
13940         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
13941         (alpha_preferred_reload_class): Handle CONST_VECTOR.
13942         (alpha_emit_set_const_1): Add no_output parameter; don't emit
13943         rtl if true.
13944         (alpha_emit_set_const): Likewise.  Make static.
13945         (alpha_emit_set_long_const): Make static.
13946         (alpha_extract_integer): Split out from alpha_expand_mov.
13947         (alpha_split_const_mov): Likewise.
13948         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
13949         (alpha_legitimate_constant_p): New.
13950         * config/alpha/alpha-protos.h: Update.
13951         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
13952         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
13953         * config/alpha/alpha.md (movsi): Add n alternative.
13954         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
13955         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
13956         (splitters for all of the above): Use alpha_split_const_mov.
13957         * config/alpha/predicates.md (non_add_const_operand): New.
13958         (non_zero_const_operand): New.
13959         (input_operand): Use alpha_legitimate_constant_p after reload.
13960
13961 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
13962
13963         PR tree-optimization/19038
13964         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
13965         (add_candidate): Add ivs with increment in latch only if
13966         allow_ip_end_pos_p is true.
13967         (determine_iv_cost): Use empty_block_p.
13968
13969 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
13970
13971         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
13972         (compute_dominance_frontiers): Ditto.
13973
13974 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
13975
13976         PR target/19529
13977         * config/sh/t-rtems: New.
13978         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
13979
13980 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
13981
13982         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
13983         the offset of the selected field.
13984
13985 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
13986
13987         * tree-cfg.c (remove_forwarder_block): Fix the check to
13988         prevent a nonlocal label from appearing in the middle of a
13989         basic block.
13990
13991 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
13992
13993         PR rtl-optimization/19462
13994         * reorg.c (find_end_label): Create return insn only if
13995         current_function_epilogue_delay_list is empty.
13996
13997 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
13998
13999         * doc/passes.texi: Remove paragraph mentioning new-ra.
14000
14001 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
14002
14003         PR rtl-optimization/15139
14004         * combine.c: Include params.h.
14005         (count_rtxs): New function.
14006         (record_value_for_reg): If replace_rtx would replace at least
14007         2 occurrences of REG in VALUE and TEM is really large, replace REG with
14008         (clobber (const_int 0)) instead of TEM.
14009         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
14010         * params.h (MAX_LAST_VALUE_RTL): New.
14011         * Makefile.in (combine.o): Depend on $(PARAMS_H).
14012         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
14013
14014         PR c/17297
14015         * c-typeck.c (digest_init): Only call build_vector if all constructor
14016         elements are *_CST nodes.
14017         * gimplify.c (gimplify_init_constructor): Likewise.
14018
14019         PR middle-end/19164
14020         * c-typeck.c (digest_init): Only call build_vector if inside_init
14021         is a CONSTRUCTOR.
14022
14023 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
14024
14025         * toplev.c (init_asm_output): Remove dead #ifdef.
14026
14027 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
14028
14029         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
14030
14031 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
14032
14033         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
14034         accessing DECL_FUNCTION_CODE.
14035         * dojump.c (do_jump): Likewise.
14036         * gimplify.c (gimplify_call_expr): Likewise.
14037         * predict.c (expr_expected_value): Likewise.
14038         (strip_builtin_expect): Likewise.
14039         * tree-inline.c (estimate_num_insns_1): Likewise.
14040         * tree-ssa-loop-im.c (stmt_cost): Likewise
14041         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
14042         (tree_expr_nonnegative_p): Likewise.
14043
14044 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
14045
14046         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
14047         variant of the load_pcrel_sym pattern.
14048         * config/sparc/sparc.md (P macro): Move to the top.
14049         (load_pcrel_sym): Macroize using P.
14050         (save_register_window): Likewise.
14051
14052 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
14053
14054         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
14055         ("sordered"): Same.
14056
14057 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
14058
14059         PR C/19472
14060         * c-typeck.c (build_asm_expr): Strip nops off
14061         input memory operands.
14062
14063 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
14064
14065         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
14066         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
14067         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
14068         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
14069
14070 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
14071
14072         PR target/19379
14073         * config/i386/i386.c (override_options): If the 80387 is disabled,
14074         then do not return FP values using FP registers.
14075
14076 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14077
14078         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
14079         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
14080         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
14081         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
14082         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
14083         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
14084         output.h, postreload-gcse.c, postreload.c, recog.c,
14085         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
14086         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
14087         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
14088         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
14089         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
14090         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
14091         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
14092         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
14093
14094         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14095         config/alpha/alpha.c, config/arm/vfp.md,
14096         config/i386/emmintrin.h, config/i386/i386-modes.def,
14097         config/i386/i386-protos.h, config/i386/i386.h,
14098         config/i386/pmmintrin.h, config/i386/ppro.md,
14099         config/i386/predicates.md, config/i386/xmmintrin.h,
14100         config/i860/i860.c, config/ia64/ia64-modes.def,
14101         config/ia64/ia64-protos.h, config/ia64/ia64.h,
14102         config/ia64/ia64.md, config/ia64/itanium1.md,
14103         config/ia64/itanium2.md, config/ia64/predicates.md,
14104         config/iq2000/iq2000.h, config/mips/linux64.h,
14105         config/rs6000/aix41.h, config/rs6000/aix43.h,
14106         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
14107         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
14108         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
14109         config/sparc/linux64.h, config/sparc/litecoff.h,
14110         config/sparc/sp64-elf.h, config/sparc/sparc.c,
14111         config/sparc/sparc.h, config/sparc/sparc.md,
14112         config/sparc/sysv4-only.h: Update copyright.
14113
14114 2005-01-18  Richard Henderson  <rth@redhat.com>
14115
14116         PR target/19496
14117         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
14118
14119 2005-01-18  Marc Espie  <espie@openbsd.org>
14120         * config/i386/openbsdelf.h: Typo.
14121
14122 2005-01-18  Richard Henderson  <rth@redhat.com>
14123
14124         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
14125         special case for sse.
14126         * config/i386/predicates.md (sse_comparison_operator): Likewise.
14127
14128 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
14129
14130         * tree-inline.c (estimate_num_insns_1): Added cases for
14131         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
14132
14133 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
14134
14135         PR rtl-optimization/19296
14136         * combine.c (simplify_comparison): Rewrite the condition under
14137         which a non-paradoxical SUBREG of a PLUS can be lifted when
14138         compared against a constant.
14139
14140 2005-01-18  Andi Kleen <ak@muc.de>
14141
14142         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
14143         * c.opt (-Wpointer-sign): Add.
14144         * doc/invoke.texi: (-Wpointer-sign): Add.
14145
14146 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
14147
14148         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
14149         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
14150         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
14151         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
14152         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
14153         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
14154         for TARGET_MIX_SSE_I387.
14155         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
14156         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
14157         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
14158         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
14159         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
14160         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
14161         TARGET_MIX_SSE_I387.
14162         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
14163         from expander.
14164
14165 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
14166
14167         PR target/19424
14168         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
14169         Add movaps alternative for xmm reg->reg move.
14170
14171 2005-01-17  Jeff Law  <law@redhat.com>
14172
14173         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
14174         at the end of the main DOM loop rather than just before DOM exits.
14175
14176 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
14177
14178         PR tree-optimization/19121
14179         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
14180         adding aliases to a name tag, also add them to the pointer's
14181         type tag.
14182         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
14183         sensitive alias info at all.  Only check that the two pointers
14184         have compatible pointed-to sets.
14185         * tree-ssa.c (verify_name_tags): Verify that the alias set of
14186         a pointer's type tag is a superset of the alias set of the
14187         pointer's name tag.
14188
14189 2005-01-17  James E Wilson  <wilson@specifixinc.com>
14190
14191         PR target/19357
14192         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
14193         comment to document why.
14194
14195 2005-01-17  Richard Henderson  <rth@redhat.com>
14196
14197         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
14198         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
14199         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
14200         sse2_vmsminv2df3_finite): New.
14201         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
14202         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
14203         Force op1 into register.
14204
14205 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
14206
14207         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
14208         bubblestrap from always rebuilding build directory.
14209
14210 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
14211
14212         * config/s390/s390.md ("*clc"): Remove incorrect '='.
14213         ("*cmpmem_short"): Likewise.
14214
14215 2005-01-17  Steven Bosscher  <stevenb@suse.de>
14216
14217         * basic-block.h: Document BB_* flags.
14218         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
14219         use an sbitmap instead.
14220         * sched-rgn.c (compute_trg_info): Likewise.
14221
14222 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
14223
14224         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
14225         redundant target_cpu_default and extra_parts lines.  Use the default
14226         "from-abi" ISA.
14227         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
14228         (SUBTARGET_EXTRA_SPECS): Delete.
14229         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
14230         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
14231         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
14232         and "n32" for -mabi=n32.
14233
14234 2005-01-17  Ian Lance Taylor  <ian@airs.com>
14235
14236         PR c/5675
14237         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
14238         fold constant variables into initial values.
14239
14240 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
14241
14242         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
14243
14244         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
14245         through the statements backward.
14246
14247 2005-01-17  Ian Lance Taylor  <ian@airs.com>
14248
14249         PR middle-end/13127:
14250         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
14251         a variable set to the return value of the inlined function.
14252
14253 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
14254
14255         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
14256         when modes are tieable.
14257
14258 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
14259
14260         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
14261         of pthread_create to find out if threads are enabled.
14262         * gthr-posix95.h (__gthread_active_p): Likewise.
14263
14264 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
14265
14266         * common.opt (-fnew-ra): Remove.
14267         * ra*.*: Remove.
14268         * toplev.h (flag_new_regalloc): Remove.
14269         * Makefile.in (ra*.*): Don't mention.
14270         * passes.c (rest_of_handle_new_regalloc): Remove.
14271         (rest_of_handle_combine, rest_of_compilation): Always consider
14272         flag_new_regalloc as false.
14273         * doc/invoke.texi: Don't document -fnew-ra.
14274
14275 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
14276
14277         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
14278         last parameter to reg_scan.
14279         * loop.c (loop_optimize): Likewise.
14280         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
14281         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
14282         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
14283         rest_of_handle_gcse, rest_of_handle_loop_optimize,
14284         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
14285         * regclass.c (reg_scan): Likewise, for the declaration.
14286         * rtl.h (reg_scan): Likewise, for the prototype.
14287
14288 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
14289
14290         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
14291         mark_dfs_back_edges.
14292
14293 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
14294
14295         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
14296         (compute_avail): Uses don't go in tmp_gen.
14297
14298 2005-01-16  Steven Bosscher  <stevenb@suse.de>
14299
14300         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
14301         loop to look for a free slot in a page entry.
14302
14303 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14304
14305         PR target/16304
14306         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
14307         * toplev.c (compile_file): Call process_pending_assemble_output_defs
14308         just before targetm.asm_out.file_end.
14309         * tree.h (process_pending_assemble_output_defs): Declare.
14310         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
14311         New functions.
14312         (assemble_alias): Defer generation of assembly code for defines when
14313         TARGET_DEFERRED_OUTPUT_DEFS is true.
14314         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
14315         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
14316         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
14317
14318 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14319
14320         PR target/19336
14321         * pa.c (pa_scalar_mode_supported_p): New function.
14322         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
14323         * pa.h (MIN_UNITS_PER_WORD): Add comment.
14324
14325         * pa-protos.h (prefetch_operand): Delete.
14326         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
14327         * pa.c (prefetch_operand): Delete.
14328         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
14329         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
14330         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
14331         and prefetch_nocc_operand.
14332         * pa.md (prefetch): Rework to avoid reload problems handling short
14333         displacements when a cache control completer needs to be provided.
14334         (prefetch_32, prefetch_64): Delete.
14335         (prefetch_cc, prefetch_nocc): New patterns.
14336
14337 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
14338
14339         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
14340
14341 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14342
14343         PR ada/19388
14344         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
14345         exceeds maximum alignment for global common data.
14346         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
14347         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
14348
14349 2004-01-15  Roger Sayle  <roger@eyesopen.com>
14350
14351         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
14352
14353 2004-01-15  Roger Sayle  <roger@eyesopen.com>
14354
14355         * harg-reg-set.h (reg_class_names): Prototype global array.
14356         * regclass.c (reg_class_names): Declare here and initialize to
14357         REG_CLASS_NAMES.
14358         (dump_regclass): Remove local declaration of reg_class_names.
14359         (regclass): Likewise.
14360         * cfg.c (dump_flow_info): Likewise.
14361         * ra-debug.c (reg_class_names): Likewise.
14362         * regrename.c (reg_class_names): Likewise.
14363         * reload.c (reg_class_names): Likewise.
14364         * reload1.c (spill_failure): Likewise.
14365         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
14366
14367 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
14368
14369         * config/s390/s390.md ("reload_outti"): Remove predicate for
14370         output operand.  Abort if operand is not a MEM.
14371         ("reload_outdi", "reload_outdf"): Likewise.
14372
14373 2005-01-15  Marc Espie  <espie@openbsd.org>
14374
14375         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
14376         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
14377         * config/openbsd.h:  Fix C++ includes for native configurations.
14378         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
14379         Add trampoline support.
14380         * config/i386/openbsdelf.h: New.
14381
14382 2005-01-15  Marc Espie  <espie@openbsd.org>
14383
14384         * collect2.c (main): Explicitly parse -dynamic-linker option.
14385
14386 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
14387
14388         PR tree-optimization/19060
14389         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
14390         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
14391         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
14392         and handle extract_range_from_cond returning false.
14393         * fold-const.c (fold): Optimize comparisons with min/max even for
14394         width > HOST_BITS_PER_WIDE_INT.
14395
14396 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
14397
14398         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
14399         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
14400         Remove little endian multilib variants.
14401         Add mips32 multilib variant.
14402
14403 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14404
14405         * explow.c (copy_all_reg, stabilize): Remove.
14406         * expr.h: Remove the corresponding prototypes.
14407
14408         * rtlanal.c (regs_set_between_p): Remove.
14409         * rtl.h: Remove the corresponding prototype.
14410
14411 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
14412
14413         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
14414         to rs6000_nonimmediate_operand.
14415         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
14416         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
14417         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
14418         rs6000_nonimmediate_operand.
14419         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
14420         rs6000_nonimmediate_operand.
14421
14422 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
14423
14424         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
14425
14426 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
14427
14428         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
14429         on e500v2.
14430         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
14431         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
14432
14433         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
14434         (rs6k_nonimmediate_operand): New.
14435         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
14436         correctly.
14437         (legitimate_lo_sum_address_p): Same.
14438         (rs6000_legitimize_address): Same.
14439         (rs6000_legitimize_reload_address): Same.
14440         (rs6000_legitimate_address): Same.
14441         (spe_build_register_parallel): Pass DF and DC modes in a DI
14442         register.
14443
14444         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
14445         to rs6k_nonimmediate_operand.
14446
14447         * config/rs6000/spe.md ("*frob_df_di"): New.
14448         ("*frob_di_df"): New.
14449         ("*frob_di_df_2"): New.
14450         ("*mov_sidf_e500_subreg0"): New.
14451         ("*mov_sidf_e500_subreg4"): New.
14452         ("*movdf_e500_double"): Change predicate to
14453         rs6k_nonimmediate_operand.
14454
14455 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
14456
14457         * postreload.c (move2add_note_store): Only call
14458         trunc_int_for_mode on scalar integers.
14459
14460 2005-01-14  Steven Bosscher  <stevenb@suse.de>
14461
14462         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
14463         replace BB_VISITED uses.
14464         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
14465         (propagate_necessity): Check the bitmap instead of BB_VISITED.
14466         (tree_dce_done): Free visited_control_parents.
14467         (perform_tree_ssa_dce): Allocate and clear it.
14468         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
14469         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
14470         instead of BB_VISITED.
14471
14472 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
14473
14474         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
14475         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
14476         Remove unused prototypes.
14477
14478 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
14479
14480         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
14481         64-bit register usage.
14482         (spe_func_has_64bit_regs_p): Add FIXME note.
14483
14484 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
14485
14486         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
14487         flag_finite_math_only with flag_unsafe_math_optimizations.
14488
14489 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
14490
14491         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
14492         end-of-stack check.
14493         (__tpf_eh_return): Copy TPF private stack area from the module
14494         boundary stack frame.  Add check for when module addresses are
14495         equal, but no stub address is found.
14496
14497 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
14498
14499         PR target/7525
14500         * arm.h (struct machine_function): Add call_via field.
14501         (thumb_call_via_label): Declare.
14502         * arm.c (thumb_call_via_label): New variable.
14503         (thumb_call_reg_needed): New variable.
14504         (arm_output_function_epilogue): For Thumb code, output any per-function
14505         call-indirect trampolines.
14506         (thumb_call_via_reg): New function.
14507         (arm_file_end): New function.
14508         (TARGET_ASM_FILE_END): Call arm_file_end.
14509         (aof_file_end): Likewise.
14510         * arm-protos.h (thumb_call_via_reg): Declare.
14511         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
14512         thumb_call_via_reg in normal case.
14513
14514 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
14515
14516         PR middle-end/19084
14517         PR rtl-optimization/19348
14518         * recog.c (peephole2_optimize): Do global life update if some peephole
14519         decides it doesn't need at least one of its inputs and that change
14520         influences liveness at the start of the basic block.
14521
14522         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
14523         arguments instead of 1.
14524
14525 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
14526
14527         PR middle-end/18820
14528         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
14529         zero for nested functions needing a static chain or functions
14530         with a non-constant address.
14531
14532 2005-01-13  Roger Sayle  <roger@eyesopen.com>
14533
14534         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
14535         (and (sign_extend X) C) into (zero_extend (and X C)).
14536
14537 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
14538
14539         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
14540
14541 2005-01-13  Richard Henderson  <rth@redhat.com>
14542
14543         PR target/19009
14544         PR target/19250
14545         PR target/19252
14546         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
14547         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
14548         not just TARGET_SSE.
14549         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
14550         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
14551         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
14552         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
14553         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
14554         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
14555         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
14556         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
14557         (movdicc_c_rex64): Rename with '*'.
14558         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
14559         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
14560         (movsfcc_1_387): Rename from movsfcc_1.
14561         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
14562         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
14563         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
14564         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
14565         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
14566         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
14567         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
14568         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
14569         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
14570         sse_movdfcc_const0_4): Remove.
14571         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
14572         recognize min/max early.  Update for changed sse cmove patterns.
14573         (ix86_split_sse_movcc): New.
14574         * config/i386/i386-protos.h: Update.
14575
14576 2005-01-13  Steven Bosscher  <stevenb@suse.de>
14577
14578         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
14579         (fix_stmt_v_may_defs): Likewise.
14580
14581 2005-01-13  Richard Henderson  <rth@redhat.com>
14582
14583         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
14584         for converting the mask.
14585
14586 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
14587
14588         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
14589         definition to 600.
14590
14591 2005-01-13  Richard Henderson  <rth@redhat.com>
14592
14593         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
14594         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
14595         IX86_BUILTIN_MOVDQ2Q): Remove.
14596         (IX86_BUILTIN_VEC_EXT_V4SI): New.
14597         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
14598         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
14599         shuffling.
14600         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
14601         (sse2_pextrw): Fix immediate constraint.
14602         (sse2_loadq, sse2_loadq_rex64): Remove.
14603         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
14604         Use __builtin_ia32_vec_ext_<size>.
14605         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
14606
14607 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
14608
14609         * function.c (assign_parm_setup_block): Look inside original
14610         entry_parm when inspecting PARALLEL.
14611
14612 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
14613             Joel Sherrill  <joel@oarcorp.com>
14614
14615         PR target/19399
14616         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
14617         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
14618         rtems_gxx_recursive_mutex_init.
14619         (__gthread_recursive_mutex_lock): New function.
14620         (__gthread_recursive_mutex_trylock): Likewise.
14621         (__gthread_recursive_mutex_unlock): Likewise.
14622
14623 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
14624
14625         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
14626
14627 2005-01-13  Jan Beulich  <jbeulich@novell.com>
14628
14629         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
14630         (ashrti3_internal): Indicate output is early clobber. Generate result
14631         into output rather than first input. Use move for low word of output
14632         if shift count is exactly 64.
14633         (lshrti3_internal): Likewise.
14634
14635 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
14636
14637         PR target/18329
14638         PR target/18330
14639         * reload1.c (delete_output_reload): Don't delete an output reload
14640         if the pseudo lives longer than a single basic block.  Adjust and
14641         improve wording of comment.
14642
14643 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
14644
14645         PR target/19334
14646         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
14647         of TYPE_SIZE where we mean the number of bytes.
14648
14649 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
14650
14651         * function.c (assign_parm_setup_block): Relax condition on
14652         multi-register optimization.
14653
14654 2005-01-12  Nick Clifton  <nickc@redhat.com>
14655
14656         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
14657         an "in_delay_slot" attribute of "no" to prevent them being used in
14658         delay slots.  This is forbidden because they might generate
14659         exceptions.
14660
14661 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
14662
14663         PR target/19389
14664         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
14665         with r->Y and Y->r.
14666
14667 2005-01-12  Nick Clifton  <nickc@redhat.com>
14668
14669         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
14670         passed on to GAS) but do not define, as GAS no longer supports or
14671         needs the -m2000 option.
14672
14673 2005-01-11  Roger Sayle  <roger@eyesopen.com>
14674
14675         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
14676         type as args of unprototyped builtins aren't automatically promoted.
14677         (fold_builtin_abs): Likewise.
14678
14679 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14680
14681         * Makefile.in: Set a `build-warn' variable.
14682
14683 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
14684
14685         PR tree-optimization/17949
14686         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
14687         (find_interesting_uses_address): Use it.
14688
14689 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
14690
14691         * regrename.c (kill_value): Handle subreg's that won't simplify.
14692
14693 2005-01-11  Richard Henderson  <rth@redhat.com>
14694
14695         PR target/13366
14696         * config/i386/i386.h (enum ix86_builtins): Move ...
14697         * config/i386/i386.c: ... here.
14698         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
14699         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
14700         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
14701         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
14702         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
14703         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
14704         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
14705         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
14706         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
14707         IX86_BUILTIN_LOADDDUP): Remove.
14708         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
14709         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
14710         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
14711         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
14712         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
14713         (ix86_init_builtins): Make static.
14714         (ix86_init_mmx_sse_builtins): Update for changed builtins.
14715         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
14716         if all the modes match.  Otherwise, fake it.
14717         (get_element_number, ix86_expand_vec_init_builtin,
14718         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
14719         (ix86_expand_builtin): Make static.  Update for changed builtins.
14720         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
14721         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
14722         (ix86_expand_vector_init_duplicate): New.
14723         (ix86_expand_vector_init_low_nonzero): New.
14724         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
14725         Split out from ix86_expand_vector_init; handle integer modes.
14726         (ix86_expand_vector_init): Use them.
14727         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
14728         * config/i386/i386-protos.h: Update.
14729         * config/i386/predicates.md (reg_or_0_operand): New.
14730         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
14731         (movv2sf_internal): Likewise.  And a splitter to match them all.
14732         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
14733         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
14734         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
14735         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
14736         (mmx_pinsrw): Fix operand ordering.
14737         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
14738         rather than sse_loadss expander.
14739         (movv2df splitter): Similarly.
14740         (sse_loadss, sse_loadlss): Remove.
14741         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
14742         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
14743         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
14744         (sse3_movddup): Rename with '*'.
14745         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
14746         (sse2_loadsd): Remove.
14747         (vec_dupv2df_sse3): Rename from sse3_loadddup.
14748         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
14749         (sse2_pinsrw): Fix argument ordering.
14750         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
14751         (sse2_stored): Remove 'r' destination.
14752         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
14753         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
14754         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
14755         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
14756         vec_extractv16qi, vec_initv16qi): New.
14757
14758         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
14759         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
14760         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
14761         constructor form.
14762         (_mm_load_pd, _mm_store_pd): Use plain dereference.
14763         (_mm_load_si128, _mm_store_si128): Likewise.
14764         (_mm_load1_pd): Use _mm_set1_pd.
14765         (_mm_load_sd): Use _mm_set_sd.
14766         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
14767         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
14768         (_mm_set_epi64): Use _mm_set_epi64x.
14769         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
14770         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
14771         _mm_setr_epi8): Use _mm_set_foo form.
14772         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
14773         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
14774         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
14775         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
14776         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
14777         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
14778         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
14779         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
14780         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
14781         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
14782         (_mm_movedup_pd): Use _mm_shuffle_pd.
14783         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
14784         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
14785         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
14786         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
14787         Use _mm_setzero_ps.
14788         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
14789         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
14790         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
14791         (_mm_store_ps): Use raw dereference.
14792         (_mm_store1_ps): Use _mm_storeu_ps.
14793         (_mm_storer_ps): Use _mm_store_ps.
14794         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
14795         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
14796
14797 2005-01-11  Stan Shebs  <shebs@apple.com>
14798
14799         * config/rs6000/rs6000.c (machopic_output_stub): Issue
14800         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
14801
14802 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
14803
14804         PR target/18761
14805         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14806         Skip all DECLs except for FIELD_DECLs.
14807
14808 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
14809
14810         * config/s390/s390.c (override_options): Return error if
14811         -mbackchain, -mpacked-stack and -mhard-float are used together.
14812         (s390_va_start): Remove the backchain && packed-stack special case.
14813         (s390_gimplify_va_arg): Likewise.
14814         * doc/invoke.texi: Remove the ABI incompatibility note.
14815
14816 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
14817
14818         * config/s390/s390.c (struct s390_frame_layout): Remove
14819         save_backchain_p.
14820         (s390_frame_info, s390_emit_prologue): Replace occurrences of
14821         save_backchain_p with TARGET_BACKCHAIN.
14822
14823 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
14824
14825         PR target/18916
14826         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
14827         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
14828         * function.c (locate_and_pad_parm): Set new field.
14829         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
14830         Tweak where_pad test to include "none".  Always set mem align for
14831         stack_parm.
14832         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
14833         not sufficient for type.
14834         (assign_parm_setup_block): If stack_parm is zero on entry, always
14835         make a new stack local.  Block move old stack parm if necessary
14836         to new aligned stack local.
14837         (assign_parm_setup_stack): Use a block move to handle
14838         potentially misaligned entry_parm.
14839         (assign_parms_unsplit_complex): Specify required alignment when
14840         creating stack local.
14841         * calls.c (compute_argument_addresses): Override alignment of stack
14842         arg calculated from its type with the alignment given by
14843         FUNCTION_ARG_BOUNDARY.
14844         (store_one_arg): Likewise.
14845
14846 2005-01-11  Jan Beulich  <jbeulich@novell.com>
14847
14848         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
14849         Change respective itanium_class attribute to ialu.
14850         (shladdp4_internal): New.
14851         * config/ia64/predicates.md (shladd_log2_operand): New.
14852
14853 2005-01-11  Richard Henderson  <rth@redhat.com>
14854
14855         * expr.c (store_constructor): Use rtvec_alloc instead of
14856         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
14857
14858 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
14859
14860         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
14861
14862 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
14863
14864         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
14865         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
14866         (TARGET_RWRELOC): Define.
14867         (ia64_rwreloc_section_type_flags): Delete.
14868         (ia64_section_type_flags): New function.
14869         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
14870         (TARGET_RWRELOC): Define.
14871
14872 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
14873
14874         PR target/18987
14875         * config/ia64/ia64.c (process_set): For alloc insn, only call
14876         process_epilogue is !frame_pointer_needed.
14877
14878 2005-01-10  Roger Sayle  <roger@eyesopen.com>
14879
14880         PR c++/19355
14881         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
14882         unary operator and can't be treated as a binary/comparison operator.
14883
14884 2005-01-10  Richard Henderson  <rth@redhat.com>
14885
14886         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
14887         (ix86_return_in_memory): Likewise.
14888         (function_arg_advance):  Likewise.  Mirror structure in function_arg
14889         for choosing register to advance.
14890
14891 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14892
14893         * tree-vectorizer.c, tree.def: Fix comment typos.
14894
14895 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
14896
14897         * config/s390/s390.c (struct processor_costs): 4 new fields:
14898         ddbr, ddr, debr, der.
14899         (s390_rtx_costs): More precise handling of divide instructions.
14900
14901 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
14902
14903         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
14904
14905 2005-01-10  Jan Beulich  <jbeulich@novell.com>
14906
14907         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
14908         names resulting from -ffunction-sections/-fdata-sections and linkonce
14909         ones.
14910         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
14911         based on the section name. Rearrange the section name comparison logic
14912         slightly so that each section name is compared against at most once.
14913
14914 2005-01-10  Ben Elliston  <bje@au.ibm.com>
14915
14916         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
14917         targets for which -fPIC reduces limitations on the GOT size.
14918
14919 2005-01-09  Falk Hueffner  <falk@debian.org>
14920
14921         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
14922         X/C1 cmpop C2.
14923
14924 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
14925
14926         PR target/18720
14927         * collect2.c (main): Set aixrtl_flag for -brtl option.
14928         (resolve_lib_name): Search for .so file extension before .a
14929         if aixrtl_flag set.
14930
14931 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
14932
14933         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
14934         (vect_analyze_data_refs_alignment): Add dump prints.
14935
14936 2005-01-09  Ira Rosen  <irar@il.ibm.com>
14937
14938         * tree-vectorizer.c (vect_analyze_offset_expr): Use
14939         expr_invariant_in_loop_p.
14940         Initialize outputs first thing in the function.
14941         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
14942         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
14943         (vect_analyze_pointer_ref_access): Check that the initial condition of
14944         the access function is loop invariant.
14945
14946 2005-01-09  Richard Henderson  <rth@redhat.com>
14947
14948         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
14949         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
14950         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
14951         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
14952         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
14953         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
14954         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
14955         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
14956         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
14957         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
14958         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
14959         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
14960         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
14961         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
14962         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
14963         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
14964         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
14965         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
14966         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
14967         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
14968         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
14969         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
14970         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
14971         mmx_ prefix.
14972         (mmx_clrdi, pavgusb): Remove.
14973         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
14974         with leading sse_ prefix.
14975         * config/i386/sse.md: Receive them.
14976         * config/i386/mmx.md: New file.
14977         (MMXMODE12, MMXMODE24, mmxvecsize): New.
14978         (subrv2sf3): Turn into expander for normal subtraction.
14979         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
14980         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
14981         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
14982         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
14983         commutative; use ix86_binary_operator_ok.
14984         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
14985         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
14986         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
14987         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
14988         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
14989         Macroize from existing patterns; use ix86_binary_operator_ok.
14990         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
14991         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
14992         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
14993         with vec_select+vec_concat.
14994         (mmx_pshufw, mmx_pshufw_1): Likewise.
14995         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
14996         (mmx_uavgv4hi3): Model correctly.
14997         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
14998         _mm_xor_si64): Remove casts.
14999
15000 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
15001
15002         PR tree-optimization/19224
15003         * tree-scalar-evolution.c (get_instantiated_value,
15004         set_instantiated_value): New functions.
15005         (instantiate_parameters_1): Cache the results.
15006         (instantiate_parameters, resolve_mixers): Initialize and free
15007         the cache.
15008
15009 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
15010
15011         * config/i386/i386.md (addhi_4): Correct reference in comment.
15012         (addqi_4): Same.
15013
15014 2005-01-08  Richard Henderson  <rth@redhat.com>
15015
15016         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
15017         (_mm_cvtsi128_si64x): Likewise.
15018         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
15019         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
15020         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
15021         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
15022         * config/i386/i386-protos.h: Update.
15023         * config/i386/i386.c (print_operand): Add 'H'.
15024         (ix86_fixup_binary_operands): Split out from ...
15025         (ix86_expand_binary_operator): ... here.
15026         (ix86_fixup_binary_operands_no_copy): New.
15027         (ix86_expand_fp_absneg_operator): Handle vector mode results.
15028         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
15029         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
15030         (safe_vector_operand): Use CONST0_RTX.
15031         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
15032         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
15033         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
15034         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
15035         special cases.
15036         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
15037         (IX86_BUILTIN_CMPNGESS): New.
15038         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
15039         (attr type): Add sselog1.
15040         (attr unit, attr memory): Handle it.
15041         (movti, movti_internal, movti_rex64): Move near other integer moves.
15042         (movtf, movtf_internal): Move near other fp moves.
15043         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
15044         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
15045         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
15046         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
15047         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
15048         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
15049         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
15050         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
15051         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
15052         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
15053         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
15054         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
15055         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
15056         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
15057         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
15058         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
15059         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
15060         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
15061         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
15062         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
15063         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
15064         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
15065         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
15066         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
15067         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
15068         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
15069         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
15070         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
15071         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
15072         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
15073         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
15074         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
15075         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
15076         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
15077         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
15078         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
15079         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
15080         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
15081         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
15082         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
15083         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
15084         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
15085         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
15086         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
15087         same time.
15088         (SSEPUSH, push<SSEPUSH>): Remove.
15089         (MMXPUSH, push<MMXPUSH>): Remove.
15090         (sse_movaps, sse_movaps_1, sse_movups): Remove.
15091         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
15092         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
15093         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
15094         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
15095         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
15096         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
15097         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
15098         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
15099         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
15100         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
15101         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
15102         (ppro_sse_log_V4SF): Handle sselog1.
15103         * config/i386/predicates.md (const_0_to_1_operand): New.
15104         (const_0_to_255_mul_8_operand): New.
15105         (const_1_to_31_operand): Rename from const_int_1_31_operand.
15106         (const_2_to_3_operand, const_4_to_7_operand): New.
15107         * config/i386/sse.md: New file.
15108         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
15109         (sse_movups): Rename from sse_movups_1.
15110         (sse_loadlss): Rename from sse_loadss_1.
15111         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
15112         from the name.
15113         (negv4sf2): Use ix86_expand_fp_absneg_operator.
15114         (absv4sf2, negv2df, absv2df): New.
15115         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
15116         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
15117         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
15118         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
15119         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
15120         (sse3_addsubv4sf3): Model correctly.
15121         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
15122         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
15123         (sse_movhlps): Model with vec_select+vec_concat.
15124         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
15125         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
15126         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
15127         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
15128         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
15129         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
15130         sse2_pshufhw_1): Likewise.
15131         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
15132         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
15133         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
15134         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
15135         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
15136         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
15137         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
15138         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
15139         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
15140         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
15141         sminv8hi3): Mark commutative
15142         operands.  Use ix86_binary_operator_ok.
15143         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
15144         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
15145         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
15146         sse2_punpcklqdq): Allow operand2 in memory.
15147         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
15148         sse2_movsd): Add memory alternatives.
15149         (sse_storelps): Turn expander into an insn; split after reload.
15150         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
15151         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
15152
15153 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15154
15155         * configure.ac (DWARF-2 debug_line): Use objdump.
15156         * configure: Regenerate.
15157
15158 2005-01-08  Jeff Law  <law@redhat.com>
15159             Diego Novillo  <dnovillo@redhat.com>
15160
15161         PR tree-optimization/18241
15162         * tree-nrv.c (tree_nrv): Ignore volatile return values.
15163         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
15164         statements with volatile operands.
15165         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
15166         operands after marking a statement with has_volatile_ops.
15167
15168 2005-01-08  Roger Sayle  <roger@eyesopen.com>
15169
15170         * tree.c (int_fits_type_p): Always honor integer constant
15171         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
15172
15173 2005-01-08  Roger Sayle  <roger@eyesopen.com>
15174
15175         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
15176         the latent bug in rtl_delete_block has been resolved.
15177
15178 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
15179
15180         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
15181         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
15182
15183 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
15184
15185         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
15186         library as @multilib_dir@/$(SHLIB_SONAME).
15187
15188 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
15189
15190         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
15191         * configure: Regenerate.
15192
15193 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
15194
15195         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
15196         TYPE_MODE.
15197
15198 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
15199
15200         PR target/13674
15201         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
15202         Convert non-word aligned offset address using ld/std into
15203         indirect address.
15204
15205 2005-01-07  Richard Henderson  <rth@redhat.com>
15206
15207         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
15208
15209 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
15210
15211         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
15212
15213 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
15214
15215         PR tree-optimization/19283
15216         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
15217         is not shorter than the original type.
15218
15219         PR rtl-optimization/19012
15220         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
15221
15222         PR rtl-optimization/18861
15223         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
15224         (FULL_STATE): Define.
15225         (mark_tablejump_edge): New function.
15226         (purge_dead_tablejump_edges): New function.
15227         (find_bb_boundaries): Use it.
15228
15229         PR tree-optimization/18828
15230         * builtins.c (expand_builtin_next_arg): Remove argument and all
15231         the argument checking.
15232         (expand_builtin): Adjust caller.
15233         (expand_builtin_va_start): Likewise.  Remove error for too many
15234         arguments.
15235         (fold_builtin_next_arg): Issue error for too many arguments.
15236         After checking arguments, replace them with magic arguments that
15237         prevent further checking of the args.
15238
15239 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15240
15241         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
15242
15243 2005-01-06  Roger Sayle  <roger@eyesopen.com>
15244
15245         PR target/6077
15246         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
15247         and %{.S:...} (and their negative variants) to test whether the
15248         input file is assembler or pre-processed-assembler independent of
15249         the actual filename extension.
15250
15251 2005-01-06  Roger Sayle  <roger@eyesopen.com>
15252
15253         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
15254         of sign or zero extended values.
15255
15256 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
15257
15258         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
15259         for IBM long double format correctly.
15260
15261 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
15262
15263         Fix PR tree-optimization/18792
15264
15265         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
15266         to first_loop_depth, and use loop depth instead of loop number.
15267         (build_classic_dir_vector): Ditto.
15268         (compute_data_dependences_for_loop): Use depth, not loop number.
15269         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
15270         number. Pass in loops, instead of loop numbers.
15271         (gather_interchange_stats): Ditto.
15272         (linear_transform_loops): Ditto.
15273
15274 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
15275
15276         PR rtl-opt/13299
15277         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
15278         biv_fits_mode_p, extension_within_bounds_p): New functions.
15279         (check_ext_dependent_givs): Use them.
15280
15281 2005-01-06  Roger Sayle  <roger@eyesopen.com>
15282
15283         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
15284         more than one barrier, in which case we should delete them all.
15285
15286 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
15287
15288         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
15289
15290 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
15291
15292         Fix PR middle-end/19286
15293         Fix PR debug/19267
15294         * dwarf2out.c (gen_subprogram_die): If we've already tried to
15295         output this subprogram, simply ignore this attempt to do it again.
15296         (add_abstract_origin_attribute): Don't abort trying to add the abstract
15297         origin attribute if it's not possible.
15298         (gen_block_die): Don't ignore subblocks of "unused" blocks.
15299         (decls_for_scope): Ditto.
15300         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
15301         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
15302
15303 2005-01-05  Richard Henderson  <rth@redhat.com>
15304
15305         PR target/11327
15306         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
15307         (bdesc_2arg): Use it.
15308         (ix86_expand_binop_builtin): Force operands into registers
15309         when optimizing.
15310         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
15311         ix86_expand_sse_compare, ix86_expand_sse_comi,
15312         ix86_expand_builtin): Likewise.
15313
15314 2005-01-05  Richard Henderson  <rth@redhat.com>
15315
15316         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
15317         and VEC_SELECT.
15318         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
15319         (mulv4hi3): Set itanium_class mmmul.
15320         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
15321         (fpack): Rename from fpack_sfsf.
15322
15323 2005-01-05  Richard Henderson  <rth@redhat.com>
15324
15325         PR rtl-opt/10692
15326         * reload1.c (do_input_reload): Restrict the optimization deleteing
15327         a previous output reload to RELOAD_FOR_INPUT.
15328
15329 2005-01-05  Steven Bosscher  <stevenb@suse.de>
15330
15331         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
15332         comment that we fall through after case.
15333         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
15334         (distribute_links): Likewise.
15335         * cse.c (cse_insn): Likewise.
15336         * cselib.c (cselib_invalidate_mem): Likewise.
15337         * df.c: Update comments at the top of the file.
15338         (read_modify_subreg_p): Update comments here too.
15339         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
15340         * flow.c (mark_set_1): Likewise.
15341         (mark_used_regs): Likewise.
15342         * gcse.c (mems_conflict_for_gcse_p): Likewise.
15343         (canon_list_insert): Likewise.
15344         (mark_set): Likewise.
15345         (try_replace_reg): Likewise.
15346         (store_killed_in_insn): Likewise.
15347         * loop.c (count_one_set): Likewise.
15348         (basic_induction_var): Likewise.
15349         * postreload-gcse.c (find_mem_conflicts): Likewise.
15350         * postreload.c (reload_combine_note_store): Likewise.
15351         (move2add_note_store): Likewise.
15352         * reload.c (find_equiv_reg): Likewise.
15353         (mark_referenced_resources): Likewise.
15354         * rtlanal.c (set_noop_p): Likewise.
15355         (note_stores): Likewise.
15356         (note_uses): Likewise.
15357         * sched-deps.c (sched_analyze_1): Likewise.
15358         * sched-rgn.c (check_live_1): Likewise.
15359         (update_live_1): Likewise.
15360         * config/i860/i860.c: Likewise.
15361
15362         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
15363         an lvalue.
15364         (ZERO_EXTRACT): Mention that this one can be an lvalue.
15365
15366         * doc/rtl.texi: Update documentation for bit-fields and SET.
15367
15368 2005-01-05  Roger Sayle  <roger@eyesopen.com>
15369
15370         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
15371
15372 2005-01-05  Jan Hubicka  <jh@suse.cz>
15373             Richard Henderson  <rth@redhat.com>
15374
15375         PR target/18910
15376         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
15377         with an offset.
15378
15379 2005-01-05  Richard Henderson  <rth@redhat.com>
15380
15381         PR target/12902
15382         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
15383         (sse_shufps): Change operand 3 to const_int_operand.
15384         (sse2_storelps): Fix typo in template.
15385         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
15386         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
15387         (ix86_expand_builtin): Likewise.
15388
15389 2005-01-05  Julian Brown  <julian@codesourcery.com>
15390
15391         * config/arm/arm.c (arm_return_in_memory): Treat complex types
15392         as aggregates for AAPCS ABIs.
15393
15394 2005-01-05  Stan Shebs  <shebs@apple.com>
15395
15396         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
15397         Mach-O getters if ppc64.
15398         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
15399         size argument.
15400         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
15401         signed four-byte field for global code case.
15402         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
15403
15404 2005-01-05  Roger Sayle  <roger@eyesopen.com>
15405
15406         PR middle-end/19100
15407         * c-common.c: Include real.h.
15408         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
15409         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
15410         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
15411         * Makefile.in (c-common.o): Update dependencies.
15412
15413 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
15414
15415         * c-parse.in (asm_string): Add trailing semicolon.
15416
15417 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
15418
15419         * c-parse.in (asm_string): New.  Don't allow wide strings in
15420         'asm'.
15421         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
15422         asm_string instead of STRING.
15423
15424 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
15425
15426         * c-typeck.c (constructor_no_implicit): Remove.
15427         (set_designator, process_init_element): Don't check
15428         constructor_no_implicit.
15429
15430 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
15431             Kaz Kojima  <kkojima@gcc.gnu.org>
15432
15433         PR target/16482
15434         * lcm.c (create_pre_exit): New.
15435         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
15436         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
15437
15438 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
15439
15440         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
15441         -msoft-float in target_float_switch.
15442         * arm.c (arm_override_options): Fix processing of target_float_switch.
15443
15444 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
15445
15446         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
15447         preferencing.
15448
15449 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
15450
15451         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
15452         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
15453
15454 2005-01-04  Roger Sayle  <roger@eyesopen.com>
15455
15456         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
15457         if deleting the then-block allows the test-block to fallthru to the
15458         else-block.
15459
15460 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
15461
15462         PR c/19152
15463         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
15464         after the full declaration if the are in two different TUs.
15465
15466 2005-01-04  Richard Henderson  <rth@redhat.com>
15467
15468         PR tree-opt/19158
15469         * tree-sra.c (generate_one_element_init): Just
15470         call gimplify_and_add.
15471         (generate_element_init): Record the
15472         new referenced variables and mark them for renaming
15473         and split out to ...
15474         (generate_element_init_1): This.
15475         (scalarize_init): Don't call push_gimplify_context/
15476         pop_gimplify_context.
15477
15478 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
15479
15480         * toplev.c (get_src_pwd): Handle failure of getpwd().
15481
15482 2005-01-04  Roger Sayle  <roger@eyesopen.com>
15483
15484         * fold-const.c (fold_single_bit_test): Delete unreachable handling
15485         of TRUTH_NOT_EXPR.
15486         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
15487         all the cases handled by it are inverted by invert_truthvalue.
15488
15489 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
15490
15491         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
15492         (save_register_windowsi): Likewise.
15493
15494 2005-01-04  Richard Henderson  <rth@redhat.com>
15495
15496         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
15497
15498 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
15499
15500         PR middle-end/17767
15501         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
15502         any simplifications of vector mode comparison operators.
15503         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
15504
15505 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
15506             Devang Patel  <dpatel@apple.com>
15507
15508         PR tree-optimization/18308
15509         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
15510         the operands before creating a new expression.
15511         * dojump.c (do_jump): Make drop_through_label available
15512         for all cases.  Add expansion of COND_EXPR.
15513
15514 2005-01-04  Ira Rosen  <irar@il.ibm.com>
15515
15516         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
15517         INTEGER_CST instead of TREE_CONSTANT.
15518         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
15519         instead of TREE_CONSTANT.
15520         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
15521         instead of TREE_CONSTANT.
15522
15523 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
15524
15525         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
15526
15527 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
15528
15529         PR target/19240
15530         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
15531         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
15532
15533 2005-01-03  Richard Henderson  <rth@redhat.com>
15534
15535         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
15536         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
15537         fold_convert_const_real_from_real): Split out from ...
15538         (fold_convert_const): ... here.
15539
15540 2005-01-03  Richard Henderson  <rth@redhat.com>
15541
15542         PR target/19235
15543         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
15544         (mov<MMXMODEI>_internal): Likewise.
15545         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
15546         Add V2SF case; use it for SSE1; don't use TI.
15547         (movdf_integer): Likewise.
15548         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
15549
15550 2005-01-03  Ira Rosen  <irar@il.ibm.com>
15551
15552         * tree-vectorizer.c (vect_strip_conversions): New function.
15553         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
15554         check for binary class.
15555
15556 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
15557
15558         Fix PR debug/17924
15559         Fix PR debug/19191
15560         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
15561         is a decl.
15562         * gimple-low.c (mark_blocks_with_used_vars): New function.
15563         (mark_blocks_with_used_subblocks): Ditto.
15564         (mark_used_blocks): Ditto.
15565         (pass_mark_used_blocks): New pass.
15566         * tree-inline.c: Include debug.h.
15567         (expand_call_inline): Call outlining_inline_function here.
15568         * tree-optimize.c (init_tree_optimization_passes): Add
15569         pass_mark_used_blocks.
15570         * tree-pass.h (pass_mark_used_blocks): New.
15571         * Makefile.in (tree-inline.o): Add debug.h dependency.
15572
15573 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
15574
15575         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
15576         VAR_DECLs to have weak_import attribute.
15577
15578         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
15579         'struct ucontext'.
15580
15581 2004-01-03  Steven Bosscher  <stevenb@suse.de>
15582
15583         * passes.c (rest_of_compilation): Don't run regmove if only
15584         flag_expensive_optimizations, require flag_regmove instead.
15585
15586 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
15587
15588         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
15589         register "sparc".
15590         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
15591         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
15592         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
15593         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
15594
15595 2005-01-03  Richard Henderson  <rth@redhat.com>
15596
15597         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
15598         (ia64_const_ok_for_letter_p): New.
15599         (ia64_const_double_ok_for_letter_p): New.
15600         (ia64_extra_constraint): New.
15601         (ia64_expand_vecint_compare): New.
15602         (ia64_expand_vcondu_v2si): New.
15603         (ia64_expand_vecint_cmov): New.
15604         (ia64_expand_vecint_minmax): New.
15605         (ia64_print_operand): Add 'v'.
15606         (ia64_preferred_reload_class): New.
15607         (ia64_vector_mode_supported_p): New.
15608         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
15609         (PREFERRED_RELOAD_CLASS): Move to function.
15610         (CONST_OK_FOR_LETTER_P): Move to function.
15611         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
15612         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
15613         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
15614         (EXTRA_CONSTRAINT): Move to function.
15615         * config/ia64/ia64.md: Include vect.md.
15616         (itanium_class): Add mmalua.
15617         (type): Handle it.
15618         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
15619         (1b_mmalua): New.
15620         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
15621         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
15622         CONST0_RTX.
15623         (const_int_2bit_operand): New.
15624         (fr_reg_or_0_operand): New.
15625         * config/ia64/ia64-modes.def: Add vector modes.
15626         * config/ia64/ia64-protos.h: Update.
15627         * config/ia64/vect.md: New file.
15628
15629 2005-01-03  Richard Henderson  <rth@redhat.com>
15630
15631         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
15632
15633 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
15634
15635         PR target/19236
15636         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
15637         to SFmode.
15638         (log1pdf2): Change mode of operands[0,1] to DFmode.
15639
15640 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
15641
15642         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
15643         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
15644         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
15645         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
15646         SPARC_RELAXED_ORDERING.
15647
15648 2005-01-03  Richard Henderson  <rth@redhat.com>
15649             Uros Bizjak  <uros@kss-loka.si>
15650
15651         PR target/14631
15652         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
15653         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
15654         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
15655         handling.
15656         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
15657         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
15658         const_pow2_1_to_128_operand): New predicates.
15659
15660 2005-01-02  Greg McGary  <greg@mcgary.org>
15661
15662         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
15663         anonymous decls.
15664         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
15665         object.  [ptr_type]: Remove unused variable.
15666         Remember nearest addressable array-element or record-component
15667         when checking bitfield components.  Tolerate empty BIND_EXPR.
15668
15669 2005-01-01  Richard Henderson  <rth@redhat.com>
15670
15671         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
15672         that don't narrow the value.  Fail for other conversions.
15673
15674 2005-01-01  Richard Henderson  <rth@redhat.com>
15675
15676         PR c/19031
15677         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
15678         * c-lang.c (finish_file): Don't do it here.
15679         * objc/objc-act.c (objc_finish_file): Likewise.
15680
15681         * cgraph.c (decl_assembler_name_equal): New.
15682         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
15683         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
15684         * cgraph.h (struct cgraph_varpool_node): Add next.
15685         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
15686         * varasm.c (assemble_alias): Mark the target as needed.
15687
15688 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
15689
15690         PR middle-end/19221
15691         * function.c (get_arg_pointer_save_area): Use entry_of_function
15692         instead of get_insns.
15693
15694 2005-01-01  Roger Sayle  <roger@eyesopen.com>
15695             Andrew Pinski  <pinskia@physics.uc.edu>
15696             James E. Wilson  <wilson@specifixinc.com>
15697
15698         PR rtl-optimization/12092
15699         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
15700         is zero.
15701
15702 2005-01-01  Roger Sayle  <roger@eyesopen.com>
15703             Olivier Hainque  <hainque@act-europe.fr>
15704
15705         * tree.c (int_fits_type_p): A narrower type always fits in a
15706         wider one, except for negative values into unsigned types.
15707
15708 2005-01-01  Roger Sayle  <roger@eyesopen.com>
15709
15710         * tree.c (int_fits_type_p): Compare the result of force_fit_type
15711         with the original constant rather than require TREE_OVERFLOW.
15712
15713 2005-01-01  Steven Bosscher  <stevenb@suse.de>
15714
15715         PR middle-end/17544
15716         * c-decl.c (finish_function): If compiling C99, annotate the
15717         compiler generated return with the current file name and line 0.
15718         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
15719         the source line is greater than 0.
15720         (remove_bb): Likewise.