OSDN Git Service

* config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
2
3         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
4         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
5         Handle moved operand being in special register.
6         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
7         presumed working insn.
8         (mover2side): Add FIXME.
9
10 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
11
12         * integrate.c (get_func_hard_reg_initial_val): Delete.
13         (has_func_hard_reg_initial_val): Delete.
14         (get_hard_reg_initial_val): Inline the old implementation of
15         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
16         instead of has_func_hard_reg_initial_val to test for an existing
17         pseudo.  Only create an rtx if a new initial value entry is needed.
18         (has_hard_reg_initial_val): Scan the initial value list directly.
19         Don't create an rtx.
20
21 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
22
23         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
24         from extra_options.
25         * config.in (HAVE_AS_POPCNTB): New.
26         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
27         (HAVE_AS_POPCNTB): New.
28         * configure: Regenerated.
29         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
30         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
31         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
32         and rs6000_sched_costly_dep.
33         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
34         (TARGET_XL_COMPAT): Delete.
35         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
36         (popcount<mode>2): New.
37         (popcntb<mode>2): New.
38         * config/rs6000/rs6000.opt (mpopcntb): New.
39
40         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
41         if variable name exists.
42
43 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
44
45         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
46
47 2005-05-07  Richard Henderson  <rth@redhat.com>
48
49         PR target/21412
50         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
51         with constant offsets.
52
53 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
54
55         * config/v850/v850.c (print_operand): Use gcc_assert and
56         gcc_unreachable, as appropriate.
57         (print_operand_address, v850_handle_data_area_attribute,
58         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
59         v850_insert_attributes, construct_prepare_instruction): Likewise.
60         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
61         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
62
63 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
64
65         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
66         config/rs6000/rs6000.h: Fix comment typos.
67
68 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
69
70         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
71         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
72         (mips_scalar_mode_supported_p): Delete.
73
74 2005-05-06  Eric Christopher  <echristo@redhat.com>
75
76         * config/mips/mips.opt: Remove -mint64 option.
77         * config/mips/mips.c (override_options): Remove -mint64
78         handling.
79         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
80         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
81         64-bit integer handling.
82         * doc/invoke.texi (Option Summary): Remove -mint64 for
83         mips.
84
85 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
86
87         PR tree-optimization/19401
88         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
89         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
90         (estimated_unrolled_size): New function.
91         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
92         tree_unroll_loops_completely): Always unroll loops if the code size
93         does not increase.
94         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
95         loops should be unrolled completely.
96         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
97
98 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
99
100         PR rtl-optimization/21254
101         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
102         assumptions for loops that otherwise do not roll.
103         (find_simple_exit): Prefer # of iterations that is guaranteed
104         not to be infinite.
105         * loop-unroll.c (decide_peel_once_rolling,
106         decide_peel_completely): Check whether the loop is infinite.
107
108 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
109
110         * config/rs6000/sysv4.opt: Fix typo.
111
112 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
113             Jakub Jelinek  <jakub@redhat.com>
114
115         PR target/21329
116         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
117         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
118         Don't use rep; movs{l,q} if the repetition count is really small,
119         instead use a sequence of movs{l,q} instructions.
120
121 2005-05-06  Jeff Law  <law@redhat.com>
122
123         PR tree-optimization/21380
124         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
125         thread through a block with no preds.
126
127 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
128
129         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
130         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
131         add_call_read_ops): Use VEC instead of VARRAY.
132
133 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
134
135         * config/mcore/mcore.c (mcore_print_operand_address): Use
136         gcc_assert and gcc_unreachable as appropriate.
137         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
138         mcore_output_andn, output_inline_const, mcore_output_move,
139         mcore_output_movedouble, mcore_expand_block_move,
140         layout_mcore_frame, mcore_initial_elimination_offset,
141         mcore_expand_prolog, mcore_mark_dllexport,
142         mcore_mark_dllimport): Likewise.
143         * config/mcore/mcore.h (switch_to_section): Likewise.
144         * config/mcore/mcore.md: Likewise.
145
146 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
147
148         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
149         TARGET_PROFILE_KERNEL.
150
151         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
152         TARGET_PROFILE_KERNEL use.
153
154 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
155
156         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
157         and gcc_unreachable, as appropriate.
158         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
159         m32r_expand_prologue, m32r_output_function_epilogue,
160         m32r_legitimize_pic_address, m32r_print_operand_address,
161         emit_cond_move, m32r_function_symbol,
162         m32r_output_block_move): Likewise.
163         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
164         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
165         *rev_zero_branch_insn): Likewise.
166         
167 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
168
169         PR c++/20961
170         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
171         if both NEWDECL and OLDDECL are already weak.
172
173 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
174
175         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
176
177 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
178             Kaz Kojima  <kkojima@gcc.gnu.org>
179
180         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
181         and plus_constant.
182
183 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
184             David Edelsohn  <edelsohn@gnu.org>
185
186         * config.gcc: Add .opt magic for the rs6000 ports.
187
188         * doc/invoke.texi: Document -mabi= option properly.  Document
189         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
190         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
191         -misel=.
192
193         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
194         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
195         TARGET_XL_COMPAT.
196
197         * config/rs6000/aix.opt: New.
198         * config/rs6000/aix41.opt: New.
199         * config/rs6000/aix64.opt: New.
200         * config/rs6000/darwin.opt: New.
201         * config/rs6000/linux64.opt: New.
202         * config/rs6000/rs6000.opt: New.
203         * config/rs6000/sysv4.opt: New.
204
205         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
206         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
207         SUBTARGET_SWITCHES.
208         Define TARGET_USES_SYSV4_OPT.
209         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
210         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
211         TARGET_USES_AIX64_OPT.
212         * config/rs6000/aix51.h: Same.
213         * config/rs6000/aix52.h: Same.
214         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
215         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
216         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
217         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
218         * config/rs6000/linux64.h: Use
219         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
220
221         * config/rs6000/rs6000.c: Remove definitions of
222         rs6000_sched_restricted_insns_priority,
223         rs6000_long_double_size_string, rs6000_altivec_vrsave,
224         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
225         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
226         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
227         rs6000_alignment_string.  Define rs6000_explicit_options.
228         (rs6000_parse_abi_options): Remove.
229         (rs6000_parse_alignment_option): Remove.
230         (rs6000_parse_float_gprs_option): Remove.
231         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
232         TARGET_DEFAULT_TARGET_FLAGS.
233         (rs6000_override_options): Revamp to use new .opt machinery.
234
235         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
236         of new .opt machinery.  Remove target_flags.  Redefine
237         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
238         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
239         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
240         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
241         rs6000_longcall_switch, rs6000_default_long_calls,
242         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
243         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
244         TARGET_ALTIVEC_VRSAVE.
245
246 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
247
248         * config.gcc (hppa1.1-*-rtems*): Remove.
249         * config/pa/rtems.h: Remove.
250
251 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
252
253         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
254         Exclude roe/603e multilib variants.
255
256 2005-05-04  Denis Chertykov  <denisc@overta.ru>
257
258         PR target/21284
259         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
260         for output.
261
262 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
263
264         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
265         arm/pe.opt to $extra_options.
266         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
267         (target_float_abi_name, target_float_switch, target_abi_name)
268         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
269         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
270         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
271         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
272         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
273         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
274         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
275         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
276         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
277         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
278         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
279         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
280         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
281         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
282         (arm_pic_register_string): Delete.
283         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
284         TARGET_TPCS_FRAME.
285         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
286         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
287         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
288         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
289         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
290         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
291         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
292         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
293         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
294         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
295         (SUBTARGET_SWITCHES): Delete.
296         * config/arm/arm.c (target_float_switch): Delete.
297         (arm_cpu_select): Moved from config/arm/arm.h.
298         (target_fpu_name, target_fpe_name, target_float_abi_name)
299         (target_abi_name, structure_size_string, arm_pic_register_string)
300         (arm_select): Make static.
301         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
302         (arm_handle_option): New function.
303         (arm_override_options): Update target_flags checks for new mask names.
304         Remove target_float_switch code.
305         (arm_expand_prologue, thumb_expand_prologue): Check
306         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
307         * config/arm/arm.opt, config/arm/pe.opt: New files.
308
309 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
310
311         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
312         gcc_unreachable as appropriate.
313         (arc_double_limm_p, arc_setup_incoming_varargs,
314         arc_compute_function_type, arc_output_function_prologue,
315         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
316         output_shift, arc_print_operand, arc_print_operand_address,
317         arc_final_prescan_insn): Likewise.
318         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
319
320 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
321
322         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
323         comparing Pmode.
324         (SDI): New.
325         (cmp): Delete.
326         (wd): New.
327         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
328         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
329         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
330         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
331         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
332         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
333         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
334         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
335
336 2005-05-05  Paul Brook  <paul@codesourcery.com>
337
338         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
339         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
340         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
341         and tree-data-ref.h with *_H variables.
342
343 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
344
345         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
346
347 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
348
349         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
350
351 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
352
353         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
354
355 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
356
357         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
358         setting of vrsave register for current function after
359         call to save_world is emitted.
360
361 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
362
363         * config/mmix/predicates.md: New file.
364         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
365         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
366         (mmix_foldable_comparison_operator, mmix_comparison_operator)
367         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
368         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
369         Don't define.
370         * config/mmix/mmix.md: Include predicates.md.
371         ("call", "call_value"): Force address to register if it isn't a
372         mmix_symbolic_or_address_operand.
373
374 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
375
376         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
377         the flags are of appropriate types.
378         (num_ssa_operands): Generalize using the generic interface.
379         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
380         iterator.
381
382 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
383
384         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
385         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
386
387 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
388
389         * tree-outof-ssa.c (edge_leader, stmt_list,
390         analyze_edges_for_bb): Use VEC instead of VARRAY.
391         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
392         (perform_edge_inserts): Call init_analayze_edges_for_bb and
393         fini_analayze_edges_for_bb.
394
395 2005-05-04  James E Wilson  <wilson@specifixinc.com>
396
397         PR driver/21112
398         * gcc.c (process_command): In the second argv scan loop, ignore
399         Xassembler and Xpreprocessor, along with their argument.
400
401 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
402
403         * tree-flow-inline.h, tree-ssa-operands.c,
404         tree-ssa-operands.h, tree-ssa-opfinalize.h:
405         Likewise. tree-vn.c: Fix comment typos.
406         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
407
408 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
409
410         * doc/tm.texi (Target Hooks): Document
411         TARGET_RESOLVE_OVERLOADED_BUILTIN.
412
413 2005-05-04  Paul Brook  <paul@codesourcery.com>
414
415         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
416
417 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
418
419         * dwarf2out.c (incomplete_types, retry_incomplete_types,
420         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
421         of VARRAY.
422
423         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
424         get_expansion, expand_var_during_unrolling,
425         insert_var_expansion_initialization,
426         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
427         instead of VARRAY.
428
429         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
430         update_stmt.
431
432 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
433
434         PR middle-end/15618
435         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
436         the same as INTEGER_TYPE.
437         (fold_binary): Fold "bool_var != 0" to bool_var.
438         Fold "bool_var == 1" to bool_var.
439
440 2004-05-03  Richard Henderson  <rth@redhat.com>
441
442         PR middle-end/21318
443         * function.c (instantiate_virtual_regs_in_insn): Use the mode
444         from recog_data instead of insn_data.
445
446 2005-05-03  DJ Delorie  <dj@redhat.com>
447
448         * common.opt (fdiagnostics-show-option): No variable is needed.
449         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
450         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
451         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
452         Save and restore original message format.  Use flag in context
453         instead of global.
454         (warning): Don't test for enabled warnings here.
455         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
456         here.
457
458 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
459
460         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
461         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
462         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
463         * aclocal.m4: Don't include accross.m4.
464         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
465         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
466         * configure, config.in: Regenerate.
467         
468 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
469
470         PR middle-end/21265
471         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
472         (clear_storage): Add argument.
473         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
474         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
475         tailcall.
476         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
477         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
478         (store_expr, store_constructor): Adjust callers.
479         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
480         to emit_block_move if CALL_EXPR_TAILCALL (exp).
481         (expand_builtin_memmove): Add ORIG_EXP argument, copy
482         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
483         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
484         with EXP.  Pass EXP to expand_builtin_memmove.
485         (expand_builtin_memset): Add ORIG_EXP argument, pass
486         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
487         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
488         Pass EXP to expand_builtin_memset.
489         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
490         the new CALL_EXPR.
491         (expand_builtin_strncmp): Likewise.
492         (expand_builtin_printf): Replace ARGLIST argument with EXP.
493         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
494         (expand_builtin_fprintf): Likewise.
495         (expand_builtin): Adjust calls to
496         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
497
498         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
499         item in V4SF mode.
500
501         PR rtl-optimization/21239
502         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
503
504 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
505
506         * tree-flow.h (tree_ann_common_d): Move aux to ...
507         (stmt_ann_d): ... here.
508         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
509         move_computations_stmt, schedule_sm): Update references to
510         aux.
511         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
512
513         * tree-cfg.c (remove_bb): Remove a redundant call to
514         set_bb_for_stmt.
515         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
516         Likewise.
517
518 2005-05-03  Richard Henderson  <rth@redhat.com>
519
520         * config/rs6000/rs6000.c: Remove conflict markers.
521
522         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
523
524 2005-05-03  James E Wilson  <wilson@specifixinc.com>
525
526         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
527
528 2005-05-03  DJ Delorie  <dj@redhat.com>
529
530         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
531         decide if the warning will be printed.
532         * calls.c (expand_call): Likewise.
533         * function.c (init-function_start): Likewise.
534
535         * common.opt (-fdiagnostics-show-option): New.
536         * opts.c (option_enabled): Accept the option index instead of a
537         pointer to the option descriptor.
538         * opts.h (option_enabled): Likewise.
539         * toplev.c (print_switch_values): Pass option index, not option
540         descriptor.
541         * diagnostic.h (diagnostic_info): Add option_index.
542         * diagnostic.c: Include opts.h.
543         (diagnostic_set_info): Initialize option_index.
544         (diagnostic_report_diagnostic): Amend option name if appropriate.
545         (warning): Check to see if the specified warning is enabled.
546         Store option index.
547         * doc/invoke.texi (-fdiagnostics-show-options): Document.
548
549 2005-05-03  Richard Henderson  <rth@redhat.com>
550
551         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
552         SPEC_OR_GEN_REGS definitions.
553
554 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
555
556         PR target/16888
557         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
558         for unavailable registers.
559
560 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
561
562         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
563
564         * cfglayout.c (block_locators_blocks,
565         insn_locators_initialize, insn_scope): Use VEC instead of
566         VARRAY.
567
568         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
569         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
570         VARRAY.
571
572 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
573
574         * config/sparc/predicates.md (const_compl_high_operand): New.
575         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
576         gen_safe_HIGH64.
577         (sparc_emit_set_const64_quick1): Adjust for above change.
578         (sparc_emit_set_const64_quick2): Likewise.
579         (sparc_emit_set_const64_longway): Likewise.
580         (sparc_emit_set_const64): Likewise.
581         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
582         movdi_const64_special): Delete.
583         (logical constant splitters): Use const_compl_high_operand.
584
585 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
586
587         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
588         rather than STRIP_NOPS.
589
590 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
591
592         PR rtl-optimization/21330
593         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
594         returning non-NULL.
595         (unswitch_single_loop): Clear cinsn when retrying.
596
597         PR target/21297
598         * config/i386/i386.c (legitimize_address): When canonicalizing
599         ASHIFT into MULT, multiply by 1 << shift_count instead of
600         1 << log2 (shift_count).
601
602 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
603
604         * lambda-code.c (gcc_loop_to_lambda_loop, 
605         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
606         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
607         generic operand interface.
608         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
609         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
610         generic operand interface.
611         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list, 
612         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
613         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
614         num_imm_uses): Use ssa_use_operand_t.
615         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
616         get_v_must_def_ops): Delete.
617         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
618         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
619         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
620         get_v_must_def_kill_ptr): Delete.
621         (delink_stmt_imm_use): Move and use new operand interface.
622         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
623         op_iter_next_tree): Use new operand implementation.
624         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
625         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator 
626         type check.
627         (op_iter_next_mustdef, op_iter_next_maydef, 
628         op_iter_next_must_and_may_def): Delete. Replace with...
629         (op_iter_next_maymustdef): New.  Combine must and may next operations.
630         (op_iter_init_maydef, op_iter_init_mustdef, 
631         op_iter_init_must_and_may_def): Use new interface.
632         (single_ssa_tree_operand ): New.  Process single operands only as trees.
633         (single_ssa_use_operand): New.  Process single operands only as uses.
634         (single_ssa_def_operand): New.  Process single operands only as defs.
635         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
636         specified types.
637         (num_ssa_operands): New.  Count the number of specified operands.
638         (compare_ssa_operands_equal): New.  Compare two statements' operands.
639         (single_phi_def): New.  Return true if PHI has one def of the specified
640         operand type.
641         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
642         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
643         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
644         (struct stmt_ann_d): Operands field no longer require GTY().
645         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
646         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
647         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, 
648         dump_replaceable_exprs, rewrite_trees): Use generic interface.
649         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node): 
650         Use use_operand_p instead of ssa_imm_use_t *.
651         * tree-pretty-print.c (dump_vops): check if operands are active before
652         dumping virtual operands.
653         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
654         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
655         (ccp_fold): Use new interface.
656         (ccp_visit_stmt): Remove unused variables and code.
657         (convert_to_gimple_builtin): Insert statements before calling 
658         mark_new_vars_to_rename.
659         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
660         (copy_prop_visit_cond_stmt): Use generic interface.
661         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the 
662         annotation in table.
663         (thread_across_edge): Use generic interface.
664         (initialize_hash_element): Initialzie with stmt, not annotation.
665         (eliminate_redundant_computations): Use generic interface.
666         (record_equivalences_from_stmt): Pass stmt, not annotation.
667         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
668         interface.
669         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
670         * tree-ssa-loop-ivopts.c (find_invariants_stmt, 
671         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use 
672         generic operand interface.
673         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
674         interface.
675         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
676         Interface.
677         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
678         (build_defs, build_uses, build_v_may_defs, build_vuses, 
679         build_v_must_defs): Change type to struct opbuild_list_d.
680         (ops_active): New.  Operands active boolean.
681         (operand_memory, operand_memory_index): New.  Operand memory managers.
682         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
683         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
684         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): 
685         Change from functions to static variable list heads.
686         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
687         (opbuild_initialize_real): New.  Initialize a virtual build list.
688         (opbuild_free): New.  Free a build list.
689         (opbuild_num_elems): New.  Number of items in a list.
690         (opbuild_append_real): New.  Add a real (tree *) operand.
691         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
692         (opbuild_first): New.  Return first element index in a list.
693         (opbuild_next): New.  Return next element in a list.
694         (opbuild_elem_real): New.  Return real element.
695         (opbuild_elem_virtual): New.  Return virtual element.
696         (opbuild_elem_uid): New.  Return UID of virtual element.
697         (opbuild_clear): New.  Reset an operand list.
698         (opbuild_remove_elem): New.  Remove an element form a list.
699         (ssa_operands_active): New.  Return true if operand cache is active.
700         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
701         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
702         (correct_use_link): Use use_operand_p.
703         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
704         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation. 
705         (cleanup_v_may_defs): Use new implmentation.
706         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New 
707         implementation.
708         (append_def, append_use, append_v_may_def, append_vuse, 
709         append_v_must_def): Call opbuild_append routine instead of using varray.
710         (build_ssa_operands): Simplify to simply use stmt, don't maintain a 
711         global parse_old_ops variable.
712         (free_ssa_operands): New implementation.
713         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
714         (copy_virtual_operands): Move. New generic implementation.
715         (create_ssa_artficial_load_stmt): Move. New implementation.
716         (swap_tree_operands): Update for new implementation.
717         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
718         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
719         rather than a varray.
720         (verify_imm_links): Use use_operand_p.
721         (dump_immediate_uses_for): If the immediate use variable is a virtual 
722         variable, show the virtual ops in the stmt.
723         * tree-ssa-operands.h (def_operand_p): No longer a structure.
724         (NULL_DEF_OPERAND_P): Now a #define.
725         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
726         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
727         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
728         mustdef_optype_d): New.  Use Linked list representation.
729         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
730         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
731         (struct stmt_operands_d): Change to new pointers that are not GTY.
732         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
733         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
734         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
735         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT, 
736         SET_V_MUST_DEF_KILL): Delete.
737         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT, 
738         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
739         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT, 
740         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
741         (enum ssa_op_iter_type): Operand iterator typechecking values.
742         (struct ssa_operand_iterator_d): Use linked lists of operands.
743         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
744         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
745         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
746         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
747         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
748         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
749         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND, 
750         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
751         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
752         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
753         alloc_vuse, and alloc_mustdef.
754         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops, 
755         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
756         and finalize_ssa_v_must_def_ops.
757         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
758         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
759         stmt around.
760         (compute_avail): Use generic iterator interface.
761         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
762         (stmt_makes_single_load, stmt_makes_single_store): Use 
763         ZERO_SSA_OPERANDS.
764         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
765         (statement_sink_location): Use generic interface.
766         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
767         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
768         reset the immediate use link nodes.
769         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
770         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
771         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
772         (eliminate_tail_call): Use generic operand interface.
773         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
774         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic 
775         interface.
776         * tree-vect-transform.c (update_vuses_to_preheader): Use generic 
777         interface.
778         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
779         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
780         vuse_optype.
781         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add): 
782         Use statement pointer instead of vuse_optype.  Use generic interface.
783         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
784         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
785         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
786         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
787         * doc/tree-ssa.texi: Update documentation for operand interface.
788
789 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
790
791         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
792         gcc_unreachable as appropriate.
793         (machopic_function_base_name, machopic_indirect_data_reference,
794         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
795         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
796         * config/rs6000/altivec.md (*mov<mode>_internal,
797         build_vector_mask_for_load): Likewise.
798         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
799         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
800         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
801         * config/rs6000/predicates.md (easy_fp_constant,
802         logical_operand): Likewise.
803         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
804         compute_save_world_info, rs6000_emit_prologue,
805         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
806         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
807         directly.
808
809 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
810
811         PR middle-end/21282
812         * convert.c (convert_to_integer): Convert ceil and floor in
813         c99 mode only.
814
815 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
816
817         PR target/20813
818         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
819         define_insn_and_split.  Split only when memory operand is
820         offsettable.  Use adjust_address rather than plus_constant.
821         (floatunssidf2_internal): Likewise.
822         (fix_truncdfsi2_internal): Split only when memory operand is
823         offsettable.  Use adjust_address rather than plus_constant.
824         (fix_trunctfsi2_internal): Likewise.
825         (floatsidf2_internal): Likewise.
826
827 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
828
829         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
830         (set_value_range_to_null): Likewise.
831         (set_value_range_to_varying): New function.  Use it in all
832         call sites that used to call set_value_range (vr, VR_VARYING, ...).
833         (extract_range_from_assert): If the integral type has a
834         super-type, and LIMIT is not within MIN and MAX values of that
835         type, set the resulting range to VR_VARYING.
836
837 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
838
839         * config/mmix/mmix.opt: New file.
840         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
841         (mmix_cc1_ignored_option): Don't declare.
842         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
843         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
844         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
845         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
846         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
847         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
848         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
849         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
850         Don't define.
851         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
852         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
853         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
854
855 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
856
857         PR c/15698
858         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
859         * c-decl.c (current_function_prototype_built_in,
860         current_function_prototype_arg_types): New.
861         (merge_decls): Keep source location of prototype followed by
862         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
863         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
864         (start_function): Always set current_function_prototype_locus,
865         current_function_prototype_built_in and
866         current_function_prototype_arg_types.  Check for external
867         prototype whether or not visible for external function and set
868         current_function_prototype_arg_types accordingly.
869         (store_parm_decls_oldstyle): Use
870         current_function_prototype_arg_types for checking old-style
871         definition against prototype.  Give warnings only if
872         current_function_prototype_built_in).
873
874 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
875
876         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
877         (ggc_alloc_zone_stat): Don't define.
878         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
879         ggc_alloc_zone_pass_stat.
880         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
881         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
882         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
883
884 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
885
886         * calls.c (expand_call): Handle current_function_pretend_args_size
887         when checking for sibcalls.
888
889 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
890
891         PR tree-optimization/21294
892         * tree-vrp.c (vrp_expr_computes_nonzero): New.
893         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
894
895 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
896
897         PR 19985
898         * gcov-io.h: Declare gcov external functions hidden.
899
900 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
901
902         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
903         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
904         Use VEC instead of VARRAY.
905         (equiv_free): New.
906
907         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
908         out common code.
909
910 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
911
912         * c-common.c (resolve_overloaded_builtin): Forward to target
913         hook for BUILT_IN_MD built-ins.
914         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
915         for all types of built-in.
916         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
917         in the definition of the target hooks struct.
918         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
919         * config/rs6000/altivec.h: Rewritten.
920         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
921         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
922         rs6000_builtin_type, rs6000_builtin_type_compatible,
923         altivec_overloaded_builtins, rs6000_builtin_type,
924         rs6000_builtin_type_compatible): New.
925         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
926         New.
927         (def_builtin): Turn into a function.  Check for duplicates and store
928         the builtin into rs6000_builtin_decls.
929         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
930         bdesc_1arg): Add overloaded builtins.
931         (altivec_expand_builtin): Check for unresolved overloaded builtins,
932         do not support ALTIVEC_COMPILETIME_ERROR.
933         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
934         nodes to represent front-end types.
935         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
936         with opaque arguments and/or return values.
937         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
938         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
939         (rs6000_builtin_type_index): New.
940         (is_ev64_opaque_type): Rename to...
941         (rs6000_is_opaque_type): ... this.
942         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
943         target hook.
944
945 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
946
947         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
948         instead of VARRAY.
949
950 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
951             Bernd Schmidt  <bernd.schmidt@analog.com>
952
953         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
954         print_address_operand, print_operand, legitimize_pic_address,
955         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
956         output_pop_multiple): Use gcc_assert or gcc_unreachable as
957         appropriate.
958         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
959
960 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
961
962         * doc/passes.texi: Document vectorization pass.
963
964 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
965
966         * tree-scalar-evolution.c (get_exit_conditions_rec,
967         select_loops_exit_conditions,
968         number_of_iterations_for_all_loops,
969         analyze_scalar_evolution_for_all_loop_phi_nodes,
970         scev_analysis): Use VEC instead of VARRAY.
971
972 2005-05-02  Michael Matz  <matz@suse.de>
973
974         PR c++/19542
975         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
976         (warn_strict_null_sentinel): Define.
977         (check_function_sentinel): Check for null_node as valid sentinel too.
978         * c-common.h (c_tree_index): Added CTI_NULL.
979         (null_node) Define global_tree[CTI_NULL].
980         (warn_strict_null_sentinel): Declare.
981         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
982         * c.opt: (Wstrict-null-sentinel): New C++ option.
983         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
984
985 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
986
987         * gimplify.c (gimplify_compound_lval): Use VEC instead of
988         VARRAY.
989
990         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
991
992         * dwarf2out.c (decl_scope_table, push_decl_scope,
993         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
994         instead of VARRAY.
995
996 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
997
998         PR C++/14391
999         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
1000         if !flag_weak.
1001         * doc/cpp.texi (__DEPRECATED): Document.
1002         (__EXCEPTIONS): Likewise.
1003         (__GXX_WEAK__): Likewise.
1004
1005         * function.c (INVOKE__main): Do not define.
1006         (expand_main_function): Check HAS_INIT_SECTION when determining
1007         whether or not to call __main.
1008
1009 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
1010
1011         * tree-ssa-loop-ivopts.c: Fix a comment typo.
1012
1013 2005-01-05  Paul Brook  <paul@codesourcery.com>
1014
1015         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
1016         (INITIALIZE_TRAMPOLINE): Use it.
1017         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
1018         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
1019         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
1020
1021 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
1022
1023         * doc/install.texi (Specific): Omit dots in the @anchors names
1024         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
1025         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
1026
1027 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
1028
1029         PR tree-optimization/18316
1030         PR tree-optimization/19126
1031         * tree.c (build_int_cst_type): Avoid shift by size of type.
1032         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
1033         argument.
1034         * tree-scalar-evolution.h (simple_iv): Declaration changed.
1035         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
1036         field.
1037         (dump_cand): Dump depends_on information.
1038         (determine_biv_step): Add argument to simple_iv call.
1039         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
1040         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
1041         constant.
1042         (add_candidate_1): Record depends_on for candidates.
1043         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
1044         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
1045         Handle ivs with nonconstant step.
1046         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
1047         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
1048         (create_new_iv): Unshare the step before passing it to create_iv.
1049         (free_loop_data): Free cand->depends_on.
1050         (build_addr_strip_iref): New function.
1051         (find_interesting_uses_address): Use build_addr_strip_iref.
1052         (strip_offset_1): Split the recursive part from strip_offset.
1053         Strip constant offset component_refs and array_refs.
1054         (strip_offset): Split the recursive part to strip_offset_1.
1055         (add_address_candidates): Removed.
1056         (add_derived_ivs_candidates): Do not use add_address_candidates.
1057         (add_iv_value_candidates): Add candidates with stripped constant
1058         offset.  Consider all candidates with initial value 0 important.
1059         (struct affine_tree_combination): New.
1060         (aff_combination_const, aff_combination_elt, aff_combination_scale,
1061         aff_combination_add_elt, aff_combination_add,
1062         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
1063         fold_affine_sum): New functions.
1064         (get_computation_at): Use fold_affine_sum.
1065         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
1066         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
1067         to simple_iv call.
1068
1069 2005-04-30  Michael Matz  <matz@suse.de>
1070
1071         * config/i386/i386.md (movmemsi): Also active when
1072         TARGET_INLINE_ALL_STRINGOPS.
1073
1074 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
1075
1076         PR bootstrap/20633
1077         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
1078
1079 2005-04-30  Paul Brook  <paul@codesourcery.com>
1080
1081         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
1082         thumb mode.
1083         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
1084         * config/arm/ieee754-sf.S: Ditto.
1085         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
1086         (FUNC_ALIAS): Use .thumb_set for thumb routines.
1087
1088 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
1089
1090         * tree-ssanames.c: Fix a comment typo.
1091         * doc/options.texi: Fix a typo.
1092
1093 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
1094
1095         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
1096         gcc_unreachable as appropriate.
1097         (split_adds_subs, cond_string, print_operand,
1098         h8300_initial_elimination_offset, h8300_classify_operand,
1099         h8300_unary_length, h8300_short_immediate_length,
1100         h8300_bitfield_length, h8300_binary_length,
1101         h8300_insn_length_from_table, compute_mov_length, output_plussi,
1102         compute_plussi_length, compute_plussi_cc, output_logical_op,
1103         compute_logical_op_length, compute_logical_op_cc,
1104         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
1105         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
1106         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
1107         h8300_regs_ok_for_stm): Likewise.
1108         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
1109         monitor_prologue): Likewise.
1110
1111 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
1112
1113         * loop-invariant.c (invariants, create_new_invariant,
1114         get_inv_cost, best_gain_for_invariant,
1115         find_invariants_to_move, move_invariants,
1116         init_inv_motion_data, free_inv_motion_data): Use VEC instead
1117         of VARRAY.
1118
1119 2005-04-29  Richard Henderson  <rth@redhat.com>
1120
1121         * function.c (instantiate_decls): Remove valid_only argument.
1122         (instantiate_decls_1, instantiate_decl): Likewise.
1123         (instantiate_virtual_regs_1): Delete.
1124         (instantiate_virtual_regs_lossage): Delete.
1125         (instantiate_virtual_regs_in_rtx): New.
1126         (safe_insn_predicate): New.
1127         (instantiate_virtual_regs_in_insn): New.
1128         (instantiate_virtual_regs): Update to match all that.  Only run
1129         instantiate_decls once.
1130
1131 2005-04-29  Richard Henderson  <rth@redhat.com>
1132             Daniel Jacobowitz  <dan@codesourcery.com>
1133
1134         * gengtype.c (write_func_for_structure): Split out ...
1135         (output_type_enum): ... new function.  Fix thinko accessing
1136         TYPE_PARAM_STRUCT data.
1137
1138 2005-04-29  Tom Tromey  <tromey@redhat.com>
1139
1140         * tree.c (build_block): Removed unused 'tags' argument.
1141         * tree.h (build_block): Removed argument.
1142
1143 2005-04-29  Michael Matz  <matz@suse.de>
1144
1145         PR rtl-optimization/21144
1146         * postreload.c (reload_cse_move2add): Check for VOIDmode.
1147
1148 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
1149
1150         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
1151         flag_reorder_blocks.
1152
1153 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
1154
1155         PR tree-optimization/21030
1156         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
1157         ranges where VR->MAX is smaller than VR->MIN.
1158
1159 2005-04-29  Devang Patel  <dpatel@apple.com>
1160
1161         PR tree-optimization/21272
1162         PR tree-optimization/21266
1163         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
1164         
1165 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
1166
1167         * tree-flow-inline.h: Fix a comment typo.
1168         * doc/tree-ssa.texi: Fix a typo.
1169
1170         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
1171
1172 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1173
1174         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
1175         gcc_unreachable as appropriate.
1176         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
1177         fr30_print_operand, fr30_move_double): Likewise.
1178         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
1179
1180 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
1181
1182         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
1183         definition has already been provided.
1184         (ARM_EABI_DTORS_SECTION_OP): Likewise.
1185         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
1186         (ARM_EABI_DTORS_SECTION_OP): Likewise.
1187
1188 2005-04-29  Jim Tison  <jtison@us.ibm.com>
1189
1190         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
1191         trace hooks calls to improve performance.
1192
1193 2005-04-29  Julian Brown  <julian@codesourcery.com>
1194             Mark Mitchell  <mark@codesourcery.com>
1195             Paul Brook  <paul@codesourcery.com>
1196
1197         * crtstuff.c: Handle targets that use .init_array.
1198         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
1199         that INVOKE__main is set correctly.
1200         (expand_main_function): Test INVOKE__main.
1201         * libgcc2.c: Do not define __main when using .init_array.
1202         * config/arm/arm.c (arm_elf_asm_constructor): New function.
1203         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
1204         libgcc version.
1205         (DTORS_SECTION_ASM_OP): Likewise.
1206         (CTOR_LIST_BEGIN): Define specially when in libgcc.
1207         (CTOR_LIST_END): Likewise.
1208         (DTOR_LIST_BEGIN): Likewise.
1209         (DTOR_LIST_END): Likewise.
1210         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
1211         (FINI_SECTION_ASM_OP): Likewise.
1212         (INIT_ARRAY_SECTION_ASM_OP): Define.
1213         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
1214         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
1215         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
1216         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
1217         (FINI_ARRAY_SECTION_ASM_OP): Likewise.  
1218
1219 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1220
1221         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
1222         gcc_assert and gcc_unreachable as appropriate.
1223         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
1224         const_int_cost, output_move_const_into_data_reg,
1225         output_move_qimode, output_move_double, find_addr_reg,
1226         print_operand, print_operand_address): Likewise.
1227         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
1228         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
1229         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
1230         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
1231         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
1232         conditional_trap): Likewise.
1233         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
1234
1235 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
1236
1237         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
1238         gcc_unreachable as appropriate.
1239         (gen_conditional_move, xtensa_split_operand_pair,
1240         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
1241         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
1242         xtensa_copy_incoming_a7, xtensa_output_literal,
1243         xtensa_output_literal, xtensa_output_literal): Likewise.
1244         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1245         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
1246         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
1247         movsicc_internal1, movsfcc_internal0,
1248         movsfcc_internal1): Likewise.
1249
1250 2005-04-28  James E Wilson  <wilson@specifixinc.com>
1251
1252         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
1253         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
1254
1255 2005-04-28  DJ Delorie  <dj@redhat.com>
1256
1257         * opt-functions.awk (var_set): Emit proper initializer for
1258         non-target bitfields.
1259
1260 2005-04-28  Devang Patel  <dpatel@apple.com>
1261
1262         * dbxout.c (have_used_extensions): Remove.
1263         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
1264         have_used_extensions.
1265         
1266 2005-04-28  James E Wilson  <wilson@specifixinc.com>
1267
1268         * doc/install.texi: Update -enable-languages info.  Correct path to
1269         html docs.
1270
1271 2005-04-28  DJ Delorie  <dj@redhat.com>
1272
1273         * optc-gen.awk (END): Make sure no variable is defined more
1274         than once.
1275         * opth-gen.awk (END): Allocate bits on a per-variable basis.
1276         Allow for bitfield variables other than target_flags.
1277         * doc/options.text (Mask): Document that you may specify a
1278         variable other than target_flags.
1279
1280 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
1281
1282         PR rtl-optimization/18877
1283         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
1284         number in val.start.
1285
1286 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
1287
1288         PR target/20813
1289         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
1290         MASK_PPC_GFXOPT.
1291         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
1292         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
1293         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
1294
1295 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
1296
1297         * arm.c (legitimize_pic_address): Fix sense of assertion test for
1298         creating pseudos when the base offset is too large.
1299
1300 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
1301
1302         * global.c (earlyclobber_regclass): Change the type to
1303         VEC(int,heap).
1304         (check_earlyclobber): Update uses of earlyclobber_regclass.
1305         (mark_reg_use_for_earlyclobber): Likewise.
1306         (calculate_local_reg_bb_info): Allocate and free
1307         earlyclobber_regclass using the VEC API.
1308
1309 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
1310
1311         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
1312         assert.
1313
1314 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
1315
1316         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
1317         (*targetm.foo).
1318
1319         * config.gcc: Obsolete c4x-* and tic4x-*.
1320
1321         * tree.h (edge_def): Remove.
1322
1323         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
1324         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
1325         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
1326         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
1327         where appropriate.
1328
1329         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
1330         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
1331         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
1332         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
1333         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
1334         machmode.def, mips-tfile.c, params.c, pretty-print.c,
1335         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
1336         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
1337         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
1338         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
1339         config/i386/cygming.h, config/i386/djgpp.h,
1340         config/i386/lynx.h, config/i386/netware.c,
1341         config/i386/winnt.c, config/ia64/ia64-c.c,
1342         config/iq2000/iq2000.c, config/m32r/little.h,
1343         config/m68k/m68k-protos.h, config/m68k/m68k.h,
1344         config/m68k/m68k.md, config/mcore/mcore.c,
1345         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
1346         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
1347         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
1348         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
1349         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
1350         config/pdp11/pdp11.h, config/rs6000/darwin.h,
1351         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
1352         config/s390/2064.md, config/s390/2084.md,
1353         config/s390/s390-modes.def, config/s390/s390-protos.h,
1354         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
1355         config/stormy16/stormy16.c, config/vax/vax-protos.h,
1356         config/vax/vax.c, config/vax/vax.h,
1357         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
1358         copyright.
1359
1360 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
1361
1362         * c-typeck.c (build_compound_expr): Correct logic in last change.
1363
1364 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
1365
1366         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
1367         parameters.  Replace conditional move code with assert checking for
1368         ar.lc.  Delete obsolete comments.
1369         (set_src_needs_barrier): Delete cond parameter, and code using it.
1370         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
1371         assert checking for PR_REGS.  Fix calls to update_set_flags and
1372         set_src_needs_barrier.
1373         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
1374         callers.  Rewrite explanatory comment before the function.
1375         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
1376         Fix all callers.
1377
1378 2005-04-27  Mike Stump  <mrs@apple.com>
1379
1380         * doc/cpp.texi: gcc now implements universal character names.
1381
1382 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
1383
1384         PR c/21159
1385         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
1386         being a compound expression whose right-hand side is cast to void.
1387
1388 2005-04-27  Caroline Tice  <ctice@apple.com>
1389
1390         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1391         Remove targetm.have_named_sections test.
1392         (fix_edges_for_rarely_executed_code): Likewise.
1393         (insert_section_boundary_note): Likewise.
1394         (reorder_basic_blocks): Check partitioning flag before calling
1395         verify_hot_cold_block_grouping.
1396         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
1397         the function struct rather than global variables.
1398         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
1399         (COLD_END_LABEL): Likewise
1400         (cold_text_section_label): New static global variable.
1401         (cold_end_label): Likewise.
1402         (dwarf2out_switch_text_section): Get hot/cold section labels from
1403         the function struct rather than global variables; test to make sure
1404         cfun is defined.
1405         (output_aranges): Use cold_text_section_label and cold_end_label;
1406         check partitioning flag before putting out delta.
1407         (output_ranges): Remove incorrect code attempting to use
1408         hot/cold labels.
1409         (output_line_info): Get cold section label from function struct; test
1410         to make sure cfun is defined.
1411         (add_location_or_const_value_attribute): Likewise.
1412         (dwarf2out_var_location): Likewise.
1413         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
1414         write out cold_text_section_label if partition flag is set.
1415         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
1416         * function.h (struct function): Add new fields to point to hot/cold
1417         section labels: hot_section_label, cold_section_label,
1418         hot_section_end_label and cold_section_end_label; also add new field
1419         for cold text section name, unlikely_text_section_name.
1420         * opts.c (decode_options): Turn off partitioning flag if
1421         !targetm.have_named_sections.
1422         * output.h (hot_section_label): Remove.
1423         (hot_section_end_label): Remove.
1424         (cold_section_end_label): Remove.
1425         (unlikely_section_label): Remove.
1426         (unlikely_text_section_name): Remove.
1427         * passes.c (rest_of_handle_final):  Remove extra blank line.
1428         * varasm.c (unlikely_section_label): Remove.
1429         (hot_section_label): Remove.
1430         (hot_section_end_label): Remove.
1431         (cold_section_end_label): Remove.
1432         (unlikely_text_section_name):  Remove.
1433         (initialize_cold_section_name): Modify to call
1434         targetm.strip_name_encoding; to store cold section name in current
1435         function struct, if it exists; and to only use the decl_section_name
1436         if flag_named_sections is true.
1437         (unlikely_text_section): Modify to get section name out of current
1438         function struct, if there is one; otherwise build it from
1439         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
1440         (in_unlikely_text_section): Likewise.
1441         (named_section): Modify to get/put cold section name in current function
1442         struct, if there is one.
1443         (function_section):  Change 'bool unlikely' to 'int reloc'; check
1444         targetm.have_named_sections before calling named_section.
1445         (current_function_section): Likewise.
1446         (assemble_start_function): Modify to get/put unlikely_text_section_name
1447         in current function struct; modify to get hot/cold section labels
1448         from function struct; initialize labels using
1449         ASM_GENERATE_INTERNAL_LABEL;
1450         test partitioning flag before writing out hot section label.
1451         (assemble_end_function): Test partitioning flag before writing out
1452         hot/cold section labels.
1453         (default_section_type_flags_1):  Get cold text section name from
1454         function struct if there is one; Set flags correctly for
1455         cold text section if there is not a current function struct.
1456         
1457 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
1458
1459         * tree-ssa-propagate.c (set_rhs): Revert last change.
1460
1461 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
1462
1463         * explow.c (convert_memory_address): Add gcc_assert.
1464
1465 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
1466
1467         * configure.ac: Check for ld --sysroot support.
1468         * gcc.c: Document %R specifier for specs.
1469         (SYSROOT_SPEC): New macro.
1470         (sysroot_spec): New variable.
1471         (static_specs): Add sysroot_spec.
1472         (main): Pass the sysroot spec to the linker if appropriate.
1473         * configure: Regenerated.
1474         * config.in: Likewise.
1475
1476 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
1477
1478         * fold-const.c (fold_binary): Use build_fold_addr_expr
1479         for address calculation and INDIRECT_REF handling.
1480
1481 2005-04-27  Andrew Haley  <aph@redhat.com>
1482
1483         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
1484
1485 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1486
1487         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
1488         pointer when thumb backtracing is on.
1489
1490         * config/fp-bit.c (abort): Revert change.
1491
1492 2005-04-27  Ian Lance Taylor  <ian@airs.com>
1493
1494         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
1495
1496 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1497
1498         * tree-ssa-dce.c: Fix a comment typo.
1499
1500 2005-04-27  David S. Miller  <davem@davemloft.net>
1501
1502         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
1503         Kill setjmpless_size.  current_function_calls_setjmp is completely
1504         computed when we are called, so just use the optimized size value
1505         instead of using REG_SAVE_AREA notes.
1506         (optimize_save_area_alloca): Delete....
1507         * rtl.h (optimize_save_area_alloca): Likewise...
1508         * passes.c (rest_of_compilation): and don't call it any more.
1509         * reg-notes.def (SAVE_AREA): Delete.
1510         
1511 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1512
1513         * config/fp-bit.c (abort): Add noreturn attribute.
1514
1515         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
1516         gcc_unreachable as appropriate.
1517         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
1518         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
1519         ASM_OUTPUT_REG_POP): Likewise.
1520
1521 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
1522
1523         * tree-complex.c (expand_vector_operations_1): Do not build
1524         VIEW_CONVERT_EXPR's for the lhs.
1525
1526 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1527
1528         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
1529         unnecessary noncanonical RTL handling.
1530         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
1531         gcc_assert and gcc_unreachable.
1532
1533         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
1534         gcc_unreachable as appropriate.
1535         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
1536         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
1537         use_return_insn, const_ok_for_op, arm_gen_constant,
1538         arm_canonicalize_comparison, legitimize_pic_address,
1539         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
1540         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
1541         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
1542         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
1543         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
1544         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
1545         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
1546         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
1547         output_call, output_mov_long_double_fpa_from_arm,
1548         output_mov_long_double_arm_from_fpa,
1549         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
1550         output_move_double, arithmetic_instr, shift_op, int_log2,
1551         output_return_instruction, arm_output_function_prologue,
1552         arm_output_epilogue, arm_output_function_epilogue,
1553         emit_multi_reg_push, arm_get_frame_offsets,
1554         arm_compute_initial_elimination_offset, arm_expand_prologue,
1555         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
1556         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
1557         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
1558         thumb_compute_initial_elimination_offset,
1559         thumb_output_function_prologue, thumb_load_double_from_address,
1560         thumb_output_move_mem_multiple, thumb_reload_out_hi,
1561         arm_emit_vector_const, arm_dbx_register_number): Likewise.
1562         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
1563         * config/arm/arm.md (thumb_extendhisi2,
1564         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
1565         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
1566         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
1567         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
1568         * config/arm/cirrus.md (*cirrus_arm_movdi,
1569         *cirrus_movdf_hard_insn): Likewise.
1570         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
1571
1572 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1573
1574         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
1575         (num_ssa_names): Use VEC_length.
1576         (ssa_names): Use VEC_index.
1577         * tree-ssanames.c (ssa_names): Change the type to
1578         VEC(tree,gc).
1579         (init_ssanames, fini_ssa_names, make_ssanames,
1580         release_ssa_name): Update uses of ssa_names.
1581
1582         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
1583         Use fold_buildN instead of fold (buildN (...)).
1584
1585 2005-04-27  Devang Patel <dpatel@apple.com>
1586
1587         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
1588
1589 2005-04-27  Matt Thomas <matt@3am-software.com>
1590             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
1591
1592         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
1593         (vax_output_mi_thunk): Ditto.
1594         (vax_notice_cc_update): Ditto.
1595         (INDEX_REGISTER_P): Add trailing \.
1596         (BASE_REGISTER_P): Add trailing \.
1597         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
1598
1599 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
1600
1601         * tree-ssa-propagate.c (set_rhs): Check operand of
1602         ADDR_EXPR for gimpliness, too.
1603
1604 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1605
1606         * tree-ssa-pre.c: Fix a comment typo.
1607
1608 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
1609
1610         PR tree-optimization/21171
1611         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
1612         record address uses if the reference is volatile.
1613
1614 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
1615
1616         * tree-complex.c (expand_vector_operation): New, extracted from
1617         expand_vector_operations_1.
1618         (tree_vec_extract): Build a NOP_EXPR.
1619         (expand_vec_parallel): Do not care about returning the correct type.
1620         (expand_vector_operations_1): Call expand_vector_operation.
1621         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
1622
1623         * tree-complex.c (gate_expand_vector_operations): New.
1624         (pass_lower_vector_ssa): Use it.
1625         * tree-optimize.c (init_tree_optimization_passes): Include
1626         pass_lower_vector_ssa.
1627         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
1628         (vectorizable_operation): Use it.
1629         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
1630         integer modes for the vector type.
1631
1632         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
1633         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
1634         Do not cope with UNITS_PER_SIMD_WORD == 0.
1635         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
1636         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
1637         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
1638         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
1639         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1640         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1641         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1642
1643         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
1644         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
1645         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
1646
1647         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
1648         (UNITS_PER_SIMD_WORD): New.
1649
1650 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1651
1652         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
1653         gcc_unreachable as appropriate.
1654         (ia64_expand_load_address, ia64_expand_tls_address,
1655         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
1656         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
1657         next_scratch_gr_reg, ia64_initial_elimination_offset,
1658         ia64_expand_prologue, ia64_expand_epilogue,
1659         ia64_output_dwarf_dtprel, ia64_print_operand,
1660         ia64_register_move_cost, first_instruction, rws_access_regno,
1661         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
1662         ia64_sched_init, ia64_variable_issue,
1663         ia64_first_cycle_multipass_dfs_lookahead_guard,
1664         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
1665         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
1666         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
1667         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
1668         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
1669         * config/ia64/predicates.md (got_symbolic_operand,
1670         sdata_symbolic_operand): Likewise.
1671         * config/ia64/vect.md (vcondv2sf): Likewise.
1672
1673 2005-04-27  Matt Thomas <matt@3am-software.com>
1674
1675         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
1676         CONSTANT_ADDRESS_P in config/vax/vax.h
1677         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h. 
1678         (INDEX_REGISTER_P): New.
1679         (BASE_REGISTER_P): New.
1680         (indirectable_constant_address_p): New.  Adapted from
1681         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
1682         (indirectable_address_p): New.  Adapted from
1683         INDIRECTABLE_ADDRESS_P in vax.h.
1684         (nonindexed_address_p): New.  Adapted from
1685         GO_IF_NONINDEXED_ADDRESS in vax.h.
1686         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
1687         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
1688         (legitimate_address_p): New.  Adapted from
1689         GO_IF_LEGITIMATE_ADDRESS in vax.h.
1690         (vax_mode_dependent_address_p): New.  Adapted from
1691         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
1692         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
1693         legitimate_constant_address_p.
1694         (CONSTANT_P): Use legitimate_constant_p.
1695         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
1696         (INDIRECTABLE_ADDRESS_P): Removed.
1697         (GO_IF_NONINDEXED_ADDRESS): Removed.
1698         (INDEX_TEMP_P): Removed.
1699         (GO_IF_REG_PLUS_INDEX): Removed.
1700         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
1701         definitions, depending on whether REG_OK_STRICT is defined.
1702         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
1703         Two definitions, depending on whether REG_OK_STRICT is defined.
1704         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
1705         added.
1706         (legitimate_constant_p): Prototype added.
1707         (legitimate_address_p): Prototype added.
1708         (vax_mode_dependent_address_p): Prototype added.
1709
1710 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1711
1712         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
1713
1714 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
1715
1716         PR c/21213
1717         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
1718         transparent union.
1719
1720 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
1721
1722         PR c/20740
1723         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
1724         assertion failures, if __gcc_host_wide_int__ is not properly
1725         defined.
1726         (init_dynamic_diag_info): Give errors, not assertion failures, if
1727         location_t, tree or __gcc_host_wide_int__ are not properly
1728         defined.
1729
1730 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
1731
1732         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
1733         n_iv_uses, iv_use, n_iv_cands, iv_cand,
1734         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
1735         prepare_decl_rtl, free_loop_data,
1736         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
1737         VARRAY.
1738
1739         * tree.h (tree_phi_node): Add a comment about the order of PHI
1740         arguments.
1741
1742 2005-04-26  Paul Brook  <paul@codesourcery.com>
1743
1744         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
1745
1746 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
1747
1748         * config/mips.mips.c (mips_legitimize_tls_address): Use
1749         gcc_unreachable.
1750
1751         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
1752         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
1753         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
1754
1755         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
1756         'abort'.
1757
1758 2005-04-26  Jeff Law  <law@redhat.com>
1759
1760         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
1761         (op_iter_init_must_and_may_def): Likewise.
1762         (unmodifiable_var_p): Move to a later point in the file.
1763         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
1764         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
1765         (dse_record_phis): Directly check for virtual operands rather than
1766         using need_imm_uses_for.
1767         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
1768         store has multiple V_{MAY,MUST}_DEF operands.
1769
1770 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
1771
1772         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
1773         stmt.
1774
1775 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
1776
1777         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
1778         call to find_edge outside a loop to go through a PHI chain.
1779
1780 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
1781
1782         PR tree-optimization/17598
1783         * fold-const.c (fold_binary): Fold comparisons of addresses
1784         of COMPONENT_REFs which reference the same field to
1785         comparisons of the addresses of the base objects.
1786
1787 2005-04-26  Julian Brown  <julian@codesourcery.com>
1788
1789         * config/arm/arm.c (arm_return_in_msb): New function.
1790         (arm_must_pass_in_stack): New function.
1791         (TARGET_RETURN_IN_MSB): Define target hook.
1792         (TARGET_MUST_PASS_IN_STACK): Define target hook.
1793         (arm_function_value): Pad small aggregate return.
1794         (arm_pad_arg_upward): New function.
1795         (arm_pad_reg_upward): New function.
1796         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
1797         (FUNCTION_ARG_PADDING): Define macro.
1798         (BLOCK_REG_PADDING): Define macro.
1799         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
1800         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
1801         (arm_pad_reg_upward): Declare function.
1802
1803 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
1804
1805         * basic-block.h (ei_cond): New.
1806         (FOR_EACH_EDGE): Call ei_cond.
1807
1808         PR tree-optimization/21047
1809         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
1810         (fold): Don't handle ASSERT_EXPR.
1811
1812 2005-04-25  Roger Sayle  <roger@eyesopen.com>
1813
1814         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
1815         all writes to any stack register as a read/write dependency on
1816         FIRST_STACK_REG.
1817         (sched_analyze_2): Likewise, for reads from any stack register.
1818
1819 2005-04-25  Richard Henderson  <rth@redhat.com>
1820
1821         * final.c (output_addr_const): Revert 2005-04-09 change.
1822
1823 2005-04-25  Mike Stump  <mrs@apple.com>
1824
1825         * config/darwin.c (darwin_encode_section_info): Always set
1826         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
1827
1828 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1829
1830         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
1831         gensupport.c, protoize.c, toplev.c: Replace calls to
1832         `unlock_stream' with `unlock_std_streams'.
1833
1834 2005-04-25  Devang Patel <dpatel@apple.com>
1835
1836         * dbxout.c (dbxout_type): Emit attribute vector.
1837         
1838 2005-04-05  Paul Brook  <paul@codesourcery.com>
1839
1840         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
1841         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
1842         * config/arm/arm.c (arm_cxx_atexit_name): New function.
1843         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
1844         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
1845         (register_dtor_fn): Likewise.
1846         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
1847
1848 2005-04-25  Ian Lance Taylor  <ian@airs.com>
1849
1850         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
1851         * c-common.h (EXPR_STMT_EXPR): Don't define.
1852         (c_common_stmt_codes): Don't define.
1853         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
1854         * c-gimplify.c (gimplify_expr_stmt): Remove.
1855         (c_gimplify_expr): Remove EXPR_STMT case.
1856         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
1857         to INIT_STATEMENT_CODES.
1858         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
1859
1860 2005-04-25  Jan Hubicka  <jh@suse.cz>
1861
1862         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
1863
1864         * except.c: Include diagnostic.h
1865         (dump_eh_tree, verify_eh_tree): New functions.
1866         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
1867         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
1868         (dump_function_to_file): dump eh tree.
1869         * tree-eh.c (mark_eh_edge): New function.
1870         (mark_eh_edge_found_error): New static variable.
1871         (verify_eh_edges): New function.
1872
1873 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
1874
1875         * tree-ssa-alias.c (fieldoff_t): Remove.
1876         (fieldoff_s): typedef the structure itself.  Create a vector of
1877         objects.
1878         (push_fields_onto_fieldstack): Return count of fields pushed.
1879         Remove peeling of first field.  Adjust.
1880         (fieldoff_compare): Adjust.
1881         (create_overlap_variables_for): Adjust.
1882
1883 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
1884
1885         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
1886
1887 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
1888
1889         PR bootstrap/21215
1890         * doc/install.texi: Document correct assembler and linker to use
1891         on i?86-*-solaris2.10.
1892
1893 2005-04-25  Steven Bosscher  <stevenb@suse.de>
1894
1895         Fix PR tree-optimization/21173
1896
1897         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
1898         Unshare expression we pass to force_gimple_operand.
1899
1900 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
1901             Stephen Clarke <stevec@superh.com>
1902             Roger Sayle <roger@eyesopen.com>
1903
1904         PR rtl-optimization/20413
1905         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
1906         VOIDmode for LABEL_REF.
1907         * final.c (shorten_branches): Likewise.
1908         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
1909         * loop.c (reg_dead_after_loop): Likewise.
1910         * varasm.c (decode_addr_const): Likewise.
1911         * doc/rtl.texi: Document mode requirement for LABEL_REF.
1912
1913 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
1914
1915         * config.gcc (avr-*-*): Remove redundant "case".
1916
1917 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
1918
1919         * tree-vect-analyze.c (vect_mark_relevant): Take
1920         VEC(tree,heap) instead of varray_type as an argument.
1921         (vect_mark_stmts_to_be_vectorized): Change the type of
1922         worklist to VEC(tree,heap).  Adjust uses of worklist.
1923
1924 2005-04-24  Devang Patel  <dpatel@apple.com>
1925
1926         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1927         
1928 2005-04-24  Ian Lance Taylor  <ian@airs.com>
1929
1930         * c-semantics.c (build_stmt): Remove test of specific tree codes
1931         for TREE_SIDE_EFFECTS handling.
1932
1933 2005-04-24  Per Bothner  <per@bothner.com>
1934
1935         * c-opts.c (finish_options):  Make the line-number of the <built-in>
1936         location 0, as assumed elsewhere, rather than 1.
1937
1938 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
1939
1940         * tree-ssa-uncprop.c (equiv_stack): Change the type o
1941         VEC(tree,heap).
1942         (tree_ssa_uncprop, uncprop_finalize_block,
1943         uncprop_initialize_block): Update uses of equiv_stack.
1944
1945 2005-04-24  Richard Henderson  <rth@redhat.com>
1946
1947         PR rtl-opt/21163
1948         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
1949         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
1950         constm1_rtx.
1951         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
1952         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
1953         <DIV, MOD>: Likewise.
1954
1955 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1956
1957         * collect2.c (main): Unlock the stdio streams.
1958         * gcc.c (main): Likewise.
1959         * gcov-dump.c (main): Likewise.
1960         * gcov.c (main): Likewise.
1961         * gen-protos.c (main): Likewise.
1962         * gensupport.c (init_md_reader_args_cb): Likewise.
1963         * protoize.c (main): Likewise.
1964         * toplev.c (general_init): Likewise.
1965
1966 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
1967
1968         PR middle-end/20991
1969         * cgraph.h (cgraph_local_info): Add vtable_method field.
1970         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
1971         and node is vtable_method, finalized and not reachable, don't do
1972         anything.
1973
1974 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
1975
1976         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
1977         COMPARISON_CLASS_P.
1978         * tree-ssa-pre.c (create_value_expr_from): Use
1979         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
1980         * tree-ssa-propagate.c (stmt_makes_single_load,
1981         stmt_makes_single_store): Use REFERENCE_CLASS_P.
1982         * tree-vect-transform.c (vect_is_simple_cond): Use
1983         COMPARISON_CLASS_P.
1984         * tree-vrp.c (extract_range_from_assert,
1985         build_assert_expr_for, fp_predicate, has_assert_expr): Use
1986         COMPARISON_CLASS_P.
1987
1988         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
1989         of tpa_to_clear to VEC(int,heap).  Update uses of
1990         tpa_to_clear.  Free tpa_to_clear at the end.
1991
1992 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
1993
1994         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
1995         function decl.
1996
1997 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
1998
1999         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
2000         and gcc_unreachable as appropriate.
2001         (num_insns_constant, output_vec_const_move,
2002         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
2003         rs6000_emit_set_const, rs6000_emit_move,
2004         spe_build_register_parallel, function_arg,
2005         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
2006         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
2007         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
2008         rs6000_common_init_builtins, expand_block_clear,
2009         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
2010         extract_ME, rs6000_get_some_local_dynamic_name,
2011         rs6000_output_function_entry, print_operand,
2012         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
2013         output_cbranch, output_e500_flip_gt_bit,
2014         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
2015         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
2016         compute_save_world_info, rs6000_stack_info,
2017         rs6000_emit_load_toc_table, rs6000_frame_related,
2018         spe_synthesize_frame_save, rs6000_emit_epilogue,
2019         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
2020         output_function_profiler, rs6000_trampoline_size,
2021         rs6000_initialize_trampoline, find_addr_reg,
2022         rs6000_machopic_legitimize_pic_address,
2023         rs6000_initial_elimination_offset,
2024         rs6000_dbx_register_number): Likewise.
2025         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
2026         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
2027         *movti_power, *movti_string, call, call_value, sibcall,
2028         sibcall_value): Likewise.
2029         * config/rs6000/spe.md (*movdf_e500_double,
2030         *movv2si_internal): Likewise.
2031         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
2032         from comment.
2033
2034 2005-04-24  Richard Henderson  <rth@redhat.com>
2035
2036         PR target/21101
2037         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
2038         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
2039         Deny modes smaller than 4 bytes.
2040         * config/i386/i386-protos.h: Update.
2041
2042 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
2043
2044         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
2045         Switch h8300-*-rtems* to ELF.
2046
2047 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
2048
2049         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
2050
2051 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2052
2053         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
2054
2055 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
2056
2057         PR middle-end/21082
2058         * fold-const.c: Fold &a[i]-&a[j] to i-j.
2059
2060 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
2061
2062         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
2063         definitions of ssa names in condition.  Split recusive part to ...
2064         (tree_simplify_using_condition_1): New function.
2065         (expand_simple_operations): New function.
2066
2067 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
2068
2069         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
2070         (find_interesting_uses_cond): Do not use integer_zerop and
2071         integer_nonzerop to check for integer constants.
2072         (set_use_iv_cost): Record the value field.
2073         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
2074         determine_use_iv_cost_outer): Set the value field of the cost pair.
2075         (may_eliminate_iv): Do not return the comparison code.
2076         (iv_elimination_compare): New function.
2077         (determine_use_iv_cost_condition): Set the value field.  Record
2078         noneliminable invariants correctly.
2079         (rewrite_use_compare, rewrite_use_outer): Use the value field.
2080
2081 2005-04-23  DJ Delorie  <dj@redhat.com>
2082
2083         * diagnostic.c (warning): Accept parameter to classify warning option.
2084         (warning0): New, for when a pointer to an error() like function is needed.
2085         * errors.c (warning): Likewise.
2086         * errors.h (warning, warning0): Adjust prototypes.
2087         * toplev.h (warning, warning0): Likewise.
2088
2089         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
2090         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
2091         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
2092         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
2093         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
2094         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
2095         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
2096         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
2097
2098         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
2099         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
2100         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
2101         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
2102         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
2103         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
2104         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
2105         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
2106         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
2107         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
2108         config/rs6000/aix52.h, config/rs6000/darwin.h,
2109         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
2110         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
2111         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
2112         config/stormy16/stormy16.c, config/v850/v850-c.c,
2113         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
2114         callers.
2115         
2116 2005-04-23  Richard Henderson  <rth@redhat.com>
2117
2118         PR rtl-opt/21102
2119         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
2120         performing some integral scalar simplifications.
2121
2122 2005-04-23  Richard Henderson  <rth@redhat.com>
2123
2124         PR target/21099
2125         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
2126         simplifying CONST_VECTOR.
2127
2128 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2129
2130         * tree-ssa-live.c (live_worklist): Take a stack allocated on
2131         heap as an argument.  Update uses of stack.
2132         (calculate_live_on_entry): Allocate stack on heap.
2133
2134         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
2135         partition_link and tpa_nodes on heap.
2136
2137         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
2138         (mark_stmt_necessary, propagate_necessity,
2139         mark_really_necessary_kill_operand_phis): Update uses of
2140         worklist.
2141         (tree_dce_init): Allocate worklist using VEC_alloc.
2142         (tree_dce_done): Free worklist using VEC_free.
2143
2144 2005-04-23  Mike Stump  <mrs@apple.com>
2145
2146         * config/darwin.c (machopic_indirection_name): Don't use
2147         quotes needlessly.
2148         (darwin_emit_unwind_label): Use user_label_prefix instead of
2149         "_".
2150
2151 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2152
2153         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
2154
2155 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
2156
2157         * config.gcc <cris-*>: Specify .opt files.
2158         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
2159         config/cris/linux.opt: New files.
2160         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
2161         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2162         (TARGET_ELF): Override to 0.
2163         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
2164         -melinux-stacksize=N.
2165         * config/cris/cris.c: (cris_handle_option): New function.
2166         (TARGET_DEFAULT_TARGET_FLAGS): Override.
2167         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
2168         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
2169         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
2170         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
2171         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
2172         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
2173         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
2174         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
2175         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
2176         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
2177         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
2178         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
2179         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
2180         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
2181         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
2182         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
2183         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2184         (TARGET_LINUX): Define 0.
2185         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2186         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
2187         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
2188         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
2189         (TARGET_LINUX): Override to 1.
2190         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2191
2192 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2193
2194         * haifa-sched.c (schedule_block): Fix thinko in previous
2195         assertification patch.
2196
2197 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
2198
2199         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
2200         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
2201         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
2202         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
2203         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
2204         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
2205         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
2206         for hpux11.[1-9]*.
2207         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
2208         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
2209         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
2210         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
2211         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
2212         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
2213         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
2214         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
2215         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
2216         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
2217         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
2218         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
2219         (SUBTARGET_OPTIONS): Delete.
2220         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
2221         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
2222         instead of a string.
2223         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
2224         (pa_cpu_string, pa_unix_string): Delete.
2225         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
2226         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
2227         TARGET_HPUX_10_10.
2228         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2229         (pa_handle_option): New function.
2230         (override_options): Remove handling of -march=, -mfixed-range=,
2231         -mschedule= and -munix=.
2232         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
2233         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
2234         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
2235         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
2236         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
2237         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
2238         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
2239         redefining.
2240         * config/pa/pa.opt: New file.
2241         * config/pa/pa-hpux.opt: New file.
2242         * config/pa/pa-hpux1010.opt: New file.
2243         * config/pa/pa-hpux1111.opt: New file.
2244         * config/pa/pa64-hpux.opt: New file.
2245
2246 2005-04-22  David S. Miller  <davem@davemloft.net>
2247
2248         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
2249         integer when it's mode is VOIDmode not DImode.
2250
2251 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
2252
2253         * config/rs6000/rs6000.md (sync_add<mode>_internal,
2254         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
2255         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
2256         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
2257         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
2258         "bne- $-xxx" rather than local labels.
2259         (sync_lock_release<mode>): Add second operand.
2260         (lwsync): Use .long rather than a more meaningful opcode.
2261         * doc/md.texi (Standard Names): Add description of second
2262         parameter to sync_lock_test_and_set.
2263
2264 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
2265
2266         PR tree-optimization/21088
2267         * fold-const.c (fold_unary, fold_binary, fold_ternary):
2268         Export.
2269         * tree-vrp.c (compare_values): Use fold_binary to compare
2270         pointers.  Use boolean_type_node as the type of a comparison
2271         expression being folded.
2272         * tree.h: Add prototypes for fold_unary, fold_binary,
2273         fold_ternary.
2274
2275         * tree-ssa-dom.c: Fix formatting.
2276
2277 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
2278
2279         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
2280         * lambda-code.c (perfect_nestify): Mark virtual operands in
2281         the moved statement for renaming.
2282         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
2283         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
2284         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
2285         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
2286         * tree-flow.h (struct var_ann_d): Update comments.
2287         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
2288         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
2289         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
2290         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
2291         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
2292         debug_names_replaced_by): Remove declarations.
2293         (delete_update_ssa, get_current_def, set_current_def): Declare.
2294         (rewrite_into_loop_closed_ssa): Add new argument.  Update
2295         all callers.
2296         * tree-into-ssa.c: Include params.h.
2297         (old_virtual_ssa_names): Remove.  Update all users.
2298         (need_to_replace_names_p): Remove.  Update all users.
2299         (struct update_ssa_stats_d): Declare.
2300         (update_ssa_stats): New local.
2301         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
2302         dump_tree_ssa_stats, debug_tree_ssa_stats,
2303         dump_update_ssa, debug_update_ssa,
2304         dump_names_replaced_by, debug_names_replaced_by): Declare.
2305         (get_current_def, set current_def): Make extern.
2306         (is_old_name, is_new_name): Protect against references
2307         past the end of the sets.
2308         (add_new_name_mapping): Assert that OLD and NEW are
2309         different SSA names for the same symbol.
2310         When adding a virtual mapping, update stats for virtual
2311         mapping heuristic.
2312         (insert_phi_nodes_for): If UPDATE_P is true, create the
2313         LHS of the new PHI by duplicating SSA name VAR.
2314         (insert_phi_nodes_1): Remove.  Update all users.
2315         (insert_phi_nodes): Remove second argument.  Update all
2316         users.
2317         (maybe_replace_use, maybe_replace_def): New.
2318         (rewrite_update_stmt): Call them.
2319         (mark_def_interesting): Remove calls to is_gimple_reg.
2320         (prepare_phi_args_for_update): Remove.  Update all users.
2321         (prepare_block_for_update): Only process virtual operands
2322         and GIMPLE registers in normal form.
2323         (prepare_use_sites_for): New.
2324         (prepare_names_to_update): Rename from prepare_def_sites.
2325         Call prepare_use_sites_for.
2326         (dump_update_ssa): Rename from dump_repl_tbl.
2327         Update all users.
2328         Show statistics for virtual mapping heuristic.
2329         (debug_update_ssa): Rename from debug_debug_repl_tbl.
2330         (init_update_ssa): Initialize UPDATE_SSA_STATS.
2331         (delete_update_ssa): Make extern.
2332         (mark_set_for_renaming): If the set is empty, do nothing.
2333         (release_ssa_name_after_update_ssa): Update comment.
2334         (insert_updated_phi_nodes_for): Do not remove existing
2335         PHI nodes for symbols.
2336         (switch_virtuals_to_full_rewrite_p): New.
2337         (switch_virtuals_to_full_rewrite): New.
2338         (update_ssa): Call them.
2339         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
2340         for every statement before updating.
2341         If all the names in NEW_SSA_NAMES have been marked for
2342         removal, do nothing.
2343         Only start at the top of the CFG if there are symbols in
2344         SYMS_TO_RENAME.
2345         (ssa_rewrite_finalize_block): Remove.
2346         (ssa_register_new_def): Remove.
2347         (ssa_rewrite_stmt): Remove.
2348         (ssa_rewrite_phi_arguments): Remove.
2349         (ssa_rewrite_initialize_block): Remove.
2350         (ssa_mark_def_sites): Remove.
2351         (ssa_mark_def_sites_initialize_block): Remove.
2352         (ssa_mark_phi_uses): Remove.
2353         (rewrite_ssa_into_ssa): Remove.
2354         * tree-phinodes.c (find_phi_node_for): Remove.
2355         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2356         Call update_ssa.
2357         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
2358         Remove calls to verify_dominators and
2359         verify_loop_structure.
2360         (tree_unswitch_single_loop): Call update_ssa.
2361         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
2362         returns false.
2363         Call verify_stmts.
2364         (delete_tree_ssa): Assert that need_ssa_update_p returns
2365         false.
2366         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
2367         * tree-vectorizer.c (allocate_new_names, rename_def_op,
2368         free_new_names): Remove.  Update all users.
2369         (rename_use_op): Call get_current_def.
2370         (rename_variables_in_bb): Do not handle any real or
2371         virtual definition.
2372         (slpeel_update_phis_for_duplicate_loop): Call
2373         get_current_def and set_current_def instead of using
2374         SSA_NAME_AUX.
2375         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
2376         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
2377         ssa_names_to_replace and delete_update_ssa.
2378         * doc/invoke.texi: Document --param min-virtual-mappings
2379         and --param virtual-mappings-ratio.
2380
2381 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
2382
2383         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
2384         for newly created PHI nodes.
2385         Call create_new_def_for for every new V_MAY_DEF and
2386         V_MUST_DEF on the copied statement.
2387         (struct ssa_name_map_entry): Remove.
2388         (ssa_name_map_entry_hash): Remove.
2389         (ssa_name_map_entry_eq): Remove.
2390         (allocate_ssa_names): Remove.
2391         (rewrite_to_new_ssa_names_def): Remove.
2392         (rewrite_to_new_ssa_names_use): Remove.
2393         (rewrite_to_new_ssa_names_bb): Remove.
2394         (rewrite_to_new_ssa_names): Remove.
2395         (tree_duplicate_sese_region): Remove variables ver,
2396         definitions, phi, ssa_name_map and bi.
2397         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
2398         Call update_ssa.
2399         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
2400         update_ssa instead of rewrite_ssa_into_ssa.
2401         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
2402         create_new_def_for.
2403         (find_uses_to_rename_use): Add argument 'need_phis'.
2404         (find_uses_to_rename_stmt): Do not scan virtual operands.
2405         (find_uses_to_rename): Only scan PHI nodes for
2406         non-virtual names.
2407         (rewrite_into_loop_closed_ssa): Call update_ssa.
2408         (check_loop_closed_ssa_use): Ignore virtual operands.
2409         (check_loop_closed_ssa_stmt): Likewise.
2410         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
2411         NULL.
2412         (rename_variables, set_phi_def_stmts): Remove.
2413         (tree_duplicate_loop_to_header_edge): Reformat comment.
2414         Remove variables BB, I and DEFINITIONS.
2415         Call need_ssa_update_p.
2416         Call update_ssa.
2417         (lv_adjust_loop_header_phi): Reformat comment.
2418         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
2419         (marked_for_rewrite_p, any_marked_for_rewrite_p,
2420         mark_for_rewrite, unmark_all_for_rewrite,
2421         marked_ssa_names): Remove.  Update all users.
2422         (release_ssa_name): If VAR has been registered for SSA
2423         updating, do nothing.
2424         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
2425         (build_assert_expr_for): Call register_new_name_mapping.
2426         (insert_range_assertions): Update call to update_ssa.
2427         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
2428         marked_for_rewrite_p, any_marked_for_rewrite_p,
2429         marked_ssa_names): Remove.
2430
2431 2005-04-22  Jeff Law  <law@redhat.com>
2432
2433         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
2434         (restore_currdefs_to_original_value): Likewise.
2435         (register_definitions_for_stmt): Likewise.
2436         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
2437         for each variable.  Do not allocate/free block_defs_stack either.
2438         Do not iterate if we just thread jumps.  Only iterate if the
2439         tree_cleanup_cfg does useful work (temporary).
2440         (dom_opt_initialize_block): No longer push a marker on
2441         BLOCK_DEFS_STACK.
2442         (dom_opt_finalize_block): Removal call to restore currdefs.
2443         Relax restrictions for recording edge equivalences.
2444         (record_equivalences_from_phis): No longer need to track
2445         CURRENT_DEF.
2446         (optimize_stmt): Similarly.
2447         (thread_across_edge): Simplify by removing the requirement that
2448         statements in the block we are threading through must be nops.
2449         (initialize_hash_element): Handle GOTO_EXPR.
2450
2451 2005-04-22  David S. Miller  <davem@davemloft.net>
2452
2453         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
2454         CONST_DOUBLE_HIGH.
2455         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
2456         fix check on CONST_DOUBLE mode.  It should be VOIDmode
2457         when it is representing an integer.
2458
2459 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2460
2461         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
2462         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
2463         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
2464         find_char_info_specifier_index,
2465         find_length_info_modifier_index): Likewise.
2466         * c-typeck.c (composite_type, pop_init_level): Likewise.
2467         * combine.c (cant_combine_insn_p, try_combine): Likewise.
2468         * cse.c (cse_insn): Likewise
2469         * dominance.c (calc_dfs_tree): Likewise
2470         dwarf2out.c (loc_descriptor_from_tree_1,
2471         add_abstract_origin_attribute, force_decl_die,
2472         force_type_die): Likewise
2473         emit-rtl.c (operand_subword_force): Likewise
2474         explow.c (hard_function_value): Likewise
2475         expmed.c (store_bit_field, expand_divmod,
2476         emit_store_flag_force): Likewise
2477         expr.c (emit_move_multi_word, store_expr,
2478         expand_expr_real_1): Likewise
2479         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
2480         output_operand): Likewise
2481         flow.c (recompute_reg_usage): Likewise
2482         * function.c (assign_stack_temp_for_type, assign_temp, 
2483         handle_epilogue_set): Likewise
2484         * genextract.c (main): Likewise
2485         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
2486         gimplify_modify_expr_rhs, gimplify_expr): Likewise
2487         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
2488         ready_remove, rm_line_notes, rm_other_notes,
2489         schedule_block): Likewise
2490         mips-tfile.c (copy_object, out_of_bounds): Likewise
2491
2492 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
2493
2494         PR target/20813
2495         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
2496         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
2497         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
2498         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
2499         TARGET_XL_COMPAT.
2500         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
2501
2502 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2503
2504         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
2505         (gcc_tree_to_linear_expression): Convert to heap allocated
2506         vectors.
2507         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
2508         lbv_to_gcc_expression, lle_to_gcc_expression,
2509         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
2510         perfect_nestify): Likewise.
2511         lambda.h (gcc_loopnest_to_lambda_loopnest,
2512         lambda_loopnest_to_gcc_loopnest): Likewise.
2513         tree-loop-linear.c (linear_transform_loops): Likewise.
2514
2515 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2516
2517         * config/sparc/predicates.md (arith_double_operand): Use
2518         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
2519         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
2520         (DImode, DFmode constant splitters): Likewise.  Remove code for
2521         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
2522         (logical constant splitters): Use const_int_operand predicate.
2523         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
2524         HOST_BITS_PER_WIDE_INT < 64.
2525
2526 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2527
2528         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
2529         gcc_unreachable as appropriate.
2530         (force_mode, emit_move_sequence, singlemove_string,
2531         output_move_double, output_fp_move_double, find_addr_reg,
2532         output_block_move, output_block_clear, output_and,
2533         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
2534         pa_adjust_cost, pa_issue_rate, print_operand,
2535         output_global_address, output_arg_descriptor, output_cbranch,
2536         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
2537         output_call): Likewise.
2538         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
2539         prefetch, prefetch_cc, prefetch_nocc): Likewise.
2540
2541 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
2542
2543         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
2544         _gcov_pow2_profiler and _gcov_one_value_profiler.
2545         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
2546         (GTFILES): Add $(srcdir)/tree-profile.c.
2547         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
2548         __gcov_one_value_profiler): Declare.
2549         * gimplify.c (force_gimple_operand): Check whether the statements
2550         should be produced in ssa form.
2551         (force_gimple_operand_bsi): New function.
2552         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
2553         __gcov_one_value_profiler): New functions.
2554         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
2555         the profiled value is a power of two or not.
2556         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
2557         * tree-flow.h (in_ssa_p): Declare.
2558         (force_gimple_operand_bsi): Declare.
2559         * tree-into-ssa.c (in_ssa_p): New variable.
2560         (rewrite_into_ssa): Set in_ssa_p.
2561         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
2562         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
2563         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
2564         tree_one_value_profiler_fn): New variables.
2565         (tree_init_edge_profiler): Initialize the profiler function decls.
2566         (tree_gen_edge_profiler): Use global gcov_type_node.
2567         (prepare_instrumented_value): New function.
2568         (tree_gen_interval_profiler, tree_gen_interval_profiler,
2569         tree_gen_one_value_profiler): Call the library functions instead of
2570         creating instrumentation code.
2571         * tree.c (build_fn_decl): New function.
2572         * tree.h (build_fn_decl): Declare.
2573         * value-prof.c (rtl_divmod_values_to_profile,
2574         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
2575         tree_mod_pow2_value_transform, tree_find_values_to_profile):
2576         Do not handle may_be_other and precise values of exponents at pow2
2577         profiler.
2578         (tree_mod_subtract_transform): Reflect that value field of
2579         histogram has changed meaning.
2580         (tree_divmod_values_to_profile): Record the values correctly.
2581         (tree_values_to_profile): Update comment.
2582         * value-prof.h (struct histogram_value_t): Remove pow2 data.
2583
2584 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
2585
2586         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
2587         (decl).
2588
2589 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2590
2591         * config/i386/i386.md (length_immediate): Use gcc_assert or
2592         gcc_unreachable, as appropriate.
2593         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
2594         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
2595         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
2596         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
2597         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2598         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
2599         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
2600         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
2601         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
2602         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
2603         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
2604         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2605         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
2606         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
2607         *prefetch_sse_rex): Likewise.
2608         * config/i386/predicates.md (x86_64_immediate_operand,
2609         x86_64_zext_immediate_operand, symbolic_operand,
2610         no_seg_address_operand, aligned_operand,
2611         memory_displacement_operand): Likewise.
2612         * config/i386/sse.md (*mov<mode>_internal,
2613         *movv2df_internal): Likewise.
2614
2615 2005-04-22  Jan Hubicka  <jh@suse.cz>
2616
2617         * Makefile.in (ipa.o, ipa-inline.o): New files.
2618         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
2619         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
2620         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
2621         * cgraphunit.c (cgraph_default_inline_p,
2622         cgraph_decide_inlining_incrementally,  ncalls_inlined,
2623         nfunctions_inlined, initial_insns, overall_insns, 
2624         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
2625         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
2626         cgraph_mark_inline, cgraph_check_inline_limits,
2627         cgraph_default_inline_p, cgraph_recursive_inlining_p,
2628         update_callee_keys, lookup_recursive_calls,
2629         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
2630         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
2631         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
2632         pass_ipa_inline): Move to ipa-inline.c
2633         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
2634         * ipa.c: New file.
2635         * ipa-inline.c: New file.
2636
2637 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2638
2639         * doc/invoke.texi (SPARC options): Document that -mapp-regs
2640         is turned off by default on Solaris.
2641
2642 2005-04-21  Roger Sayle  <roger@eyesopen.com>
2643
2644         * c-common.h (objc_build_method_signature): Update prototype.
2645         * stub-objc.c (objc_build_method_signature): Update the stub
2646         implementation to accept and ignore additional parameter.
2647         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
2648         the value of ellipsis to objc_build_method_signature instead
2649         of setting TREE_OVERFLOW on the parms TREE_LIST node.
2650
2651 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
2652
2653         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
2654         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
2655         gen_rtx_* not gen_rtx_fmt_*.
2656         (rs6000_emit_vector_select): Likewise.
2657         (rs6000_emit_sync): New.
2658         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
2659         (larx, stcx, cmp): New mode substitutions.
2660         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
2661         UNSPEC_ISYNC): New constants.
2662         (rlwinm): Give name.
2663         (memory_barrier, isync, lwsync): New insns.
2664         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
2665         (sync_lock_release<mode>): New expander.
2666         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
2667         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
2668         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
2669         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
2670         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
2671         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
2672         (sync_add<mode>_internal, sync_addshort_internal,
2673         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
2674         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
2675         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
2676
2677         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
2678         is the memory before, not after, the operation.  Clarify
2679         barrier requirements.
2680
2681 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2682
2683         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
2684         * lambda.h (lambda_vector_min_nz): Likewise.
2685         * langhooks.h (struct lang_hooks_for_types,
2686         struct lang_hooks): Likewise.
2687         * output.h (assemble_integer, this_is_asm_operands): Likewise.
2688         * tree.h: Likewise.
2689         * vec.h: Likewise.
2690         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
2691         
2692         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
2693         comments to avoid 'abort'.  Use gcc_assert as necessary.
2694         * opts.c (common_handle_option): Likewise.
2695         * pretty-print.c (pp_base_format_text): Likewise.
2696         * print-rtl.c (print_rtx): Likewise.
2697         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
2698         * regmove.c (try_auto_increment): Likewise.
2699         * reload.c (find_valid_class, find_reloads_toplev,
2700         find_equiv_reg): Likewise.
2701         * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
2702         merge_assigned_reloads): Likewise.
2703         * tree-inline.c (inline_forbidden_p_1,
2704         estimate_num_insns_1): Likewise.
2705         * tree-optimize.c (execute_todo): Likewise.
2706         * tree-outof-ssa.c (eliminate_phi): Likewise.
2707         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
2708         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
2709         * tree-ssa-operands.c (parse_ssa_operands,
2710         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
2711         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
2712         * tree-ssanames.c (release_ssa_name): Likewise.
2713         * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
2714         walk_tree): Likewise.
2715
2716         * tree-ssa-operands.c (verify_abort): Fold into ..
2717         (verify_imm_links): ... here.
2718
2719 2005-04-21  Richard Henderson  <rth@redhat.com>
2720
2721         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
2722         on non-memory operand for previous inversion.
2723
2724 2005-04-21  Devang Patel  <dpatel@apple.com>
2725
2726         PR optimization/20994
2727         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
2728         x = !(a == b) : p , q;.
2729         (pass_if_conversion): Verify stmts and flow.
2730         
2731 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2732
2733         * optabs.c (gen_conditional_trap): Restore #define.
2734
2735         * alias.c (true_dependence): Remove 'abort' from comments. Use
2736         gcc_assert and gcc_unreachable as appropriate.
2737         (canon_true_dependence): Likewise.
2738         * bb-reorder.c (connect_traces): Likewise.
2739         * c-common.c (c_add_case_label): Likewise.
2740         * c-decl.c (finish_function): Likewise.
2741         * caller-save.c (insert_restore, insert_save): Likewise.
2742         * cfg.c (update_bb_profile_for_threading): Likewise.
2743         * cfganal.c (flow_active_insn_p): Likewise.
2744         * cfgexpand.c (add_reg_br_prob_note): Likewise.
2745         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
2746         cfg_layout_merge_blocks): Likewise.
2747         * ifcvt.c (cond_exec_process_insns, merge_if_block,
2748         find_if_block): Likewise.
2749         * integrate.c (allocate_initial_values): Likewise.
2750         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
2751         swap_condition, unsigned_condition, signed_condition,
2752         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
2753         reg_or_subregno): Likewise.
2754         * lambda-code.c (lambda_compute_auxillary_space,
2755         lambda_transform_legal_p): Likewise.
2756         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
2757         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
2758         lhd_incomplete_type_error, lhd_expand_expr,
2759         lhd_types_compatible_p, lhd_tree_size): Likewise.
2760         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
2761         * local-alloc.c (update_equiv_regs): Likewise.
2762         * loop-unroll.c (peel_loop_completely
2763         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
2764         peel_loop_simple, unroll_loop_stupid,
2765         analyze_iv_to_split_insn): Likewise.
2766         * loop.c (gen_prefetch, find_and_verify_loops,
2767         basic_induction_var): Likewise.
2768         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
2769         * value-prof.c (tree_find_values_to_profile): Likewise.
2770         * varasm.c (named_section, default_assemble_integer,
2771         decode_addr_const): Likewise.
2772
2773 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
2774            Fariborz Jahanian <fjahanian@apple.com>
2775
2776         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
2777         portion of argument passed in fpr.
2778         * expr.c (emit_push_insn): Fix computation of 'offset' used to
2779         decide on partial argument save on stack.
2780
2781 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
2782
2783         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
2784         comment typos.
2785
2786 2005-04-21  Jan Hubicka  <jh@suse.cz>
2787
2788         * cgraphunit.c: Include tree-pass.h
2789         (cgraph_decide_recursive_inlining,
2790         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
2791         cgraph_decide_inlining): Dump goes to dump_file.
2792         (cgraph_optimize): Call ipa passes instead of inliner.
2793         (cgraph_gate_inlining, pass_ipa_inline): New.
2794         * tree-optimize.c (all_ipa_passes): New static variable.
2795         (register_one_dump_file): Dead with IPA passes.
2796         (register_dump_files): Likewise.
2797         (init_tree_optimization_passes): Initialize IPA passes.
2798         (execute_todo): Do cgraph dump when asked to, do not dump function body
2799         for IPA pass.
2800         * tree-pass.h (TODO_dump_cgraph): New macro.
2801         (ipa_passes): Declare.
2802         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
2803
2804 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2805
2806         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
2807         gcc_assert instead of abort.
2808         (classify_argument, examine_argument, construct_container,
2809         contains_128bit_aligned_vector_p, ix86_check_movabs,
2810         standard_80387_constant_opcode, standard_80387_constant_rtx,
2811         ix86_initial_elimination_offset, ix86_compute_frame_layout,
2812         pro_epilogue_adjust_stack, ix86_expand_epilogue,
2813         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
2814         legitimize_tls_address, output_pic_addr_const,
2815         i386_output_dwarf_dtprel, put_condition_code, print_reg,
2816         get_some_local_dynamic_name, print_operand, print_operand_address,
2817         output_387_binary_op, emit_i387_cw_initialization,
2818         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
2819         ix86_expand_clear, ix86_expand_binary_operator,
2820         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
2821         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
2822         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
2823         ix86_expand_branch, ix86_expand_setcc,
2824         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
2825         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
2826         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
2827         memory_address_length, ix86_attr_length_immediate_default,
2828         ix86_attr_length_address_default, ix86_agi_dependant,
2829         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
2830         ix86_expand_binop_builtin, ix86_force_to_memory,
2831         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
2832         x86_emit_floatuns): Likewise.
2833         * config/i386/netware.c (gen_regparm_prefix,
2834         i386_nlm_strip_name_encoding): Likewise.
2835         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
2836
2837 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2838
2839         * optabs.c (gen_condiational_trap): Remove #define.
2840         (add_equal_note): Assertify. Remove explicit indirection from
2841         call via function pointer.
2842         (expand_ternary_op, expand_simple_binop, expand_binop,
2843         expand_twoval_unop, expand_twoval_binop,
2844         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
2845         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
2846         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
2847         prepare_float_lib_cmp, emit_conditional_move,
2848         emit_conditional_add, gen_add2_insn, gen_add3_insn,
2849         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
2850         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
2851         vector_compare_rtx, expand_vec_cond_expr): Likewise.
2852
2853 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2854
2855         * vec.h: Update API to separate allocation mechanism from type.
2856         (VEC_safe_grow): New.
2857         * vec.c (calculate_allocation): New.
2858         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
2859         (vec_gc_free, vec_heap_free): Remove.
2860         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
2861         (VEC): Likewise.
2862         (mangle_macro_name): New.
2863         (struct macro_def): New.
2864         (struct macro): Add multiple argument values.
2865         (macro_expans_end): New.
2866         (push_macro_expansion):  Chain on new macro. Process multiple
2867         args, create follow on expansion. Return follow on argument.
2868         (macro_input): Deal with multiple arguments.
2869         
2870         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
2871         (struct tree_binfo): Adjust.
2872         * basic-block.h: Define VEC(edge,gc).
2873         (struct edge_def): Adjust.
2874         (struct basic_block_def, struct edge_iterator): Likewise.
2875         (ei_container, ei_start_1, ei_last_1): Likewise.
2876         * cfg.c (connect_src, connect_dest): Likewise.
2877         * cfgrtl.c (force_nonfallthru_and_redirect)
2878         * dbxout.c (dbxout_type)
2879         * dwarf2out.c (gen_member_die)
2880         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
2881         (gcc_tree_to_linear_expression): Adjust.
2882         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
2883         lbv_to_gcc_expression, lle_to_gcc_expression,
2884         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
2885         perfect_nestify): Likewise.
2886         * lambda.h (gcc_loopnest_to_lambda_loopnest,
2887         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
2888         * profile.c (instrument_values): Adjust.
2889         * tree-cfg.c (modified_noreturn_calls): Adjust.
2890         (remove_fallthru_edge): Likewise.
2891         * tree-dump.c (dequeue_and_dump): Adjust.
2892         * tree-flow-inline.h (mark_stmt_modified): Adjust.
2893         * tree-flow.h (modified_noreturn_calls): Adjust.
2894         (tree_on_heap): Remove. (yay!)
2895         (register_new_def): Adjust.
2896         * tree-into-ssa.c: Define VEC(int,heap).
2897         (block_defs_stack): Adjust.
2898         (find_idf, insert_phi_nodes, register_new_def,
2899         rewrite_initialize_block, rewrite_finalize_block,
2900         register_new_update_single, rewrite_update_init_block,
2901         rewrite_update_fini_block, rewrite_blocks,
2902         ssa_rewrite_finalize_block, ssa_register_new_def,
2903         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
2904         * tree-loop-linear.c (linear_transform_loops): Adjust.
2905         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
2906         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
2907         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
2908         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
2909         vrp_variables_stack): Adjust declarations.
2910         (tree_ssa_dominator_optimize): Adjust.
2911         (dom_opt_initialize_block, remove_local_expressions_from_table,
2912         restore_nonzero_vars_to_original_value,
2913         restore_vars_to_original_value,
2914         restore_currdefs_to_original_value, dom_opt_finalize_block,
2915         record_var_is_nonzero, record_cond, record_const_or_copy_1,
2916         optimize_stmt, update_rhs_and_lookup_avail_expr,
2917         lookup_avail_expr, record_range): Likewise.
2918         * tree-ssa-pre.c: Define VEC(basic_block,heap).
2919         (compute_antic_aux): Adjust.
2920         (inserted_exprs, create_expression_by_pieces, 
2921         insert_into_preds_of_block, eliminate, mark_operand_necessary, 
2922         remove_dead_inserted_code, fini_pre): Likewise.
2923         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
2924         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
2925         ssa_prop_init): Likewise.
2926         * tree-ssa.c: Define VEC(bitmap,heap).
2927         (verify_name_tags): Adjust.
2928         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
2929         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
2930         tree_divmod_values_to_profile, tree_find_values_to_profile,
2931         value_profile_transformations): Likewise.
2932         * value-prof.h: Define VEC(histogram_value,heap).
2933         * varasm.c: Remove alias_pair pointer typedef, define
2934         VEC(alias_pair,gc).
2935         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
2936         
2937         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
2938         not a pointer to it.  Create an object vector.
2939         (extern_symbols): Turn into an object vector.
2940         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
2941
2942 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
2943
2944         PR/20742
2945         * Makefile.in (tree-chrec.o): Depend on params.h.
2946         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
2947         default value 20.
2948         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
2949         and fold build with fold_buildN.
2950         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
2951         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2952         (tree_contains_chrecs): Compute an estimation of the size of the
2953         given expression.
2954         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
2955         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
2956         * tree-scalar-evolution.c (simple_iv): Ditto.
2957         * doc/invoke.texi (scev-max-expr-size): Documented.
2958
2959 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
2960
2961         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
2962         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
2963         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
2964         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
2965         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
2966         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
2967         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
2968         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
2969         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
2970         (darwin_fix_and_continue_switch): Delete.
2971         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
2972         (SUBTARGET_SWITCHES): Delete.
2973         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
2974         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
2975         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
2976         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
2977         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
2978         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
2979         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
2980         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
2981         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
2982         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
2983         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
2984         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
2985         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
2986         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
2987         (TARGET_64BIT): Undef before redefining.
2988         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
2989         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
2990         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
2991         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
2992         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
2993         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
2994         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
2995         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
2996         (ix86_debug_arg_string, ix86_debug_addr_string)
2997         (ix86_align_loops_string, ix86_align_jumps_string)
2998         (ix86_align_funcs_string): Delete.
2999         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
3000         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
3001         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
3002         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
3003         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
3004         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
3005         (SUBTARGET_SWITCHES): Delete.
3006         * config/i386/i386.c (ix86_debug_arg_string): Delete.
3007         (ix86_debug_addr_string): Delete.
3008         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
3009         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
3010         (ix86_align_loops_string, ix86_align_jumps_string)
3011         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
3012         (ix86_align_funcs_string): Make static.
3013         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3014         (ix86_handle_option): New function.
3015         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
3016         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
3017         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
3018         of darwin_fix_and_continue_switch.
3019         (darwin_one_byte_bool): Delete.
3020         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
3021         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
3022         to darwin_one_byte_bool.
3023         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
3024         * config/i386/djgpp.opt, config/i386/i386.opt,
3025         * config/i386/sco5.opt: New files.
3026
3027 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3028
3029         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
3030         fp_zero_operand, fp_register_operand, intreg_operand,
3031         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
3032         call_operand, call_operand_address, tgd_symbolic_operand,
3033         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
3034         symbolic_operand, symbolic_memory_operand, label_ref_operand,
3035         sp64_medium_pic_operand, data_segment_operand,
3036         text_segment_operand, splittable_symbolic_memory_operand,
3037         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
3038         eq_or_neq, normal_comp_operator, noov_compare_op,
3039         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
3040         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
3041         const64_operand, const64_high_operand, arith11_operand,
3042         arith10_operand, arith_double_operand, arith_double_4096_operand,
3043         arith_double_add_operand, arith11_double_operand,
3044         arith10_double_operand, small_int, small_int_or_double,
3045         uns_small_int, uns_arith_operand, clobbered_register,
3046         input_operand, compare_operand): Delete.
3047         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
3048         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
3049         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
3050         (GEN_HIGHINT64, GEN_INT64): Delete.
3051         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
3052         gen_safe_XOR64): Adjust for above deletion.
3053         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
3054         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
3055         (legitimate_constant_p): Use const_zero_operand instead.
3056         (sparc_extra_constraint_check): Likewise.
3057         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
3058         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
3059         (PREDICATE_CODES): Delete.
3060         * config/sparc/sparc.md: Include predicates.md.
3061         (All patterns): Adjust for new predicate names.
3062         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
3063         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
3064         (movdi): Use general_operand predicate.
3065         (movdi_sp64_dbl): Delete.
3066         (movdi_const64_special): Add 'N' constraint.
3067         (movdicc): Use arith10_operand predicate.
3068         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
3069         (movdi_cc_reg_sp64): Use arith10_operand predicate.
3070         (movdi_cc_reg_sp64_trunc): Delete.
3071         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
3072         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
3073         (subdi3_sp32): Delete.
3074         (subdi3_insn_sp32): Change to define_insn_and_split.
3075         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
3076         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
3077         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
3078         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
3079         small_int_operand predicate.
3080         (divdi3, udivdi3): Use arith_operand predicate.
3081         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
3082         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
3083         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
3084         (xordi3_sp64_dbl): Delete.
3085         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
3086         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
3087         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
3088         cmp_ccx_set_not): Use arith_operand predicate.
3089         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
3090         * config/sparc/predicates.md: New file.
3091
3092 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
3093
3094         PR tree-optimization/14846
3095         * fold-const.c (fold_single_bit_test_into_sign_test): New,
3096         split out from ...
3097         (fold_single_bit_test): ... here.
3098         (fold_binary): Call fold_single_bit_test_into_sign_test
3099         instead of fold_single_bit_test.
3100
3101 2005-04-20  James E Wilson  <wilson@specifixinc.com>
3102
3103         PR c++/20805
3104         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
3105         is another declaration.
3106
3107 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
3108
3109         * config/cris/predicates.md: New file.
3110         * config/cris/cris-protos.h (cris_store_multiple_op_p)
3111         (cris_movem_load_rest_p): Declare.
3112         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
3113         (cris_movem_load_rest_p): Ditto.  Globalize.
3114         (cris_bdap_operand, cris_bdap_biap_operand,
3115         cris_orthogonal_operator, cris_commutative_orth_op,
3116         cris_operand_extend_operator,
3117         cris_additive_operand_extend_operator, cris_extend_operator,
3118         cris_plus_or_bound_operator, cris_mem_op,
3119         cris_general_operand_or_symbol,
3120         cris_general_operand_or_gotless_symbol,
3121         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
3122         cris_load_multiple_op): Remove predicate functions.
3123         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
3124         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
3125         * config/cris/cris.h (PREDICATE_CODES): Don't define.
3126         * config/cris/cris.md: Include predicates.md.
3127         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
3128
3129 2005-04-20  Ian Lance Taylor  <ian@airs.com>
3130
3131         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
3132         * c-common.h (STMT_EXPR_STMT): Don't define.
3133         (STMT_EXPR_NO_SCOPE): Don't define.
3134         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
3135         * c-pretty-print.c (pp_c_primary_expression): Likewise.
3136         (pp_c_expression): Likewise.
3137
3138 2005-04-20  Richard Henderson  <rth@redhat.com>
3139
3140         PR target/21100
3141         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
3142
3143 2005-04-20  Jeff Law  <law@redhat.com>
3144
3145         * reload1.c (reload): Ignore equivalences between pseudos and
3146         read only memory.
3147
3148 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
3149
3150         PR c/12913
3151         * c-tree.h (struct c_label_list): Update comment.
3152         (struct c_label_context): Rename to struct c_label_context_se.
3153         (label_context_stack): Rename to label_context_stack_se.
3154         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
3155         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
3156         c_end_vm_scope): New.
3157         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
3158         * c-decl.c (pop_scope): Call c_end_vm_scope.
3159         (pushdecl): Call c_begin_vm_scope for variably modified
3160         declarations.
3161         (define_label): Check for jumping into scope of identifier with
3162         variably modified type.  Push label on stack for those defined at
3163         current context of identifiers with variably modified type.
3164         (start_function): Create stack level for context of identifiers
3165         with variably modified type.
3166         (finish_function): Pop stack level for context of identifiers with
3167         variably modified type.
3168         * c-typeck.c (label_context_stack): Rename to
3169         label_context_stack_se.
3170         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
3171         (c_finish_goto_label): Check for jumping into scope of identifier
3172         with variably modified type.  Push label on stack for those jumped
3173         to from current context of identifiers with variably modified
3174         type.
3175         (struct c_switch): Add blocked_vm.
3176         (c_start_case): Initialize blocked_vm.
3177         (do_case): Check blocked_vm.
3178         (c_finish_case): Add comment.
3179         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
3180         variable label_context_stack.
3181
3182 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3183
3184         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
3185         conditional_replacement, value_replacement, abs_replacement,
3186         minmax_replacement.
3187         (replace_phi_edge_with_variable): Remove argument BB.
3188         (conditional_replacement, value_replacement,
3189         minmax_replacement, abs_replacement): Remove argument PHI_BB.
3190         Update a call to replace_phi_edge_with_variable.
3191
3192         * tree-ssa-phiopt.c: Fix comments.
3193
3194 2005-04-20  Michael Matz  <matz@suse.de>
3195
3196         PR20973
3197         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
3198         pseudos.
3199
3200 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3201
3202         * tree-ssa-phiopt.c: Fix comment typos.
3203
3204         PR tree-optimization/21116
3205         * tree-ssa-phiopt.c: Fix a typo.
3206
3207 2005-04-19  Richard Henderson  <rth@redhat.com>
3208
3209         * builtins.c (expand_builtin_sync_operation): Revert last change.
3210         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
3211         not vs new value.
3212         (expand_compare_and_swap_loop): Likewise.
3213         (expand_sync_operation): Remove fallback from NAND to AND; invert
3214         memory operand when expanding from cmpxchg.
3215         (expand_sync_fetch_operation): Likewise.
3216         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
3217         compare-and-swap.
3218
3219         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
3220         when implementing NAND.  Fix double-add for AFTER.
3221         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
3222         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
3223         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
3224         memory value.
3225         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
3226         memory barrier.
3227
3228         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
3229         to return old memory value.
3230         (sync_compare_and_swap_cc<IMODE>): Likewise.
3231
3232         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
3233         return pre-reload.  Don't consider output or anti dependencies.
3234         * config/ia64/sync.md (IMODE): New.
3235         (modesuffix): Add QI and HI.
3236         (memory_barrier): Simplify expansion.
3237         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
3238         (cmpxchg_acq_<IMODE>): Likewise.
3239         (sync_lock_test_and_set<IMODE>): Likewise.
3240         (sync_lock_release<IMODE>): Likewise.
3241
3242 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
3243
3244         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
3245         ~X or ~Y simplify.
3246
3247 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
3248
3249         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
3250
3251 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
3252             Joseph S. Myers  <joseph@codesourcery.com>
3253
3254         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
3255         * c-typeck.c (build_c_cast): Check these options.
3256         * doc/invoke.texi: Document these options.
3257
3258 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
3259
3260         * tree-ssa-phiopt.c: Update a comment about the pass.
3261
3262 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
3263
3264         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
3265         config/mcore/mcore.c: Fix comment typos.
3266
3267 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
3268
3269         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
3270         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
3271
3272 2005-04-19  Paul Brook  <paul@codesourcery.com>
3273
3274         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
3275
3276 2005-04-19  Andrew Haley  <aph@redhat.com>
3277
3278         PR java/21022
3279         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
3280         looking at a field's bitpos.
3281
3282 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3283
3284         * system.h (fopen, fdopen, freopen): Define these to the unlocked
3285         libiberty functions.
3286
3287 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
3288
3289         PR tree-optimization/21096
3290         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
3291
3292 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
3293
3294         PR target/21098
3295         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
3296         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
3297
3298 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
3299
3300         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
3301         refers to the function being dumped.
3302
3303 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
3304
3305         * varasm.c (assemble_start_function): Remove reset of in_section.
3306
3307 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
3308
3309         PR tree-optimization/21085
3310         * fold-const (fold_binary): Don't change X % -C to X % C if C has
3311         overflowed.
3312
3313 2005-04-19  Ben Elliston  <bje@au.ibm.com>
3314
3315         * doc/invoke.texi (Optimize Options): Refer to the correct
3316         optimisation flag -ftree-dominator-opts, not -ftree-dom.
3317
3318 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
3319
3320         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
3321         alloca argument to be big enough.
3322
3323 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
3324
3325         PR middle-end/21049
3326         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
3327         cfun->cfg are NULL.
3328
3329 2005-04-18  Tom Tromey  <tromey@redhat.com>
3330
3331         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
3332         typo.
3333
3334 2005-04-18  Richard Henderson  <rth@redhat.com>
3335
3336         * config/alpha/alpha.c (alpha_split_atomic_op): New.
3337         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
3338         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
3339         * config/alpha/alpha-protos.h: Update.
3340         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
3341         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
3342         (attr type): Add ld_l, st_c, mb.
3343         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
3344         iornotsi3, xorsi_internal, xornotsi3): New.
3345         * config/alpha/ev4.md (ev4_ld): Add ld_l.
3346         (ev4_ist_c, ev4_mb): New.
3347         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
3348         (ev5_ld_l): New.
3349         * config/alpha/ev6.md (ev6_ild): Add ld_l.
3350         (ev6_ist): Add st_c.
3351         (ev6_mb): New.
3352         * config/alpha/sync.md: New file.
3353
3354 2005-04-18  Richard Henderson  <rth@redhat.com>
3355
3356         * builtins.c (expand_builtin_sync_operation): Fold nand to and
3357         for constants.
3358
3359         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
3360
3361 2005-04-18  Devang Patel  <dpatel@apple.com>
3362
3363         * config/rs6000/atlivec.md (mulv4si3): New pattern.
3364         
3365 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
3366
3367         PR tree-optimization/20922
3368         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
3369         Fold X + c >= X and fold X - c <= X to true.
3370
3371 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
3372