OSDN Git Service

2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
2
3         PR target/16445
4         * config/ia64/ia64.c (bundling): Don't count ignored insns.
5
6 2004-07-12  Richard Henderson  <rth@redhat.com>
7
8         * target.h (struct gcc_target): Move gimplify_va_arg_expr
9         next to build_builtin_va_list.
10         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
11         * builtins.c (gimplify_va_arg_expr): Likewise.
12         * gimplify.c (copy_if_shared_r): Likewise.
13
14 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
15
16         * passes.c (rest_of_decl_compilation): Don't defer call of
17         assemble_variable if its DECL_RTL is already set.
18
19 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
20
21         * cfgloop.h (struct loop): Add nb_iterations field.
22         (current_loops): Declare.  
23         * tree-chrec.c (chrec_not_analyzed_yet,
24         chrec_dont_know, chrec_known, count_ev_in_wider_type,
25         chrec_contains_symbols_defined_in_loop): Remove the temporary
26         hooks. 
27         * tree-flow-inline.h (loop_containing_stmt): New function.
28         * tree-scalar-evolution.c: Add implementation.
29         * tree-scalar-evolution.h: Add declarations.
30
31 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
32
33         PR rtl-optimization/15921
34         * Makefile.in (global.o): Add recog.h.
35         
36         * global.c (recog.h): Add the include-clause.
37         (bb_info): New member earlyclobber.
38         (allocate_bb_info, free_bb_info): Initialize/finish the new
39         member.
40         (earlyclobber_regclass, earlyclobber_regclass_length): The new
41         global variables.
42         (check_earlyclobber, regclass_intersect,
43         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
44         New functions.
45         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
46         (make_accurate_live_analysis): Modify pavin.
47         
48 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
49
50         * tree-cfg.c (find_taken_edge): Statically compute the truth
51         value of a predicate comparing an SSA_NAME to itself.
52
53 2004-07-12  Roger Sayle  <roger@eyesopen.com>
54
55         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
56         rs6000 doesn't have shift-and-add or shift-and-sub instructions
57         by returning the cost of a multiplication plus an addition.
58
59 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
60
61         PR tree-optimization/14107
62         * gimplify.c (gimplify_return_expr): Accept a
63         RETURN_EXPR with an error argument.
64         * tree-optimize.c (init_tree_optimization_passes):
65         Run pass_warn_function_return at -O0.
66
67 2004-07-12  Roger Sayle  <roger@eyesopen.com>
68
69         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
70         index entry.
71
72 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
73
74         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
75         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
76         * config/mips/3000.md: Add copyright notice.  Remove automota and
77         function units; use generic ones instead.  Only define reservations
78         for things that are different from generic.md.  Extend each clause
79         to include r3900.
80         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
81         * config/mips/mips.md: Include them. Remove define_function_units.
82         (alu, imuldiv): New automata and units.
83
84 2004-07-12  Ben Elliston  <bje@au.ibm.com>
85
86         * doc/invoke.texi (Optimize Options): Document -frename-registers
87         not being enabled by default at -O3.
88
89 2004-07-11  Roger Sayle  <roger@eyesopen.com>
90
91         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
92         floating point additions, to keep real immediate constant positive.
93         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
94         into X + C, and leave positive real constants as X - C.
95
96 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
97
98         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
99
100 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
101
102         PR tree-optimization/15654
103         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
104
105 2004-07-11  Roger Sayle  <roger@eyesopen.com>
106
107         * builtins.c (fold_builtin_fputs): Don't bother converting the
108         return type to integer_type_node, as we've already checked that
109         the result will be ignored.
110
111         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
112         that signed addition, subtraction, multiplication, division,
113         remainder, negation and absolute value may potentially trap.
114
115         * fold-const.c (fold_ignored_result): New function to strip
116         non-side-effecting tree nodes from an expression whose result
117         is ignored.
118         (fold_convert): Call fold_ignored_result when casting a value
119         to VOID_TYPE.
120         (omit_one_operand):  Call fold_ignored_result on the "omitted"
121         operand when building a COMPOUND_EXPR.
122         (pedantic_omit_one_operand): Likewise.
123         * tree.h (fold_ignored_result): Prototype here.
124         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
125         when we're going to ignore the result.
126
127 2004-07-11  Richard Henderson  <rth@redhat.com>
128
129         PR tree-opt/16383
130         * tree-ssa-ccp.c (fold_stmt_r): Split out...
131         * tree.c (fields_compatible_p, find_compatible_field): ... new.
132         * tree.h (fields_compatible_p, find_compatible_field): Declare.
133         * tree-sra.c (sra_hash_tree): Hash fields by offset.
134         (sra_elt_eq): Use fields_compatible_p.
135         (generate_one_element_ref): Use find_compatible_field.
136
137 2004-07-11  Richard Henderson  <rth@redhat.com>
138
139         PR tree-opt/16422
140         * tree-sra.c (generate_one_element_init): New.
141         (generate_element_init): Use it.
142         (scalarize_init): Push/pop gimplify context around it.
143         (find_new_referenced_vars_1, find_new_referenced_vars): New.
144         * gimplify.c (gimplify_expr): Allow SSA_NAME.
145
146 2004-07-11  Roger Sayle  <roger@eyesopen.com>
147
148         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
149         combine.c's combine_insn_cost.
150         * rtl.h (insn_rtx_cost): Prototype here.
151         * combine.c (combine_insn_cost): Delete function.
152         (combine_validate_cost): Update callers of combine_insn_cost to
153         call insn_rtx_cost instead.
154         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
155         requesting the rtx_cost of call and/or jump instructions.
156
157         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
158         rtx_cost directly.  Don't request/use the cost of call or jump
159         instructions.  Return -1 if the cost of any instruction can't be
160         determined (or the BB contains a function call).
161         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
162         -1 (i.e. can't determine the cost of any instruction or the basic
163         block contains a subroutine call).
164         (find_if_case_2): Likewise.
165
166 2004-07-11  Roger Sayle  <roger@eyesopen.com>
167
168         * rs6000.c (struct processor_costs): Change semantics of fields to
169         include the COST_N_INSNS scaling, and update all initializers.
170         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
171         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
172         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
173         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
174
175 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
176
177         * LANGUAGES: Remove obsolete information.
178
179 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
180
181         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and 
182         SIGBUS signal frames, the PSW address points *to* the faulting
183         instruction, not after it.
184
185 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
186
187         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
188         added to TLS symbol addresses.
189
190 2004-07-11  Richard Henderson  <rth@redhat.com>
191
192         * expmed.c (init_expmed): Use stack-local structures for 
193         temporary rtl.  Don't recognize shifts.
194
195 2004-07-11  Richard Henderson  <rth@redhat.com>
196
197         * expr.c (store_expr): Don't fiddle subreg promotion for types
198         with precision smaller than the mode.
199
200 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
201
202         * tree.h (all_types_permanent): Remove.
203
204 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
205
206         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
207         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
208         * langhooks.c (lhd_clear_binding_stack): Remove.
209         * langhooks-def.h (lhd_clear_binding_stack,
210         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
211         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
212         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
213         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
214         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
215         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
216         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
217         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
218         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
219         * tree.h (poplevel): Don't declare.
220         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
221         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
222         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
223         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
224         Remove.
225
226 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
227
228         PR tree-optimization/16437
229         * c-common.c (shorten_compare): Don't mark result of conversion to
230         narrower signed type as overflowing.
231         * fold-const.c (decode_field_reference): Determine whether
232         signedness comes from outer type using precision rather than size.
233
234 2004-07-11  Phil Edwards  <phil@codesourcery.com>
235
236         * configure.ac:  Alphabetize --enable-checking list, add
237         missing valgrind entry.
238         * configure:  Regenerate.
239
240 2004-07-11  Phil Edwards  <phil@codesourcery.com>
241
242         * doc/install.texi (Testing):  Fix syntax in "make check" example.
243
244 2004-07-10  James E Wilson  <wilson@specifixinc.com>
245
246         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
247
248 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
249
250         PR rtl-optimization/16001
251         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
252         niter_expr.
253
254 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
255
256         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
257
258 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
259             James Morrison  <phython@gcc.gnu.org>
260
261         * doc/contrib.texi (Contributors): Add gfortran contributors and
262         fix a couple of typos.
263
264 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
265
266         PR rtl-optimization/15387
267         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
268         to incoming args space correctly.
269
270 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
271
272         * pa.c (output_indirect_call): Only use %r2 as the link register in
273         indirect calls with the long PA 2.0 pc-relative branch.
274
275 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
276
277         * config/i386/i386.c (override_options): Pick a 64-bit CPU
278         for the default tuning if TARGET_64BIT.
279
280 2004-07-10  Richard Henderson  <rth@redhat.com>
281
282         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
283         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
284
285 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
286
287         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
288         * expmed.c (store_bit_field, extract_bit_field): Remove last
289         argument.
290         * builtins.c (expand_builtin_signbit): Adjust callers.
291         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
292         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
293         * ifcvt.c (noce_emit_move_insn): Likewise.
294         * stmt.c (expand_return): Likewise.
295         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
296         store_field, expand_expr_real_1): Likewise.
297
298 2004-07-10  Richard Henderson  <rth@redhat.com>
299
300         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
301
302 2004-07-09  Mike Stump  <mrs@apple.com>
303
304         * config/darwin.c (no_dead_strip): Add.
305         (HAVE_DEAD_STRIP): Add.
306         (darwin_emit_unwind_label): Ensure that we don't dead code strip
307         the .eh label.
308
309 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
310
311         * tree-ssa-loop-im.c: New file.
312         * Makefile.in (tree-ssa-loop-im.o): Add.
313         * cfgloop.c (superloop_at_depth): New function.
314         * cfgloop.h (superloop_at_depth): Declare.
315         * common.opt (ftree-lim): New flag.
316         * expr.c (array_ref_up_bound): New function.
317         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
318         * timevar.def (TV_LIM): New timevar.
319         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
320         computing immediate uses of a phi node.
321         * tree-flow.h (struct tree_ann_common_d): Add aux field.
322         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
323         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
324         * tree-pass.h (pass_lim): Declare.
325         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
326         functions.
327         (pass_lim): New pass structure.
328         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
329         * tree.c (in_array_bounds_p): New function.
330         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
331         (in_array_bounds_p, array_ref_up_bound): Declare.
332         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
333         * doc/passes.texi (tree-ssa-loop-im.c): Document.
334
335 2004-07-09  Richard Henderson  <rth@redhat.com>
336
337         * builtins.c (expand_builtin_stpcpy): Don't modify len.
338
339         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
340         with prejudice.
341
342 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
343
344         * flags.h: Delete redundant prototypes that are being generated
345         in options.h from common.opt.
346         * common.opt: Add in the expository comments formerly in flags.h.
347
348 2004-07-09  Jan Beulich  <jbeulich@novell.com>
349
350         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
351         available for use only when TARGET_MMX/_SSE is set, and check for
352         variable argument function if any register count is non-zero.
353         (function_arg): Correctly suppress repeated warnings for passing SSE
354         vectors are arguments without SSE enabled.
355         (ix86_function_arg_boundary): Without SSE enabled, the use of what
356         would be SSE register modes does no longer influence the alignment.
357
358 2004-07-09  Richard Henderson  <rth@redhat.com>
359
360         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
361         Always align upward to arg boundary.  Use size_in_bytes/round_up.
362         Maintain type-correctness of constants.
363         * stor-layout.c (round_up, round_down): Special-case powers of 2.
364
365 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
366
367         * config/sparc/sparc.c (*_costs): Scale instruction costs
368         by COSTS_N_INSNS.
369         (sparc_rtx_costs): Adjust as appropriate.
370
371 2004-07-09  Jan Beulich  <jbeulich@novell.com>
372
373         * config/i386/mm3dnow.h: New.
374         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
375
376 2004-07-09  Richard Henderson  <rth@redhat.com>
377
378         * simplify-rtx.c (simplify_const_relational_operation): Only
379         look at bounds of scalar integers.
380
381 2004-07-09  Jan Beulich  <jbeulich@novell.com>
382
383         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
384
385 2004-07-09  Andrew Pinski  <apinski@apple.com>
386
387         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
388         always referenced.
389         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
390         UOBJC_METACLASS_decl.
391
392 2004-07-09  James E Wilson  <wilson@specifixinc.com>
393
394         PR target/16364
395         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
396         do return a parallel if hfa_mode == XFmode and mode == TImode.
397
398 2004-07-09  Jan Beulich  <jbeulich@novell.com>
399
400         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
401         permissible for unary plus.
402
403 2004-07-09  Jan Beulich  <jbeulich@novell.com>
404
405         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
406         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
407         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
408         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
409         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
410         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
411         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
412         (BUILTIN_xxxIMAX): New.
413         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
414         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
415         BUILT_IN_PARITYIMAX.
416
417 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
418
419         * config/sparc/sparc.h (processor_costs): Define.
420         (sparc_costs): Declare.
421         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
422         hypersparc_costs, sparclet_costs, ultrasparc_costs,
423         ultrasparc3_costs): New.
424         (sparc_override_options): Set sparc_costs as appropriate.
425         (sparc_rtx_costs): Use sparc_costs instead of messy
426         conditionals.
427         
428 2004-07-09  Steven Bosscher  <stevenb@suse.de>
429
430         * doc/md.texi (Processor pipeline description): Mention that
431         the old pipeline description is deprecated.
432
433         * config/rs6000/7450.md (automaton ppc7450): Split up, move
434         mciu_7450 function unit to...
435         (automaton ppc7450mciu): ...new automaton.
436
437         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
438         (schedule_block): Don't consider inserting bubbles.
439         (sched_init): Don't initialize DFA bubbles.
440         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
441         TARGET_SCHED_DFA_BUBBLE): Remove.
442         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
443         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
444         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
445
446         * stmt.c (conditional_context): Remove prototype.
447         * tree.h (conditional_context): Remove.
448         * tree-cfg.c (pre_insert_on_edge): Remove.
449
450         * c-common.h (c_expand_asm_operands): Remove prototype.
451         * c-typeck.c (c_expand_asm_operands): Remove.
452
453 2004-07-09  Jan Beulich  <jbeulich@novell.com>
454
455         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
456         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
457         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
458         and V8QI are class SSE. All sufficiently small remaining vector modes
459         must be passed in one or two integer registers.
460         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
461         returned in memory.
462         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
463         __builtin_ia32_pmuludq128 have non-uniform argument and return types
464         and must thus be handled explicitly.
465         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
466         MMX and XMM regs.
467         (movv8qi_internal, movv4hi_internal, movv2si_internal,
468         movv2sf_internal): Permit moving between MMX and XMM registers (since
469         MMX areguments and return values are passed in XMM registers).
470         (sse2_umulsidi3): Correct type and mode.
471
472 2004-07-09  Richard Henderson  <rth@redhat.com>
473
474         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
475
476 2004-07-09  Eric Christopher  <echristo@redhat.com>
477
478         * config/rs6000/40x.md: Split into two automatons.
479
480 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
481             Andrew Pinski  <apinski@apple.com>
482
483         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
484         on when we have more than one input file.
485         (c_common_parse_file): Restore loop over all input files.
486         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
487
488         * c-decl.c (set_type_context): New function.
489         (pop_scope): Use it to set context of types.  When we
490         encounter a TYPE_DECL, set the context of the attached type too.
491         (pop_file_scope): Don't call cpp_undef_all here.
492         (diagnose_mismatched_decls): Do not complain about a second
493         definition of an 'extern inline' function if it's not in the
494         same translation unit.  Do not complain about inline
495         declaration after use if the use was in a different
496         translation unit.
497         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
498         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
499         the external scope.
500         (pushdecl_top_level): Likewise.
501         (grokdeclarator): Clarify what is going on with setting
502         DECL_EXTERNAL on function types, a little.
503         (c_write_global_declarations): Don't do anything if
504         -fsyntax-only or errors have been encountered.
505
506 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
507
508         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
509
510 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
511
512         PR target/16459
513         * pa.c (output_indirect_call): Use %r2 as the link register when
514         calling $$dyncall with a pc-relative branch.
515
516 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
517
518         * doc/install.texi (Binaries): Mention OpenPKG.
519
520 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
521
522         Fix PR tree-optimization/15555
523         * tree-dfa.c (dump_variable): If the variable is a pointer
524         SSA_NAME, also dump its points-to information.
525         * tree-flow.h (struct ptr_info_def): Add field
526         is_dereferenced.
527         (dump_points_to_info_for): Declare.
528         (debug_points_to_info_for): Declare.
529         * tree-optimize.c (init_tree_optimization_passes): Add a
530         second alias analysis pass after DOM2.
531         Move pass_del_pta to a later spot.
532         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
533         create a name tags when we find a dereferenced pointer.  Just
534         mark the pointer dereferenced.
535         (collect_points_to_info_for): Move code to clear points-to
536         information to create_name_tags.
537         (create_name_tags): New function.
538         (compute_flow_sensitive_aliasing): Call it.
539         (setup_pointers_and_addressables): Mark type tags for renaming
540         here instead of ...
541         (create_memory_tag): ... here.
542         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
543         (dump_points_to_info_for): Declare extern.
544         (debug_points_to_info_for): New function.
545
546 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
547
548         * config/arc/arc.md: Switch to DFA-based scheduler description.
549         * config/arc/arc.c: Switch to DFA-based scheduler description.
550
551 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
552
553         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
554         pointer.
555
556 2004-07-09  Richard Henderson  <rth@redhat.com>
557
558         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
559         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
560         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
561         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
562
563         * config/v850/v850-protos.h (v850_va_arg): Remove.
564         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
565         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
566         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
567         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
568         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
569
570 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
571
572         PR target/12133
573         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
574         and DImode to use +/-4k offset.
575
576 2004-07-09  Richard Henderson  <rth@redhat.com>
577
578         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
579         Remove.
580         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
581         (xstormy16_gimplify_va_arg_expr): Rewrite from
582         xstormy16_expand_builtin_va_arg.
583         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
584
585         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
586         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
587
588         * config/sh/sh-protos.h (sh_va_arg): Remove.
589         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
590         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
591         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
592
593         * config/pa/pa-protos.h (hppa_va_arg): Remove.
594         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
595         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
596         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
597
598         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
599         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
600         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
601         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
602
603 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
604
605         * config/sparc/sparc.md (return): Rewrite length formula.
606         * config/sparc/sparc.c (output_return): Pass 1 as 5th
607         argument to final_scan_insn when in a delay slot.
608         (output_sibcall): Likewise.
609
610 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
611
612         * arm.c (arm_cpp_interwork): New variable.
613         (arm_override_options): Set it if TARGET_INTERWORK was on the command
614         line.
615         * arm.h (arm_cpp_interwork): Declare it.
616         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
617         __THUMB_INTERWORK__ in the preprocessor.
618
619 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
620
621         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
622
623 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
624
625         PR target/16416
626         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
627         Override default settings to account for -m32 and -m64.
628
629 2004-07-08  Randolph Chung  <tausq@debian.org>
630
631         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
632
633 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
634
635         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
636         before comparing it as such.
637
638 2004-07-08  Richard Henderson  <rth@redhat.com>
639
640         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
641         temporary.  Use bit arithmetic to align.
642
643 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
644
645         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
646         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
647         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
648         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
649         add_labels_and_missing_jumps, find_jump_block,
650         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
651         Likewise.
652         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
653         link_btr_uses, move_btr_def): Likewise.
654         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
655         expand_builtin_expect_jump): Likewise.
656         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
657         * calls.c (expand_call, emit_library_call_value_1): Likewise.
658         * cfganal.c (forwarder_block_p): Likewise.
659         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
660         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
661         find_bb_boundaries): Likewise.
662         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
663         merge_blocks_move_predecessor_nojumps,
664         merge_blocks_move_successor_nojumps, insns_match_p,
665         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
666         try_optimize_cfg): Likewise.
667         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
668         * cfglayout.c (skip_insns_after_block, label_for_bb,
669         record_effective_endpoints, insn_locators_initialize,
670         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
671         * cfgmainloop.c (create_loop_notes): Likewise.
672         * cfgrtl.c (delete_insn, delete_insn_chain,
673         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
674         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
675         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
676         redirect_branch_edge, force_nonfallthru_and_redirect,
677         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
678         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
679         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
680         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
681         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
682         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
683         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
684         * combine.c (combine_instructions, can_combine_p, try_combine,
685         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
686         distribute_notes, distribute_links, insn_cuid): Likewise.
687         * cse.c (fold_rtx, cse_insn, cse_around_loop,
688         invalidate_skipped_block, cse_set_around_loop,
689         cse_end_of_basic_block, cse_main, cse_basic_block,
690         cse_condition_code_reg): Likewise.
691         * cselib.c (cselib_process_insn): Likewise.
692         * ddg.c (create_ddg): Likewise.
693         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
694         Likewise.
695         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
696         gen_label_die, dwarf2out_var_location): Likewise.
697         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
698         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
699         last_call_insn, active_insn_p, next_label, prev_label,
700         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
701         add_insn_before, remove_insn, add_function_usage_to,
702         reorder_insns, find_line_note, remove_unnecessary_notes,
703         emit_insn_after_1, classify_insn): Likewise.
704         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
705         connect_post_landing_pads, sjlj_mark_call_sites,
706         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
707         can_throw_internal, can_throw_external, set_nothrow_function_flags,
708         convert_to_eh_region_ranges): Likewise.
709         * explow.c (optimize_save_area_alloca): Likewise.
710         * expr.c (expand_expr_real): Likewise.
711         * final.c (insn_current_reference_address, compute_alignments,
712         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
713         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
714         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
715         propagate_block_delete_insn, propagate_one_insn,
716         init_propagate_block_info, propagate_block, libcall_dead_p,
717         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
718         Likewise.
719         * function.c (instantiate_virtual_regs, reorder_blocks_1,
720         expand_function_start, expand_function_end, contains,
721         thread_prologue_and_epilogue_insns,
722         reposition_prologue_and_epilogue_notes): Likewise.
723         * gcse.c (constprop_register, bypass_conditional_jumps,
724         insert_insn_end_bb, gcse_after_reload): Likewise.
725         * genemit.c (gen_expand, gen_split): Likewise.
726         * genpeep.c (gen_peephole, main): Likewise.
727         * global.c (build_insn_chain): Likewise.
728         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
729         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
730         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
731         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
732         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
733         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
734         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
735         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
736         dead_or_predicable): Likewise.
737         * integrate.c (try_constants): Likewise.
738         * jump.c (rebuild_jump_labels, cleanup_barriers,
739         purge_line_number_notes, init_label_info, mark_all_labels,
740         squeeze_notes, get_label_before, get_label_after,
741         reversed_comparison_code_parts, simplejump_p, pc_set,
742         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
743         delete_barrier, delete_prior_computation, delete_computation,
744         delete_related_insns, delete_for_peephole, redirect_jump):
745         Likewise.
746         * lcm.c (optimize_mode_switching): Likewise.
747         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
748         Likewise.
749         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
750         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
751         * loop-iv.c (simplify_using_assignment): Likewise.
752         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
753         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
754         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
755         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
756         check_insn_for_givs, check_final_value, update_giv_derive,
757         basic_induction_var, product_cheap_p, check_dbra_loop,
758         loop_insn_first_p, last_use_this_basic_block,
759         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
760         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
761         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
762         sms_schedule_by_order): Likewise.
763         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
764         * postreload.c (reload_cse_simplify_operands, reload_combine,
765         reload_cse_move2add): Likewise.
766         * predict.c (can_predict_insn_p, estimate_probability,
767         expected_value_to_br_prob, process_note_predictions): Likewise.
768         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
769         * profile.c (branch_prob): Likewise.
770         * ra-build.c (live_out_1, livethrough_conflicts_bb,
771         detect_webs_set_in_cond_jump): Likewise.
772         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
773         ra_print_rtl_with_bb): Likewise.
774         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
775         * recog.c (next_insn_tests_no_inequality, find_single_use,
776         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
777         * reg-stack.c (next_flags_user, record_label_references,
778         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
779         compensate_edge, convert_regs_1): Likewise.
780         * regclass.c (scan_one_insn): Likewise.
781         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
782         regmove_optimize, fixup_match_1, single_set_for_csa,
783         combine_stack_adjustments_for_block): Likewise.
784         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
785         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
786         find_equiv_reg): Likewise.
787         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
788         reload_as_needed, emit_input_reload_insns, do_output_reload,
789         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
790         Likewise.
791         * reorg.c (find_end_label, emit_delay_sequence,
792         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
793         get_jump_flags, rare_destination, mostly_true_jump,
794         try_merge_delay_insns, redundant_insn, own_thread_p,
795         fill_simple_delay_slots, fill_slots_from_thread,
796         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
797         dbr_schedule): Likewise.
798         * resource.c (find_basic_block, next_insn_no_annul,
799         find_dead_or_set_registers, mark_target_live_regs): Likewise.
800         * rtl.h (RTX_PREV): Likewise.
801         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
802         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
803         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
804         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
805         tablejump_p, computed_jump_p, insns_safe_to_move_p,
806         find_first_parameter_load, can_hoist_insn_p): Likewise.
807         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
808         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
809         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
810         schedule_ebbs): Likewise.
811         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
812         is_conditionally_protected, can_schedule_ready_p,
813         add_branch_dependences, debug_dependencies): Likewise.
814         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
815         Likewise.
816         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
817         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
818         set_dominates_use, ujump_to_loop_cont): Likewise.
819         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
820         * varasm.c (output_constant_pool_1): Likewise.
821
822 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
823
824         * tree-scalar-evolution.c: New file.
825         * tree-scalar-evolution.h: New file.
826         * tree-ssa-loop-niter.c: New file.
827         * Makefile.in (SCEV_H): New.
828         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
829         * cfgloop.h (struct loop): Add bounds field.
830         * tree-flow.h (struct tree_niter_desc): New type.
831         (number_of_iterations_cond, number_of_iterations_exit,
832         loop_niter_by_eval, find_loop_niter_by_eval,
833         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
834         free_numbers_of_iterations_estimates): Declare.
835         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
836         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
837         * doc/invoke.texi (max-iterations-to-track): Document.
838
839 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
840
841         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
842         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
843         (MODE_AFTER): Add cast appropriately.
844         * config/sh/sh.md (movdi splitter): Likewise.
845         (casesi_worker_2): Add const qualifier appropriately.
846         (eh_return): Remove unused variable.
847         (insv): Initialize v;
848
849 2004-07-08  Richard Henderson  <rth@redhat.com>
850
851         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
852         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
853         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
854         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
855         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
856
857         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
858         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
859         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
860         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
861
862         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
863         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
864         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
865         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
866
867         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
868         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
869         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
870         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
871
872         * config/i860/i860-protos.h (i860_va_arg): Remove.
873         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
874         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
875         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
876
877 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
878
879         * system.h: Prototype getpagesize if missing.
880         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
881         * configure: Regenerate.
882         * config.in: Regenerate.
883
884 2004-07-08  Richard Henderson  <rth@redhat.com>
885
886         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
887         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
888         (fr30_gimplify_va_arg_expr): New.
889         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
890         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
891
892 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
893
894         PR target/16414
895         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
896         of asm_noperands result.
897
898 2004-07-08  Richard Henderson  <rth@redhat.com>
899
900         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
901         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
902         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
903         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
904
905 2004-07-08  Richard Henderson  <rth@redhat.com>
906
907         * builtins.c (ind_gimplify_va_arg_expr): New.
908         * tree.h (ind_gimplify_va_arg_expr): Declare.
909         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
910
911 2004-07-08  Jan Beulich  <jbeulich@novell.com>
912
913         * expmed.c (extract_bit_field): Correct condition to use vec_extract
914         patterns also on vector elements other than the first one.
915         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
916         break statements.
917
918 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
919
920         * config/rs6000/darwin-ldouble.c: Correct reference
921         to the Linnainmaa paper.
922
923 2004-07-08  Richard Henderson  <rth@redhat.com>
924
925         * config/arc/arc-protos.h (arc_va_arg): Remove.
926         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
927         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
928         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
929
930         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
931         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
932         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
933         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
934
935 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
936
937         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
938
939 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
940
941         * c-decl.c (static_ctors, static_dtors): Make static.
942         (pop_file_scope): Call c_common_write_pch and
943         cgraph_finalize_compilation_unit here.
944         (build_cdtor): Moved here from c-objc-common.c; simplify.
945         (c_write_global_declarations_1): Clarify comment.
946         (c_write_global_declarations): Close the external scope before
947         doing anything else.  Call build_cdtor, cgraph_optimize, and
948         mudflap_finish_file here.
949         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
950         Clarify comment.
951         * c-objc-common.c: No need to include cgraph.h.
952         (build_cdtor): Moved to c-decl.c.
953         (c_objc_common_finish_file): Delete.
954         * c-tree.h: Update to match.
955         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
956         (generate_static_references): Set TREE_USED before calling finish_decl.
957         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
958         on the static_instances_decl.
959
960 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
961
962         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
963         decls when there is only one input translation unit.
964         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
965         change of 2004-07-05; do not treat declarations with
966         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
967         * opts.c (cur_in_fname): Delete.
968         * opts.h: Likewise.
969         * tree.c: Revert changes of 2004-07-05; no special treatment
970         for TRANSLATION_UNIT_DECLs.
971         * Makefile.in (tree.o): Update dependencies.
972
973 2004-07-08  Roger Sayle  <roger@eyesopen.com>
974
975         * builtins.c (fold_builtin_strcpy): Merge functionality from
976         simplify_builtin_strcpy.  Add additional len argument.  No longer
977         static.  Remove function prototype.
978         (fold_builtin_strncpy): Likewise integrate functionality from
979         simplify_builtin_strncpy.  Add additional slen argument.  No
980         longer static.  Remove function prototype.
981         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
982         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
983         types of "ignore" and "unlocked" parameters to bool.
984         (fold_builtin_1):  Add additional ignore argument.  Call renamed
985         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
986         builtins.  Update arguments to fold_builtin_strncpy and
987         fold_builtin_strcpy.  Add function prototype.
988         (fold_builtin): Add additional Boolean ignore argument to pass
989         to fold_builtin_1.
990         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
991         and fold_builtin_strncpy instead of simplify_builtin_fputs,
992         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
993
994         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
995         simplify_builtin_strncpy): Delete function prototypes.
996         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
997         fold_builtin_strncpy): Add function prototypes here.
998         (fold_builtin): Update function prototype with new "bool ignore".
999
1000         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
1001         (ccp_fold_builtin):  Update call to fold_builtin.  Call
1002         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
1003         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
1004         simplify_builtin_strncpy respectively.
1005         * fold-const.c (fold): Update call to fold_builtin.
1006
1007 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
1008
1009         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
1010         to strcpy.
1011
1012         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
1013         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
1014         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
1015         * calls.c: Remove ifdefs of macros above.
1016         * functions.c: Likewise.
1017         * expr.c: Likewise.
1018
1019 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1020
1021         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
1022         (arch attribute): Delete.
1023         (current_function_calls_alloca attribute): Rename into calls_alloca.
1024         (calls_eh_return): New attribute.
1025         (leaf_function): Likewise.
1026         (length attribute): Fix formula for sibcalls.
1027         (return insn): Correctly compute the 'length' attribute.
1028         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
1029
1030 2004-07-08  Richard Henderson  <rth@redhat.com>
1031
1032         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
1033         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
1034         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
1035         * tree-eh.c (lower_eh_constructs_1): Likewise.
1036         * tree-sra.c (sra_walk_modify_expr): Likewise.
1037         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1038         (eliminate_unnecessary_stmts): Likewise.
1039         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
1040         * tree-tailcall.c (optimize_tail_call): Likewise.
1041         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
1042
1043 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
1044             Jakub Jelinek  <jakub@redhat.com>
1045
1046         * config/i386/i386.c (override_options): Enable
1047         SSE prefetches with -mtune, as long as we are
1048         compiling for i686 or higher.  All i686 processors
1049         accept SSE prefetches as NOPS, some i586's don't.
1050
1051 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1052
1053         PR target/10567
1054         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
1055
1056 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
1057
1058         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
1059         the handling of clobbering ASM_EXPRs.
1060
1061 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1062
1063         PR target/16430
1064         * config/sparc/sparc.c (function_value): In 64-bit mode,
1065         return the aggregates larger than 16 bytes like unions.
1066
1067 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1068
1069         PR target/16199
1070         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
1071         'temp' is zero, generate new pseudos as needed and emit the
1072         sequence of insns in single-assignment form.  Resync comments
1073         with code.
1074         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
1075         function before reload.
1076
1077 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
1078
1079         * vec.c (vec_assert_fail): Remove duplicate 'function'.
1080
1081         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
1082
1083         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
1084         Allocation is signed.
1085         (VEC_reserve): Return flag, allocation is signed.
1086
1087 2004-07-08  Richard Henderson  <rth@redhat.com>
1088
1089         * tree-ssa-ccp.c (fold_stmt): Get type directly from
1090         OBJ_TYPE_REF_OBJECT.
1091
1092 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1093             Neil Booth  <neil@daikokuya.co.uk>
1094
1095         PR c/2511
1096         PR c/3325
1097         * c-decl.c (finish_struct): Ensure bit-fields are given the
1098         correct type.
1099         * c-common.c (c_common_signed_or_unsigned_type): For C, require
1100         the precision to match as well as the mode.
1101         * expr.c (reduce_to_bit_field_precision): New function.
1102         (expand_expr_real_1): Reduce expressions of bit-field type to
1103         proper precision.
1104         * langhooks.h (reduce_bit_field_operations): New hook.
1105         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
1106         Define.
1107         * c-lang.c, objc/objc-lang.c
1108         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
1109         * objc/objc-act.c (check_ivars): Convert types to bit-field types
1110         before checking.
1111         * tree.c (build_nonstandard_integer_type): New function.
1112         * tree.h (build_nonstandard_integer_type): New prototype.
1113         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
1114         conversions between integer and boolean types as useless.
1115
1116 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
1117
1118         * c-common.c (c_common_nodes_and_builtins): Do not
1119         create __builtin_ptrdiff_t and __builtin_size_t.
1120
1121 2004-07-08  Andrew Pinski  <apinski@apple.com>
1122
1123         * Makefile.in (libbackend.o): Add -combine to the gcc
1124         command line.
1125
1126 2004-07-08  Nick Clifton  <nickc@redhat.com>
1127
1128         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
1129         Set to -Os.
1130
1131 2004-07-08  Richard Henderson  <rth@redhat.com>
1132
1133         * except.c (expand_eh_region_start, expand_eh_region_end,
1134         expand_eh_handler, expand_eh_region_end_cleanup,
1135         expand_start_all_catch, expand_start_catch, expand_end_catch,
1136         expand_end_all_catch, expand_eh_region_end_allowed,
1137         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
1138         expand_eh_region_end_fixup): Remove.
1139         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
1140         cleanups, outer_cleanups, label_chain, exception_region.
1141         (struct goto_fixup): Remove stack_level, cleanup_list_list.
1142         (struct label_chain): Remove.
1143         (struct stmt_status): Remove x_stack_block_stack.
1144         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
1145         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
1146         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
1147         end_cleanup_deferral, last_cleanup_this_contour,
1148         containing_blocks_have_cleanups_or_stack_level,
1149         any_pending_cleanups): Remove.
1150         (expand_null_return_1): Take no arguments.
1151         (expand_label, expand_naked_return, expand_return,
1152         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
1153         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
1154         expand_end_case_type): Don't use any of them.
1155         * calls.c (expand_call): Likewise.
1156         * dojump.c (do_jump): Likewise.
1157         * function.c (expand_function_end): Likewise.
1158         * expr.c (store_expr, expand_expr_real_1): Likewise.
1159         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
1160         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
1161         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
1162         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
1163         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
1164         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
1165         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
1166         for WITH_CLEANUP_EXPR.
1167         (gimple_push_cleanup): Likewise.
1168         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
1169         * print-tree.c (print_node): Likewise.
1170         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
1171         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
1172         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
1173         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
1174         (GOTO_SUBROUTINE_EXPR): Remove.
1175         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
1176         (DECL_TOO_LATE): Remove.
1177         * except.h, tree.h: Update decls.
1178
1179 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
1180
1181         * explow.c (optimize_save_area_alloca): Do not accept parameters.
1182         * passes.c (rest_of_handle_final): Handle symout.
1183         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
1184         Push timevar here.
1185         (rest_of_handle_sched): Break out SMS.  Remove ifs for
1186         flag_schedule_insns and flag_modulo_sched.
1187         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
1188         collect at the end.
1189         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
1190         (rest_of_handle_partition_blocks, rest_of_handle_sms,
1191         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
1192         rest_of_handle_mode_switching, rest_of_handle_jump,
1193         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
1194         rest_of_handle_jump2, rest_of_handle_postreload,
1195         rest_of_handle_flow2, rest_of_clean_state,
1196         rest_of_handle_shorten_branches,
1197         rest_of_handle_prologue_epilogue,
1198         rest_of_handle_branch_target_load_optimize): New.
1199         (rest_of_compilation): Call the above.  Remove ggc_collect
1200         calls moved to rest_of_handle_*.
1201         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
1202
1203         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
1204         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
1205         * except.h (set_nothrow_function_flags): Update comment.
1206         * function.c (current_function_nothrow): Remove.
1207         * output.h (current_function_nothrow): Remove.
1208         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
1209         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
1210
1211 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1212
1213         PR bootstrap/16326
1214         * reorg.c: Revert 2004-06-30 change.
1215         (find_end_label): If HAVE_epilogue and !HAVE_return,
1216         return 0 instead of creating a label at the end of the insn chain.
1217         (optimize_skip): Account for the failure mode of find_end_label.
1218         (fill_simple_delay_slots): Likewise.
1219         (fill_slots_from_thread): Likewise.
1220         (relax_delay_slots): Likewise.
1221
1222 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
1223
1224         * tree-flow.h (addressable_vars): Declare.
1225         * tree-ssa-alias.c (addressable_vars): Define.
1226         (setup_pointers_and_addressables): Add addressable variables
1227         to addressable_vars.
1228         * tree-ssa-operands.c (get_stmt_operands): Move
1229         handling of ASM_EXPRs ...
1230         (get_asm_expr_operands): ... here.
1231         When the ASM_EXPR clobbers memory, also clobber addressable
1232         variables.
1233         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
1234         (delete_tree_ssa): Reset addressable_vars.
1235
1236 2004-07-07  Jan Beulich  <jbeulich@novell.com>
1237             Richard Henderson  <rth@redhat.com>
1238
1239         * varasm.c (assemble_variable): Use assemble_zeros for
1240         zero-initialized variables.
1241         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
1242         for SECCAT_BSS and SECCAT_TBSS.
1243
1244 2004-07-07  Jan Beulich  <jbeulich@novell.com>
1245
1246         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
1247
1248         * expmed.c (emit_store_flag): Also special-case double-word
1249         (in-)equality comparison against -1.
1250
1251         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
1252         passing arguments the containers for which are registers.
1253
1254         * calls.c (emit_library_call_value_1): Use mode of function parameter
1255         rather than that of argument since constants have none.
1256
1257 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
1258
1259         Introduce H8SX support.
1260         * expr.c (expand_strcpy): Renamed and moved to...
1261         * builtins.c (expand_movstr): ... here.  Tweak.
1262         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
1263         computed or has side effects.
1264         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
1265         unused, or if mempcpy fails.  Adjust the return value in the
1266         latter case.  Use movstr if everything else fails.
1267         * doc/md.texi (movstr): Document.
1268         (movmemM, clrmemM): Fix explanation of memory block operands.
1269         * config/h8300/h8300.md (stpcpy): Renamed to...
1270         (movstr): ... this.  Adjust.
1271         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
1272         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
1273         movmem* and clrstr* to clrmem*.
1274         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
1275         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
1276         GENERAL_REGS, always.
1277         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
1278         getting the stack pointer as addr.
1279         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
1280         from general_operand_dst.
1281         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
1282         variant of...
1283         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
1284         instead of requiring it to match only before reload.
1285         (stpcpy_internal_normal): New, normal-mode variant of...
1286         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
1287         `D' instead of requiring it to match only before reload.
1288         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
1289         mode argument.
1290         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
1291         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
1292         h8300_get_index.
1293         * config/h8300/h8300.md (attr type): Add call.
1294         (attr can_delay): If type is call, set it no.
1295         (call, call_value): Set type to call.
1296         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
1297         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
1298         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
1299         * tree.c (get_narrower): Don't narrow integral types into
1300         non-integral types.
1301         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
1302         frame_size *before* the first use.
1303         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
1304         on input.
1305         (peephole2): Don't widen instructions that push SP.  Move
1306         decrement of SP to the end of all stm-generating peepholes.
1307         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
1308         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
1309         and OR to set it to all ones.
1310         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
1311         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
1312         (call, call_value): Set can_delay to "no".
1313         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
1314         * config/h8300/h8300.md (extzv): Make subreg check more robust.
1315         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
1316         * config/h8300/h8300.md (*brabit): Remove.
1317         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
1318         zero_extract.  Use bit_memory_operand as the predicate for
1319         operand 1 and 'WU' as the constraint.  Check the difference
1320         between the base length and the final one when deciding which
1321         type of branch to use.
1322         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
1323         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
1324         Use convert_move to extend the result for TARGET_H8300SX.  Check
1325         for QImode memory references.  Optimize the case where the
1326         destination is a paradoxical subreg.
1327         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
1328         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
1329         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
1330         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
1331         * config/h8300/h8300.md: Include mova.md
1332         (length_table): Add mova and mova_zero.
1333         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
1334         after all constant addresses for '%R', '%X', '%T' and '%S'.
1335         (h8300_mova_length): New function.
1336         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
1337         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
1338         dependencies for s-config, etc.
1339         * config/h8300/gemova.sh: New file.
1340         * config/h8300/mova.md: Generated.
1341         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
1342         * config/h8300/h8300.c (h8300_bitfield_length): New.
1343         (nibble_operand): Adjust.
1344         (h8300_binary_length): Handle conditional binary op.
1345         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
1346         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
1347         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
1348         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
1349         constraints.  WU is introduced as a variant of U that requires a
1350         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
1351         * config/h8300/h8300.md (attr type): Added bitbranch.
1352         (attr length_table): Added bitfield and bitbranch.
1353         (attr length): Compute bitbranch length.
1354         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
1355         least-significant bit of a byte.
1356         (brabit, brabc, brabs): New.
1357         (insv, extzv): Emit bfst and bfld on H8300SX.
1358         (bfld, bfst, seq, sne): New.
1359         (bstzhireg, cmpstz, bstz, bistz): New.
1360         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
1361         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
1362         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
1363         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
1364         (h8sx_unary_memory_operator): New function.
1365         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
1366         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
1367         * config/h8300/h8300.md: Add peepholes to combine reloads and
1368         arithmetic insns.
1369         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
1370         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
1371         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
1372         (and?i, ior?i, xor?i): Likewise.
1373         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
1374         * config/h8300/h8300.c: Move enums and prototypes to head of file.
1375         Various whitespace fixes.
1376         (h8300_constant_length): New function, split out from...
1377         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
1378         (h8300_classify_operand): Use IN_RANGE.
1379         (h8300_classify_operand): Use h8300_constant_length.
1380         (h8300_short_move_mem_p): Tighten size check.
1381         (h8sx_mergeable_memrefs_p): Tighten equality check.
1382         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
1383         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
1384         for -msx.
1385         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
1386         * config/h8300/crtn.asm: Likewise.
1387         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
1388         if __H8300SX__ is defined.
1389         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
1390         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
1391         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
1392         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
1393         addresses as mode-dependent.
1394         * config/h8300/h8300.c (print_operand_address): Update call to
1395         h8300_get_index.
1396         (h8300_get_index): Take a mode argument.  Rework to fix an
1397         earlier misunderstanding.
1398         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
1399         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
1400         into a register if TARGET_H8300SX.
1401         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
1402         TARGET_H8300SX.  Also disable related define_splits.
1403         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
1404         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
1405         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
1406         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
1407         * config/h8300/h8300.h (OK_FOR_Z): New macro.
1408         (EXTRA_CONSTRAINT_STR): Check it.
1409         * config/h8300/h8300.c (h8300_classify_operand): Accept null
1410         class arguments.
1411         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
1412         * config/h8300/h8300.md (length_table): Add mov_imm4.
1413         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
1414         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
1415         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
1416         be a label.
1417         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
1418         * config/h8300/h8300.c (h8300_reorg): New function.
1419         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1420         * config/h8300/h8300.md (length): Subtract the length of the
1421         delay slot from (pc) when checking the range of forward branches.
1422         (delay_slot, can_delay): New attributes.
1423         (define_delay): Add bra/s handling.
1424         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
1425         (jump): Add delayed-branch handling.
1426         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
1427         * expr.c (expand_strcpy): New function.
1428         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
1429         (expand_builtin_stpcpy): Likewise.
1430         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
1431         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
1432         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
1433         handling to improve register allocation for -fno-omit-frame-pointer.
1434         (h8sx_split_movmd): Delete, moving er6 handling into...
1435         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
1436         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
1437         (movmd): Add calls to copy_rtx.
1438         (movmd_internal): In the second alternative, allow the initial and
1439         final destination registers to be different .  Update the splitter
1440         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
1441         instead of h8sx_split_movmd.
1442         (stpcpy, movsd): New expanders.
1443         (movsd_internal): New define_insn.
1444         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
1445         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
1446         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
1447         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
1448         and DESTINATION_REGS.
1449         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1450         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
1451         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
1452         (h8300_move_ratio): Declare.
1453         (MOVE_RATIO): Use it.
1454         * config/h8300/h8300.c (h8300_move_ratio): New variable.
1455         (h8300_init_once): Initialize it.
1456         (h8300_reg_class_from_letter): New function.
1457         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
1458         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
1459         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
1460         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
1461         (movstrsi, movmd): New expanders.
1462         (movmd_internal): New insn.
1463         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
1464         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
1465         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
1466         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
1467         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
1468         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
1469         * config/h8300/h8300.c (nibble_operand): Fix warning.
1470         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
1471         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
1472         (movsf_h8300h): Disable for TARGET_H8300SX.
1473         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
1474         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
1475         h8300_stm_parallel and h8300_return_parallel.
1476         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
1477         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
1478         h8300_stm_parallel, h8300_return_parallel): New functions.
1479         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
1480         if TARGET_H8300SX.  Use h8300_push_pop.
1481         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
1482         and final pop when generating h8sx code.  Always emit some form
1483         of return insn.
1484         * config/h8300/h8300.md: Don't enforce register alignment in
1485         stm peepholes if TARGET_H8300SX.
1486         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
1487         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
1488         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
1489         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
1490         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
1491         (MULTILIB_DIRNAMES): Add a directory for it.
1492         (MULTILIB_MATCHES): Delete.
1493         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
1494         * final.c (walk_alter_subreg): Handle addresses with subregs
1495         inside a ZERO_EXTEND or AND.
1496         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
1497         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
1498         if TARGET_H8300SX.
1499         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
1500         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
1501         @(dd,Rn.w) and @(dd,ERn.L).
1502         (h8300_displacement_size): Take the whole address as argument.
1503         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
1504         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
1505         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
1506         (h8sx_mergeable_memrefs_p): Declare.
1507         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
1508         (HAVE_PRE_INCREMENT): Likewise.
1509         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
1510         addresses for TARGET_H8300SX,
1511         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
1512         and POST_DEC.
1513         (movb_length_table, movl_length_table): New tables.
1514         (movw_length_table): Define to movb_length_table.
1515         (h8300_displacement_size): New, split out from...
1516         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
1517         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
1518         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
1519         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
1520         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
1521         (compute_plussi_length, compute_plussi_cc): Update accordingly.
1522         (h8sx_unary_shift_operator): Get the mode from the operator.
1523         (binary_shift_operator): Likewise.
1524         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
1525         a memory reference, check whether the reference is offsettable.
1526         (length_table): Add movb, movw and movl.
1527         (movqi): Add new h8sx pattern.  Don't force one operand to be a
1528         register when generating h8sx code.
1529         (movhi, movsi, movsf): Likewise.
1530         (movstrictqi): Use the length_table attribute.
1531         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
1532         (addqi3): Split into a define_expand and define_insn.  Don't accept
1533         memory operands in the expander.  Use h8300_operands_match_p to
1534         check for matching operands in the define_insn.
1535         (subqi3, negqi2, one_cmplqi2): Likewise.
1536         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
1537         in any patterns that are unused in h8sx code.  In the h8sx patterns,
1538         use h8300_operands_match_p to check whether operands match.
1539         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
1540         one_cmpl[hs]i3): Likewise.
1541         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
1542         in the expander.
1543         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
1544         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
1545         (h8300_insn_length_from_table): Add a second parameter.
1546         (output_h8sx_shift): Declare.
1547         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
1548         (EXTRA_CONSTRAINT): Replace with...
1549         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
1550         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
1551         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
1552         and h8sx_binary_shift_operator.
1553         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
1554         for TARGET_H8300SX.
1555         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
1556         (bit_memory_operand, fix_bit_operand): Likewise.
1557         (h8300_length_table_for_insn): Remove.
1558         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
1559         instructions.
1560         (h8300_short_immediate_length, h8300_binary_length): New functions.
1561         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
1562         (output_plussi): Use sub to add negative constants.
1563         (compute_plussi_length): Adjust accordingly.
1564         (h8sx_single_shift_type): New enum.
1565         (h8sx_single_shift, h8sx_unary_shift_operator,
1566         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
1567         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
1568         single h8sx instruction.  Return false in this case.
1569         * config/h8300/h8300.md (length_table): Add short_immediate.
1570         (length): Pass the operand array to h8300_insn_length_from_table.
1571         (adjust_length): Assume "no" for insns with a length_table attribute.
1572         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
1573         (*addhi3_h8300hs): Don't use for h8sx.
1574         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
1575         and sub.w #xx:3.
1576         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
1577         1's predicate to nonimmediate_operand.  Only skip default expansion
1578         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
1579         for single h8sx shift instructions.
1580         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
1581         * config/h8300/h8300.c (nibble_operand): Split out of...
1582         (reg_or_nibble_operand): ... this.
1583         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
1584         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
1585         umulhisi3): Introduce expand, and introduce separate insns for
1586         sign- or zero-extended REG and already-extended CONST_INT.
1587         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
1588         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
1589         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
1590         (subhi3): Likewise.  Don't accept immediates for operand 1.
1591         Remove the early clobber from second alternative of the h8300s pattern.
1592         (subsi3): Generalize for h8sx.  Force operand 2 into a register
1593         on plain h8300 targets.
1594         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
1595         (subsi3_h8300h): Generalize for h8sx.
1596         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
1597         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
1598         * config/h8300/h8300.c (reg_or_nibble_operand): New.
1599         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
1600         (TARGET_H8300SXMUL): New.
1601         (CONST_OK_FOR_P): New.
1602         (CONST_OK_FOR_LETTER_P): Adjust.
1603         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
1604         umulhisi3): Accept 4-bit immediate on H8SX.
1605         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
1606         (udivsi3, divhi3, udivsi3, divsi3): New.
1607         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1608         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
1609         * config/h8300/h8300.h (OK_FOR_Q): New macro.
1610         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
1611         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
1612         Add ADDRESSOF to the bit_operand entry.
1613         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
1614         (h8300_src_operand): Likewise.
1615         (bit_operand): Check nonimmediate_operand rather than general_operand.
1616         Accept any nonimmediate_operand in h8sx code.
1617         (h8300_and_costs): Initialize operands[1].
1618         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
1619         (h8300_operand_class): New enum.
1620         (h8300_length_table): New typedef.
1621         (addb_length_table, addw_length_table, addl_length_table,
1622         logicl_length_table): New tables.
1623         (logicb_length_table, logicw_length_table): New macros.
1624         (h8300_classify_operand, h8300_length_from_table,
1625         h8300_length_table_for_insn, h8300_unary_length,
1626         h8300_insn_length_from_table): New functions.
1627         (output_plussi): Only use adds and subs for register destinations.
1628         Disable redundant clause.
1629         (compute_plussi_cc): Likewise.
1630         (compute_plussi_length): Likewise.  Use h8300_length_from_table
1631         to work out the length of an insn.
1632         (output_logical_op): Only use narrower immediate instructions
1633         if the destination is a register.
1634         (compute_logical_op_cc): Likewise.
1635         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
1636         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
1637         * config/h8300/h8300.md (length_table): New attribute.
1638         (length): When an instruction has a length_table attribute, use
1639         h8300_insn_length_from_table to calculate its default length.
1640         (cmpqi): Use h8300_dst_operand for the first operand and
1641         h8300_src_operand for the second.
1642         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
1643         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
1644         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
1645         iorsi3, xorhi3, xorsi3): Likewise.
1646         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
1647         so that it allows any combination of operands for TARGET_H8300SX.
1648         (iorqi3, xorqi3): Likewise.
1649         (cmpqi): Use the length_table attribute.
1650         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
1651         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
1652         (cmpqi): Add 'Q' constraint.
1653         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
1654         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
1655         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
1656         * config/h8300/h8300.h (MASK_H8300SX): New macro.
1657         (TARGET_H8300S): True for both -ms and -msx.
1658         (TARGET_H8300SX): New macro.
1659         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
1660         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
1661         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
1662         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
1663         [Temporary change.]
1664         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
1665         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
1666         16-bit pointers and 32-bit ints.
1667         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
1668         CONST_DOUBLE with mode no wider than SImode.
1669         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
1670         output operand.
1671         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
1672         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
1673         or SUBREG thereof.
1674         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
1675         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
1676         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
1677
1678 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
1679
1680         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
1681
1682 2004-07-07  Per Bothner  <per@bothner.com>
1683
1684         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
1685
1686 2004-07-07  Mike Stump  <mrs@apple.com>
1687
1688         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
1689         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
1690         (machopic_finish): Likewise.
1691
1692 2004-07-07  Richard Henderson  <rth@redhat.com>
1693
1694         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
1695         through any value-preserving cast.
1696
1697 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
1698
1699         * function.c (assign_parm_find_data_types): Call
1700         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
1701
1702 2004-07-07  Steven Bosscher  <stevenb@suse.de>
1703
1704         * tree-cfg.c (group_case_labels): Remove case labels that have
1705         the same target as the default case.
1706
1707 2004-07-07  Steven Bosscher  <stevenb@suse.de>
1708
1709         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
1710         regardless of DECL_LANG_SPECIFIC being present or not.
1711         * tree.h (DECL_NUM_STMTS): Purge.
1712
1713 2004-07-07  Andrew Pinski  <apinski@apple.com>
1714
1715         * configure: Regenerate with the right autoconf.
1716
1717 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
1718
1719         * ifcvt.c (total_bb_rtx_cost): New function.
1720         (find_if_case_1): Compare rtx_cost of basic block to cost of
1721         BRANCH_COST insns.
1722         (find_if_case_2): Same.
1723
1724 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1725
1726         PR target/10567
1727         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
1728         (output_return): Likewise.
1729         (output_sibcall): Abort if !flag_delayed_branch.
1730         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
1731         (emit_and_preserve): New function.
1732         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
1733         indirect jump to the thunked-to function if !flag_delayed_branch.
1734         * config/sparc/sparc.md (delayed_branch): New attribute.
1735         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
1736         attribute to compute the length of the insn.
1737         (goto_handler_and_restore): Likewise.
1738
1739 2004-07-07  Andrew Pinski  <apinski@apple.com>
1740
1741         PR tree-optimization/15777
1742         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
1743
1744         * expr.c (expand_expr_real_1): Fix formating.
1745         BUFFER_REF and IN_EXPR are dead.
1746         * fold-const.c (non_lvalue): BUFFER_REF is dead.
1747         * tree-inline.c (estimate_num_insns_1): Likewise.
1748         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
1749         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
1750         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
1751
1752 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
1753
1754         * collect2.c (dump_file): Don't call cplus_demangle if
1755         HAVE_LD_DEMANGLE is defined.
1756         (main): Pass "--demangle" to ld if no_demangle is not 0 and
1757         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
1758         if HAVE_LD_DEMANGLE is defined.
1759
1760         * configure.ac (--with-demangler-in-ld): Added
1761         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
1762         --with-demangler-in-ld is used.
1763         * config.in: Regenerated.
1764         * configure: Likewise.
1765
1766 2004-07-07  Roger Sayle  <roger@eyesopen.com>
1767
1768         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
1769         for simple floating point operations "fp", double precision
1770         multiplication "dmul", and single and double precision division
1771         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
1772         (ppc630_cost): New table split from ppc620_cost, to distinguish
1773         differences in floating point latencies.
1774         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
1775         (rs6000_rtx_costs): Add support for single and double precision
1776         floating point addition, subtraction, multiplication, division,
1777         fused-multiply-add, fused-multiply-sub, negation, absolute value
1778         and negative absolute value.  Tweak MEM case to use prefered idiom.
1779
1780 2004-07-07  Richard Henderson  <rth@redhat.com>
1781
1782         * tree-flow-inline.h (may_propagate_copy): Move...
1783         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
1784         attempt to copy between types requiring conversion.
1785         * tree-flow.h (may_propagate_copy): Update decl.
1786         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
1787
1788 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
1789
1790         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
1791         from -mtune= option.
1792
1793 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
1794
1795         * builtins.c: Rename movstr*, except for movstrict*, to
1796         movmem* and clrstr* to clrmem*.
1797         * expr.c: Likewise.
1798         * expr.h: Likewise.
1799         * genopinit.c: Likewise.
1800         * integrate.c: Likewise.
1801         * local-alloc.c: Likewise.
1802         * optabs.c: Likewise.
1803         * optabs.h: Likewise.
1804         * config/alpha/alpha.h: Likewise.
1805         * config/alpha/alpha.md: Likewise.
1806         * config/arm/arm-protos.h: Likewise.
1807         * config/arm/arm.c: Likewise.
1808         * config/arm/arm.md: Likewise.
1809         * config/avr/avr.md: Likewise.
1810         * config/c4x/c4x.c: Likewise.
1811         * config/c4x/c4x.md: Likewise.
1812         * config/frv/frv.md: Likewise.
1813         * config/i386/i386-protos.h: Likewise.
1814         * config/i386/i386.c: Likewise.
1815         * config/i386/i386.h: Likewise.
1816         * config/i386/i386.md: Likewise.
1817         * config/i860/i860.c: Likewise.
1818         * config/i860/i860.md: Likewise.
1819         * config/ip2k/ip2k.md: Likewise.
1820         * config/ip2k/libgcc.S: Likewise.
1821         * config/ip2k/t-ip2k: Likewise.
1822         * config/m32r/m32r.c: Likewise.
1823         * config/m32r/m32r.md: Likewise.
1824         * config/mcore/mcore.md: Likewise.
1825         * config/mips/mips.c: Likewise.
1826         * config/mips/mips.md: Likewise.
1827         * config/ns32k/ns32k.c: Likewise.
1828         * config/ns32k/ns32k.h: Likewise.
1829         * config/ns32k/ns32k.md: Likewise.
1830         * config/pa/pa.c: Likewise.
1831         * config/pa/pa.md: Likewise.
1832         * config/pdp11/pdp11.h: Likewise.
1833         * config/pdp11/pdp11.md: Likewise.
1834         * config/rs6000/rs6000.c: Likewise.
1835         * config/rs6000/rs6000.md: Likewise.
1836         * config/s390/s390-protos.h: Likewise.
1837         * config/s390/s390.c: Likewise.
1838         * config/s390/s390.md: Likewise.
1839         * config/sh/lib1funcs.asm: Likewise.
1840         * config/sh/sh.c: Likewise.
1841         * config/sh/sh.md: Likewise.
1842         * config/sh/t-sh: Likewise.
1843         * config/sparc/sparc.h: Likewise.
1844         * config/vax/vax.md: Likewise.
1845         * config/xtensa/xtensa.c: Likewise.
1846         * config/xtensa/xtensa.md: Likewise.
1847         * doc/invoke.texi: Likewise.
1848         * doc/md.texi: Likewise.
1849         * doc/rtl.texi: Likewise.
1850
1851 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
1852
1853         PR target/16407
1854         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
1855         * config/mips/mips.c (mips_declare_common_object): New function,
1856         mostly split out from...
1857         (mips_output_aligned_decl_common): ...here.
1858         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
1859         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
1860         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
1861         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
1862
1863 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1864
1865         PR c/16392
1866         * function.c (assign_parms): Fix typo from previous change.
1867
1868 2004-07-07  Jason Merrill  <jason@redhat.com>
1869
1870         PR c++/15815
1871         * doc/extend.texi (C++ Interface): Correct information and
1872         discourage use.
1873
1874 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
1875
1876         PR target/16130
1877         PR target/16142
1878         PR target/16143
1879         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
1880         insn.
1881
1882 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1883
1884         PR target/1679.
1885         * config/m32r/m32r.c (m32r_function_symbol): New function:
1886         Generate a symbol name RTX with the correct m32r specific flags
1887         set.
1888         (block_move_call): Use new function to generate correct symbol.
1889         * config/m32r/m32r-protos.h: Add prototype for new funcion.
1890         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
1891         function.
1892
1893 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
1894
1895         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
1896         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
1897         TYPE_BINFO_BASETYPE): Remove.
1898         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
1899         to ...
1900         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
1901         here.
1902         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
1903         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
1904         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
1905         (struct tree_binfo): Rename base_types to base_binfos.
1906         * alias.c (record_component_aliases): Adjust BINFO macros.
1907         * dbxout.c (dbxout_type): Likewise.
1908         * dwarf2out.c (gen_member_die): Likewise.
1909         * sdbout.c (sdbout_one_type): Likewise.
1910         * tree-dump.c (deque_and_dump): Likewise.
1911         * config/i386/i386.c (classify_argument,
1912         contains_128bit_aligned_vector_p): Likewise.
1913
1914 2004-07-07  Nick Clifton  <nickc@redhat.com>
1915
1916         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
1917         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
1918
1919 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
1920
1921         * vec.h: Fix the example use.
1922
1923 2004-07-06  Richard Henderson  <rth@redhat.com>
1924
1925         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
1926         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
1927         * tree-inline.c (copy_body_r, setup_one_parameter,
1928         initialize_inlined_parameters, expand_call_inline,
1929         declare_inline_vars): Don't check it.
1930         (expand_calls_inline): Remove old version, rename new version
1931         from gimple_expand_calls_inline.
1932         * tree-optimize.c (execute_gimple): Remove.
1933         (pass_gimple): Don't run anything.
1934
1935 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1936
1937         * doc/sourcebuild.texi: Use semicolons instead of commas in
1938         section title.
1939
1940 2004-07-06  Richard Henderson  <rth@redhat.com>
1941
1942         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
1943         (sra_walk_modify_expr, scan_init): Likewise.
1944         (generate_element_zero): Check visited before scanning children.
1945         (generate_element_init): Set visited on error.
1946         (scalarize_init): Handle generate_element_init failure similar
1947         to use_block_copy.
1948
1949 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1950
1951         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
1952         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
1953
1954 2004-07-06  Richard Henderson  <rth@redhat.com>
1955
1956         * config/i386/i386.c (legitimize_pic_address): Make static.
1957         (legitimize_address): Handle CONST with TLS operand.
1958         (ix86_expand_move): Don't call legitimize_pic_address directly.
1959         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
1960
1961 2004-07-06  Roger Sayle  <roger@eyesopen.com>
1962
1963         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
1964         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
1965         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
1966         is currently executed unconditionally, i.e. not in "else_bb".
1967
1968 2004-07-06  Steven Bosscher  <stevenb@suse.de>
1969
1970         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
1971         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
1972         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
1973         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
1974         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
1975         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
1976         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
1977         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
1978         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
1979         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
1980         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
1981         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
1982         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
1983         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
1984         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
1985         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
1986
1987 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
1988
1989         * dojump.c (do_jump): REFERENCE_EXPR is dead.
1990         * expr.c (expand_expr_real_1): Ditto.
1991         * tree-inline.c (estimate_num_insns_1): Ditto.
1992         * tree-pretty-print.c (dump_generic_node): Ditto.
1993         (op_symbol): Ditto.
1994         * tree.def: Ditto.
1995
1996 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
1997
1998         * tree-ssa-pre.c (reference_node_pool): New pool.
1999         (find_or_generate_expression): Class 'r' is okay too.
2000         (create_value_expr_from): Ditto.
2001         (add_to_sets): LHS should not include vuses.
2002         (eliminate): Ditto.
2003         (compute_avail): Reverse ordering of tests.
2004         Valuize INDIRECT_REF as well.
2005
2006 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
2007
2008         PR rtl-optimization/16380
2009         * loop.c (check_dbra_loop): Sink comparison instructions if they
2010         do something other than set cc0.
2011
2012 2004-07-06  James E Wilson  <wilson@specifixinc.com>
2013
2014         * doc/interface.texi (longjmp and automatic variables): Delete
2015         paragraph recommending taking the address of a variable.
2016
2017 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
2018
2019         * vec.h (VEC_embedded_alloc): Remove.
2020         (VEC_embedded_size, VEC_embedded_init): New.
2021         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
2022         MEM_STAT_INFO.
2023         (VEC_truncate): New.
2024         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
2025         (vec_embedded_alloc): Remove.
2026         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
2027         (vec_embedded_alloc): Remove.
2028
2029 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
2030
2031         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
2032         (gt-langhooks.h): Remove.
2033
2034 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
2035
2036         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
2037
2038 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2039
2040         * config/sparc/sparc.c (get_pc_symbol): Rename into
2041         add_pc_to_pic_symbol.
2042         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
2043         (load_pic_register): Account for previous changes.
2044         Use reg_names.  Don't create the label twice.
2045         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
2046         UNSPEC_LOAD_PCREL_SYM.
2047         (get_pc): Rename into load_pcrel_sym.  Add predicate to
2048         operands.  Remove condition.
2049
2050 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
2051
2052         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
2053         RECORD, UNION & QUAL_UNION is actually a binfo.
2054
2055         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
2056         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
2057         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
2058         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
2059         * dwarf2out.c (add_data_member_location_attribute): Likewise.
2060         (gen_inheritance_die): Likewise.
2061         * tree-dump.c (deque_and_dump): Likewise.
2062         * doc/c-tree.texi (Binfos): Add under reconstruction note.
2063
2064 2004-07-06  Steven Bosscher  <stevenb@suse.de>
2065
2066         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2067         Define.
2068         * config/mcore/mcore.md: Model memory latency with a simple DFA
2069         pipeline description instead of a define_function_unit.
2070
2071 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2072
2073         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
2074         * langhooks.h (var_mod_type_p): Likewise.
2075         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
2076         * expr.c (count_type_elements): Properly handle return from
2077         array_type_nelts and properly test for overflow.
2078         * gimplify.c (gimplify_init_constructor): Properly handle return
2079         from array_type_nelts.
2080         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
2081         * integrate.c (copy_decl_for_inlining): Correct comments.
2082         * tree-inline.c (remap_decl): Update comments, remove dead code,
2083         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
2084         (remap_type): Only remap if variably modified by vars in function
2085         being inlined.
2086         (copy_body_r): Use compatible_type langhooks to see when can fold.
2087         (setup_one_parameter): Don't remap type.
2088         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
2089         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
2090         compute TREE_INVARIANT for decl case.
2091         (find_var_from_fn): New function.
2092         (variably_modified_type_p): Add arg and call new function.
2093         * tree.h (variably_modified_type_p): Add extra arg.
2094
2095 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
2096
2097         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
2098         (goto_handler_and_restore_v9): Delete disabled insn.
2099         (goto_handler_and_restore_v9_sp64): Likewise.
2100
2101 2004-07-05  Roger Sayle  <roger@eyesopen.com>
2102
2103         * calls.c (load_register_parameters): Call expand_shift instead
2104         of expand_binop with ashl_optab (or other shift optab) directly.
2105         * expr.c (emit_group_load, emit_group_store): Likewise.
2106         * function.c (assign_parm_setup_block): Likewise.
2107         * stmt.c (shift_return_value): Likewise.
2108
2109 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
2110
2111         * expr.c (expand_assignment): Disable the bitfield += optimizations.
2112
2113 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2114
2115         * doc/sourcebuild.texi: Revert previous patch.
2116
2117 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2118
2119         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
2120         TARGET_MEM_FUNCTIONS.
2121         * system.h: Poison TARGET_MEM_FUNCTIONS.
2122         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
2123         bcmp_libfunc, bzero_libfunc): Remove.
2124         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
2125         bzero_libfunc.
2126         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
2127         * doc/standards.texi: Don't mention calling BSD string functions.
2128         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
2129         * config/vax/t-memfuncs: New.
2130         * config/memcmp.c, config/memcpy.c, config/memmove.c,
2131         config/memset.c: New.
2132         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
2133         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
2134         vax/t-memfuncs.
2135         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
2136         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
2137         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
2138         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
2139         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
2140         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
2141         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
2142         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
2143         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
2144         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
2145
2146 2004-07-05  Richard Henderson  <rth@redhat.com>
2147
2148         * function.c (assign_parm_setup_reg): Properly rename variables in
2149         FUNCTION_ARG_CALLEE_COPIES section.
2150
2151 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
2152
2153         * tree-mudflap.c: Include cgraph.h.
2154         (mf_init_extern_trees): Rename to mudflap_init.  Export.
2155         Rewrite to create synthetic declarations instead of looking
2156         up declarations from mf-runtime.h.
2157         (mf_make_builtin, mf_make_cache_struct_type): New functions.
2158         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
2159         Correct commentary.
2160         (execute_mudflap_function_decls, mudflap_register_call):
2161         Don't call mf_init_extern_trees.
2162         (mudflap_finish_file): Use cgraph_build_static_cdtor.
2163
2164         * tree-mudflap.h: Update prototypes.
2165         * c-mudflap.c: Delete file.
2166         * c-common.c: Include tree-mudflap.h.
2167         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
2168         * Makefile.in: Remove all references to c-mudflap.o.
2169         Update dependencies.
2170
2171 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2172
2173         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
2174         displacements with the spatial-locality cache-control completer.
2175
2176 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
2177
2178         * langhooks.c: Don't include gt-langhooks.h.
2179         (var_labelno): Delete.
2180         (lhd_set_decl_assembler_name): Do not append a distinguishing
2181         number to file-scope internal-linkage declarations for the first
2182         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
2183         the declaration itself (if at block scope), or its containing
2184         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
2185         number.
2186
2187         * opts.c (cur_in_fname): New global.
2188         * opts.h: Declare it.
2189         * tree.c: Include opts.h.
2190         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
2191         DECL_UID equal to cur_in_fname.
2192         (copy_node_stat): Do not change DECL_UID when copying a
2193         TRANSLATION_UNIT_DECL.
2194         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
2195         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
2196
2197         * c-decl.c (c_static_assembler_name): Delete.
2198         * c-tree.h (c_static_assembler_name): Delete prototype.
2199         * c-lang.c, objc/objc-lang.c: Don't override
2200         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
2201
2202         * Makefile.in (tree.o): Update dependencies.
2203         (GTFILES): Remove langhooks.c.
2204
2205 2004-07-05  Roger Sayle  <roger@eyesopen.com>
2206
2207         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
2208         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
2209         Normalize "X % C" as "X % -C" for signed modulus and negative C.
2210         Optimize "X % -Y" as "X % Y" for signed modulus.
2211         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
2212         into "((unsigned) X % Y) == 0".
2213
2214 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2215
2216         * sourcebuild.texi (Config Fragments): Use @comma{} in
2217         cross-reference to section title.
2218
2219 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2220
2221         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
2222         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
2223         (gimplify_target_expr, gimplify_expr): Likewise.
2224         (copy_if_shared_r): No longer need special case for BIND_EXPR.
2225         (unshare_body, unvisit_body): Only look at nested if BODY_P is
2226         whole function.
2227         (gimplify_compound_lval): See if we can strip any useless conversion.
2228         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
2229         from RHS, not LHS.
2230         (gimplify_modify_expr_to_memset): Likewise.
2231         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
2232         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
2233         (declare_inline_vars): Likewise.
2234         (walk_type_fields): New function.
2235         (walk_tree): Use it.
2236         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
2237
2238         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
2239         (sra_walk_modify_expr): Allow init function to fail.
2240         (scan_init): Now returns bool.
2241         (generate_element_init): If can't understand INIT, return false.
2242         (scalarize_init): Return false if generate_element_init does.
2243
2244         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
2245         print bounds.
2246
2247         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
2248         bounds if bounds aren't constant.
2249
2250         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
2251
2252         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
2253         to type hooks; remove bogus PARAMS.
2254
2255 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
2256
2257         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
2258         * dwarf2out.c (add_data_member_location_attribute): Check for
2259         TREE_BINFO.
2260         * tree.c (tree_node_kinds): Add "binfos".
2261         (binfo_lang_slots): New.
2262         (make_node_stat): Add TREE_BINFO.
2263         (make_tree_binfo_stat): New.
2264         (tree_node_structure): Add TREE_BINFO.
2265         * tree.def (TREE_BINFO): New.
2266         * tree.h (REC_OR_UNION_CHECK): Rename to ...
2267         (RECORD_OR_UNION_CHECK): ... here.
2268         (NOT_RECORD_OR_UNION_CHECK): New.
2269         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
2270         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
2271         RECORD_OR_UNION_CHECK.
2272         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
2273         (TYPE_LANG_SLOT_1): New.
2274         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
2275         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
2276         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
2277         (BINFO_ELTS): Remove.
2278         (BINFO_LANG_SLOT): New.
2279         (struct tree_binfo): New.
2280         (binfo_lang_slots): Declare.
2281         (enum tree_node_structure_enum): Add TS_BINFO.
2282         (union tree_node): Add binfo.
2283         (make_tree_binfo_stat): Declare.
2284         (make_tree_binfo): New.
2285         (enum tree_node_kind): Add binfo_kind.
2286
2287         * objc/objc-act.c (start_class, objc_declare_protocols,
2288         start_protocols): Use TYPE_LANG_SLOT_1.
2289         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
2290         to ...
2291         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
2292         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
2293         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
2294         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
2295
2296 2004-07-05  Steven Bosscher  <stevenb@suse.de>
2297
2298         * rtl.h (struct rtx_def): Remove the integrated flag.
2299         Use the return_val flag for MEM_SCALAR_P.
2300         Reshuffle and update flags in CLEAR_RTX_FLAGS.
2301
2302 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
2303
2304         PR target/16357
2305         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
2306         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
2307         move_by_pieces.
2308
2309 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
2310
2311         * var-tracking.c: Fix some comments.
2312         (frame_stack_adjust): New.
2313         (vt_stack_adjustments): Init stack_adjust of entry block to
2314         minus stack adjustment of function prologue.
2315         (adjust_stack_reference): Do not adjust if adjustment == 0.
2316         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
2317         (emit_notes_in_bb): Likewise.
2318         (vt_add_function_parameters): Do not adjust locations of
2319         function arguments.
2320         (vt_initialize): Compute the stack adjustment of function
2321         prologue and offset the initial "location" of frame_base_decl
2322         from the stack pointer after prologue.
2323
2324 2004-07-04  Richard Henderson  <rth@redhat.com>
2325
2326         * function.c (struct assign_parm_data_all): New.
2327         (struct assign_parm_data_one): New.
2328         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
2329         assign_parm_find_data_types, assign_parms_setup_varargs,
2330         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
2331         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
2332         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
2333         assign_parm_setup_block, assign_parm_setup_reg,
2334         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
2335         (assign_parms): ... here.
2336
2337 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
2338
2339         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
2340         now are bitmap_set_t's.
2341         (bitmap_insert_into_set): No point in inserting the value if
2342         it's invariant.
2343         (bitmap_set_contains): New function.
2344         (bitmap_set_replace_value): Add comment on why we do it
2345         this way.
2346         (set_contains): Removed.
2347         (bitmap_set_subtract_from_value_set): New name of
2348         set_subtract now that it's arguments are two different
2349         types of sets.
2350         Update callers.
2351         (bitmap_find_leader): Change algorithm used.
2352         (find_or_generate_expression): Update use of functions for new
2353         bitmap sets.
2354         (create_expression_by_pieces): Ditto.
2355         (insert_aux): Ditto.
2356         (insert): Ditto.
2357         (add_to_sets): Ditto.
2358         (init_pre): Ditto.
2359         (execute_pre): Ditto.
2360         (compute_avail): Ditto.
2361         Also ignore virtual phis.
2362
2363 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
2364
2365         * combine.c (simplify_comparison): Fix comment typo.
2366
2367 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2368
2369         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
2370         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
2371         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
2372         (output_restore): Change parameter from 'insn' to 'pat'.
2373         (output_return): Adjust call to output_restore.
2374         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
2375         Adjust call to output_restore.
2376
2377 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
2378
2379         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
2380         and assert system is bsd.
2381
2382 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
2383
2384         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
2385         (TARGET_SWITCHES): Remove -mdebugc.
2386         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
2387         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
2388         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
2389         (sle_[sd]i_reg): Delete.
2390
2391 2004-07-04  Steven Bosscher  <stevenb@suse.de>
2392
2393         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2394         Define.
2395         * config/iq2000/iq2000.md: Translate old pipeline description to an
2396         equivalent new one.
2397
2398 2004-07-04  Roger Sayle  <roger@eyesopen.com>
2399
2400         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
2401         Ensure the replacement rhs is valid gimple before performing
2402         the substitution.  Return false if these sanity checks fail.
2403         (fold_stmt): Only set changed to true, if set_rhs returns true.
2404         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
2405         succeeds.
2406
2407 2004-07-04  Richard Henderson  <rth@redhat.com>
2408
2409         PR c/16348
2410         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
2411
2412 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
2413
2414         * configure.ac (ranlib_flags): New variable.
2415         * Makefile.in (RANLIB_FLAGS): New variable.
2416         (libbackend.a): Use it.
2417         * configure: Regenerated.
2418
2419 2004-07-04  Roger Sayle  <roger@eyesopen.com>
2420
2421         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
2422         a "sign mask" instead of using ashr_optab directly.
2423
2424 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
2425
2426         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
2427         * doc/cppopts.texi: Clarify processing of command-line defines.
2428
2429 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
2430
2431         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
2432
2433 2004-07-04  Richard Henderson  <rth@redhat.com>
2434
2435         * rtl.def (ADDRESSOF): Remove.
2436         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
2437         (find_base_term, memrefs_conflict_p): Likewise.
2438         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
2439         (fold_rtx, cse_insn, set_live_p): Likewise.
2440         * dwarf2out.c (mem_loc_descriptor): Likewise.
2441         (add_location_or_const_value_attribute): Likewise.
2442         * emit-rtl.c (copy_insn_1): Likewise.
2443         * explow.c (memory_address): Likewise.
2444         * expmed.c (store_split_bit_field): Likewise.
2445         * expr.c (expand_expr_real_1): Likewise.
2446         * function.c (instantiate_decl
2447         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
2448         * genrecog.c (preds, validate_pattern): Likewise.
2449         * integrate.c (copy_rtx_and_substitute): Likewise.
2450         * recog.c (general_operand, register_operand): Likewise.
2451         (memory_address_p): Likwise.
2452         * reload1.c (eliminate_regs, elimination_effects): Likewise.
2453         * rtl.c (copy_rtx): Likewise.
2454         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
2455         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
2456         * rtlhooks.c (gen_lowpart_general): Likewise.
2457         * stmt.c (expand_asm_operands): Likewise.
2458         * web.c (entry_register, replace_ref, web_main): Likewise.
2459         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
2460         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
2461         * config/arm/arm.c (thumb_rtx_costs): Likewise.
2462         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
2463         * config/frv/frv.c (move_destination_operand, move_source_operand,
2464         condexec_dest_operand, condexec_source_operand,
2465         condexec_memory_operand): Likewise.
2466         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
2467         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
2468         (destination_xfmode_operand): Likewise.
2469         * config/mips/mips.h (PREDICATE_CODES): Likewise.
2470         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
2471         * config/s390/s390.c (general_s_operand): Likewise.
2472         * config/s390/s390.md (mov*): Likewise.
2473         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
2474
2475         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
2476         * expr.c (expand_expr_real_1): Likewise.
2477         * stmt.c (expand_decl): Likewise.
2478         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
2479
2480         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
2481         postponed_insns, put_var_into_stack, put_reg_into_stack,
2482         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
2483         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
2484         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
2485         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
2486         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
2487         purge_bitfield_addressof_replacements, purge_addressof_replacements,
2488         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
2489         struct insns_for_mem_walk_info, insns_for_mem_walk,
2490         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
2491         setjmp_protect_args): Remove.
2492         (push_function_context_to): Don't handle var_refs_queue.
2493         (pop_function_context_from, free_after_compilation): Likewise.
2494         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
2495         (assign_parms, allocate_struct_function): Likewise.
2496         (use_register_for_decl): New.
2497         (expand_function_end): Don't setjmp_protect.
2498         * function.h (struct emit_status): Update commentary.
2499         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
2500         (max_parm_reg, parm_reg_stack_loc): Remove.
2501         * passes.c (DFI_addressof): Remove.
2502         (dump_file_info): Remove addressof.
2503         (rest_of_handle_addressof): Remove.
2504         (rest_of_compilation): Don't call it.
2505         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
2506         * stmt.c (expand_decl): Use use_register_for_decl.
2507         * tree.h: Update decls.
2508         * web.c (mark_addressof): Remove.
2509         * doc/invoke.texi (-dF): Remove.
2510
2511 2004-07-03  Richard Henderson  <rth@redhat.com>
2512
2513         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
2514         instead of gen_mem_addressof.
2515         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
2516         TImode output register.
2517
2518 2004-07-03  Richard Henderson  <rth@redhat.com>
2519
2520         PR tree-optimization/16341
2521         * tree-sra.c (sra_walk_function): Increment to next stmt before
2522         processing the current stmt.
2523         (sra_insert_after): Always use BSI_SAME_STMT.
2524
2525 2004-07-03  Richard Henderson  <rth@redhat.com>
2526
2527         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
2528         fp plus with minus.
2529
2530 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
2531
2532         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
2533         with tree_int_cst_equal.
2534
2535 2004-07-03  Andreas Schwab  <schwab@suse.de>
2536
2537         * config/ia64/ia64.md: Define new attribute "empty".
2538         (prologue_use, nop_x, insn_group_barrier): Set it.
2539
2540         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
2541         skip over "empty" insns.
2542
2543 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2544
2545         * tree-inline.c (initialize_inlined_parameters): Pass proper function
2546         context to gimplify_body.
2547         (walk_tree): Don't walk into types twice.
2548         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
2549
2550         * tree-sra.c (generate_element_init): Remove any useless conversions.
2551
2552         * gimplify.c (gimplify_conversion): Remove stripping useless
2553         conversions from here.
2554         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
2555         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
2556         Unshare before substituting PLACEHOLDER_EXPR.
2557         (gimplify_modify_expr_to_memset): Likewise.
2558         Pass address of TO to memset, not TO itself.
2559         (gimplify_init_constructor): Make copy of OBJECT so we have it each
2560         time we make an expression (to match a PLACEHOLDER_EXPR).
2561
2562         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
2563         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
2564         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
2565         * tree-ssa-dom.c (local_fold): Likewise.
2566
2567         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
2568         * langhooks.h (strct lang_hooks): New field type_max_size.
2569         * function.c (assign_temp): Call it.
2570
2571 2004-07-03  Steven Bosscher  <stevenb@suse.de>
2572
2573         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
2574         * config/sh/sh.md: Convert the SH1 pipeline description to
2575         a DFA model.
2576
2577 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
2578
2579         * c-decl.c (struct c_binding): Remove contour field; add
2580         depth, invisible, nested fields.
2581         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
2582         (B_IN_EXTERNAL_SCOPE): New convenience macros.
2583         (bind): Add invisible and nested arguments. Initialize
2584         new fields of struct c_binding; adjust loop scanning for
2585         insertion point.
2586         (free_binding_and_advance): Clear structure with memset.
2587         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
2588         in file scope, even if it's in external scope too.
2589         (pushdecl): Adjust to match.  Create invisible file-scope
2590         declarations for block-scope forward declarations of static functions.
2591         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
2592         (undeclared_variable, lookup_label, declare_label, define_label)
2593         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
2594         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
2595         (store_parm_decls_oldstyle): Adjust to match.
2596         (diagnose_mismatched_decls): Correct handling of linkage clashes.
2597         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
2598
2599         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
2600         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
2601
2602 2004-07-02  Richard Henderson  <rth@redhat.com>
2603
2604         * c-decl.c (grokdeclarator): Don't frob current_function_decl
2605         around variable_size.
2606         (set_decl_nonlocal): Remove.
2607         (store_parm_decls): Add stmts for pending sizes.
2608         * calls.c (calls_function, calls_function_1): Remove.
2609         (precompute_arguments): Don't call it.
2610         * cfgexpand.c (set_save_expr_context): Remove.
2611         (tree_expand_cfg): Don't call it.
2612         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
2613         (dwarf2out_finish): Likewise.
2614         * expr.c (emit_block_move): Adjust addresses to BLKmode.
2615         (store_constructor): Don't pre-evaluate SAVE_EXPR.
2616         (safe_from_p): Don't queue SAVE_EXPRs.
2617         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
2618         or build plain VAR_DECLs.
2619         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
2620         (fold): Likewise.
2621         (fold_checksum_tree): Don't special-case SAVE_EXPR.
2622         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
2623         (put_var_into_stack): Don't handle SAVE_EXPR.
2624         (gen_mem_addressof): Likewise.
2625         * function.h (struct function): Remove x_save_expr_regs.
2626         (save_expr_regs): Remove.
2627         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
2628         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
2629         * stor-layout.c (variable_size): Don't set it.
2630         (force_type_save_exprs, force_type_save_exprs_1): Remove.
2631         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
2632         all callers.  Don't set SAVE_EXPR_CONTEXT.
2633         * tree-inline.h (remap_save_expr): Update decl.
2634         * tree.c (save_expr): Update build size.
2635         (first_rtl_op): Don't handle SAVE_EXPR.
2636         (unsave_expr_1, contains_placeholder_p): Likewise.
2637         (decl_function_context): Likewise.
2638         * tree.def (SAVE_EXPR): Remove args 1 and 2.
2639         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
2640         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
2641
2642 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
2643
2644         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
2645         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
2646         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
2647         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
2648         some first-person references and patronizing comments.  Based on
2649         printed manual.
2650         * doc/invoke.texi: Don't reference fortran@gnu.org.
2651         * doc/trouble.texi (Warning when a non-void function value is
2652         ignored): Rewrite.  From Russ Allbery and Chris Devers.
2653
2654 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
2655
2656         * tree-ssa-pre.c (bitmap_set_t): New.
2657         (bb_value_sets): avail_out is now a bitmap_set_t.
2658         (bitmap_find_leader): New function.
2659         (bitmap_value_insert_into_set): Ditto.
2660         (bitmap_set_copy): Ditto.
2661         (bitmap_value_replace_in_set): Ditto.
2662         (bitmap_set_contains_value): Ditto.
2663         (bitmap_set_new): Ditto.
2664         (bitmap_set_pool): New pool.
2665         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
2666         (insert_aux): Ditto.
2667         (add_to_sets): Ditto.
2668         (compute_avail): Ditto
2669         (eliminate): Ditto.
2670         (init_pre): Ditto.
2671         (fini_pre): Ditto.
2672         (execute_pre): Ditto.
2673
2674 2004-07-02  Roger Sayle  <roger@eyesopen.com>
2675
2676         * config/rs6000/rs6000.c (struct processor_costs): New structure
2677         used to hold instruction latencies/sizes for processor types.
2678         (rs6000_cost): New global variable pointing to current CPU's costs.
2679         (rs6000_override_options): Initialize rs6000_cost to point to the
2680         appropriate cost table based upon rs6000_cpu and optimize_size.
2681         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
2682         timings inline.
2683
2684 2004-07-02  Richard Henderson  <rth@redhat.com>
2685
2686         * expmed.c (make_tree): Don't use SET_DECL_RTL.
2687
2688 2004-07-02  Steven Bosscher  <stevenb@suse.de>
2689
2690         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
2691
2692 2004-07-01  Richard Henderson  <rth@redhat.com>
2693
2694         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
2695         (alpha_gp_save_rtx): Use assign_stack_local instead of
2696         gen_mem_addressof.
2697
2698 2004-07-01  Richard Henderson  <rth@redhat.com>
2699
2700         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
2701         (alpha_rtx_cost_data): Update to match.
2702         (alpha_rtx_cost_size): New.
2703         (alpha_rtx_costs): Honor optimize_size.
2704
2705 2004-07-01  Richard Henderson  <rth@redhat.com>
2706
2707         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
2708         * cfgexpand.c (tree_expand_cfg): Do it here.
2709         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
2710         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
2711         * config/mips/mips.c (mips_output_mi_thunk): And here.
2712         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
2713         * config/sh/sh.c (sh_output_mi_thunk): And here.
2714         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
2715
2716 2004-07-01  Richard Henderson  <rth@redhat.com>
2717
2718         * tree.def (RTL_EXPR): Remove.
2719         * c-typeck.c (lvalue_p): Don't handle it.
2720         * expr.c (safe_from_p): Likewise.
2721         (expand_expr_real_1): Likewise.
2722         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
2723         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
2724         * gengtype.c (adjust_field_tree_exp): Likewise.
2725         * stmt.c (warn_if_unused_value): Likewise.
2726         * tree-gimple.c (recalculate_side_effects): Likewise.
2727         * tree-pretty-print.c (dump_generic_node): Likewise.
2728         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
2729         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
2730         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
2731
2732         * stmt.c (struct stmt_status): Remove x_last_expr_type,
2733         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
2734         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
2735         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
2736         all the bits that tracked last_expr.
2737         (expand_end_bindings): Don't track last_expr.
2738         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
2739         (clear_last_expr): Remove.
2740         (expand_asm): Don't call it.
2741         (expand_asm_operands, expand_end_cond): Likewise.
2742         (expand_naked_return, expand_null_return_1): Likewise.
2743         * c-typeck.c (c_begin_compound_stmt): Likewise.
2744         * cfgexpand.c (expand_block): Use expand_expr_stmt.
2745         * expr.c (expand_expr_real_1): Likewise.
2746         * tree.h: Update prototypes.
2747
2748         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
2749         (struct emit_status): Remove sequence_rtl_expr.
2750         (struct function): Remove x_rtl_expr_chain.
2751         (seq_rtl_expr, rtl_expr_chain): Remove.
2752         * function.c (struct temp_slot): Remove rtl_expr.
2753         (assign_stack_temp_for_type): Don't set it.
2754         (free_temp_slots, pop_temp_slots): Don't check it.
2755         (free_after_compilation): Don't clear x_rtl_expr_chain.
2756         (fixup_var_refs): Don't search it.
2757         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
2758         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
2759         or seq_rtl_expr.
2760         (push_topmost_sequence): Likewise.
2761         (end_sequence, init_emit): Likewise.
2762         (start_sequence_for_rtl_expr): Remove.
2763         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
2764         * rtl.h (preserve_rtl_expr_result): Remove.
2765
2766 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
2767
2768         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
2769         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
2770         typos.
2771
2772 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
2773
2774         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
2775         (STANDARD_STARTFILE_PREFIX_2): Define.
2776         (standard_startfile_prefix_1): Initialize to
2777         STANDARD_STARTFILE_PREFIX_1.
2778         (standard_startfile_prefix_2): Initialize to
2779         STANDARD_STARTFILE_PREFIX_2.
2780         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
2781         (STANDARD_STARTFILE_PREFIX_1): Define.
2782         (STANDARD_STARTFILE_PREFIX_2): Define.
2783         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
2784         (STANDARD_STARTFILE_PREFIX_2): Document.
2785
2786 2004-07-01  Richard Henderson  <rth@redhat.com>
2787
2788         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
2789         in order to disable scalarization.  Instead set a flag and wait
2790         for a candidate decl.
2791
2792 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
2793
2794         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
2795         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
2796         Use terminology "testsuite" and "enumerated".
2797
2798 2004-07-01  Richard Henderson  <rth@redhat.com>
2799
2800         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
2801         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
2802         (initial_return_save): Likewise.
2803         (flush_queued_reg_saves): Remap register numbers.
2804         (dwarf2out_return_reg): Likewise.
2805
2806 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2807
2808         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
2809
2810         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
2811         access functions for lower bound and element size and only output
2812         if lower bound nonzero or element size not same as that of type.
2813         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
2814
2815 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
2816
2817         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
2818
2819 2004-07-01  Per Bothner  <per@bothner.com>
2820
2821         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
2822
2823 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
2824
2825         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
2826         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
2827         first operand.  Don't optimize if the bitfield is volatile.
2828
2829 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
2830
2831         * c-pretty-print.c (pp_c_postfix_expression): Handle
2832         floating-point comparison operators.
2833         (pp_c_expression): Pass floating-point comparison
2834         operators to pp_c_postfix_expression.
2835
2836 2004-07-01  Roger Sayle  <roger@eyesopen.com>
2837
2838         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
2839         rtx_cost instead of "had_mult" to determine whether the transformed
2840         expression is cheaper than the original.
2841
2842 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
2843
2844         * alias.c (get_alias_set, canon_rtx, get_addr,
2845         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
2846         Use MEM_P.
2847         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
2848         expand_builtin): Likewise.
2849         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
2850         Likewise.
2851         * combine.c (can_combine_p, combinable_i3pat, try_combine,
2852         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
2853         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
2854         record_dead_and_set_regs_1, get_last_value_validate,
2855         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
2856         * cse.c (check_dependence, canon_hash, equiv_constant,
2857         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
2858         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
2859         count_reg_usage): Likewise.
2860         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
2861         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
2862         cselib_record_sets): Likewise.
2863         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
2864         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
2865         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
2866         * df.c (df_uses_record): Likewise.
2867         * dojump (do_jump): Likewise.
2868         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
2869         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
2870         decl_start_label): Likewise.
2871         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
2872         operand_subword, change_address_1, make_safe_from): Likewise.
2873         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
2874         stabilize, force_not_mem): Likewise.
2875         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
2876         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
2877         * expr.c (convert_move, convert_modes, emit_block_move,
2878         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
2879         emit_move_insn_1, expand_assignment, store_expr,
2880         store_constructor_field, store_constructor, store_field,
2881         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
2882         Likewise.
2883         * final.c (cleanup_subreg_operands, alter_subreg,
2884         get_mem_expr_from_op): Likewise.
2885         * flow.c (notice_stack_pointer_modification_1,
2886         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
2887         Likewise.
2888         * function.c (mark_temp_addr_taken, preserve_temp_slots,
2889         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
2890         optimize_bit_field, flush_addressof, purge_addressof_1,
2891         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
2892         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2893         keep_stack_depressed): Likewise.
2894         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
2895         noce_process_if_block, find_memory): Likewise.
2896         * integrate.c (subst_constants, allocate_initial_values): Likewise.
2897         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
2898         update_equiv_regs): Likewise.
2899         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
2900         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
2901         * optabs.c (expand_abs, emit_unop_insn): Likewise.
2902         * passes.c (rest_of_handle_final): Likewise.
2903         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2904         move2add_note_store): Likewise.
2905         * ra-build.c (detect_remat_webs): Likewise.
2906         * ra-debug.c (dump_static_insn_cost): Likewise.
2907         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
2908         * recog.c (validate_change, apply_change_group, cancel_changes,
2909         validate_replace_rtx_1, general_operand, register_operand,
2910         nonmemory_operand, push_operand, pop_operand, memory_operand,
2911         indirect_operand, asm_operand_ok, offsettable_memref_p,
2912         offsettable_nonstrict_memref_p, constrain_operands,
2913         store_data_bypass_p): Likewise.
2914         * reg-stack.c (subst_stack_regs_pat): Likewise.
2915         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
2916         copy_cost, reg_scan_mark_refs): Likewise.
2917         * regmove.c (optimize_reg_copy_3, stack_memref_p,
2918         combine_stack_adjustments_for_block): Likewise.
2919         * regrename.c (copyprop_hardreg_forward_1): Likewise.
2920         * reload.c (can_reload_into, push_reload, decompose, immune_p,
2921         find_reloads, find_reloads_address, find_reloads_address_1,
2922         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
2923         find_equiv_reg): Likewise.
2924         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
2925         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
2926         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
2927         delete_address_reloads): Likewise.
2928         * resource.c (mark_referenced_resources): Likewise.
2929         * rtlanal.c (get_jump_table_offset, count_occurrences,
2930         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
2931         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
2932         num_sign_bit_copies1): Likewise.
2933         * rtlhooks.c (gen_lowpart_general): Likewise.
2934         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
2935         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
2936         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
2937         sdbout_global_decl): Likewise.
2938         * simplify-rtx.c (simplify_subreg): Likewise.
2939         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
2940         expand_anon_union_decl, expand_end_case_type): Likewise.
2941         * unroll.c (calculate_giv_inc): Likewise.
2942         * var-tracking.c (stack_adjust_offset_pre_post,
2943         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
2944         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
2945         vt_add_function_parameters): Likewise.
2946         * varasm.c (make_var_volatile, notice_global_symbol,
2947         assemble_external, decode_addr_const, mark_weak,
2948         default_encode_section_info): Likewise.
2949
2950 2004-07-01  Steven Bosscher  <stevenb@suse.de>
2951
2952         * stmt.c (check_seenlabel): Remove.
2953         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
2954
2955 2004-07-01  Richard Henderson  <rth@redhat.com>
2956
2957         * function.h (struct function): Remove x_function_call_count.
2958         (function_call_count): Remove.
2959         * calls.c (expand_call): Don't set it.
2960         * integrate.c (copy_rtx_and_substitute): Likewise.
2961
2962         * function.h (struct function): Remove x_cleanup_label.
2963         (cleanup_label): Remove.
2964         * stmt.c (expand_value_return): Don't use it.
2965         * function.c (free_after_compilation): Don't set it.
2966         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
2967         * cfgexpand.c (tree_expand_cfg): Update call.
2968         * tree.h (expand_function_start): Update decl.
2969
2970 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
2971
2972         PR c/1027
2973         * c-lang.c (c_initialize_diagnostics): Move from here ...
2974         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
2975         (c_tree_printer): Use pretty-printer to format %T.
2976         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
2977         before '*' if not C++.
2978         (pp_c_direct_abstract_declarator): Don't try to print array upper
2979         bound for flexible array members.
2980         * c-tree.h: Include "diagnostic.h".
2981         (c_initialize_diagnostics): Declare.
2982         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
2983         * c-format.c (format_type_warning): New function.  Improve
2984         diagnostics for incorrect format argument types.
2985         (check_format_types): Use it.  Add two parameters.  Use the
2986         TYPE_MAIN_VARIANT of wanted_type.
2987         (check_format_info_main): Pass new parameters to
2988         check_format_types.
2989         (struct format_wanted_type): Update comment.
2990
2991 2004-07-01  Nick Clifton  <nickc@redhat.com>
2992
2993         * target.h (struct gcc_target): Add new field to struct cxx:
2994         import_export_class.
2995         * target-def.h (TARGET_CXX): Initialise the new field.
2996         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
2997         the new field.
2998         * doc/tm.texi: Document the new target hook.
2999
3000 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
3001
3002         * builtins.c (fold_builtin_classify): Fix typo.
3003
3004 2004-07-01  Richard Henderson  <rth@redhat.com>
3005
3006         * function.c (identify_blocks, identify_blocks_1): Remove.
3007         * function.h (identify_blocks): Remove.
3008         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
3009
3010 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
3011
3012         * builtins.c (fold_builtin_classify): New.
3013         (fold_builtin_unordered_cmp): Fix commentary.
3014         (fold_builtin): Use it.
3015         * builtins.def: Define builtins for isnan,
3016         isnanf, isnanl, finite, finitef, finitel,
3017         isinf, isinff, isinfl.
3018
3019 2004-07-01  Richard Henderson  <rth@redhat.com>
3020
3021         * function.h (struct function): Remove dont_emit_block_notes.
3022         * gimple-low.c (lower_function_body): Don't set it.
3023         * cfgexpand.c (expand_block): Don't check it.
3024         * cfglayout.c (insn_locators_initialize): Likewise.
3025         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
3026         * passes.c (rest_of_compilation): Likewise.
3027         * stmt.c (expand_start_bindings_and_block): Likewise.
3028         (expand_end_bindings): Likewise.
3029
3030 2004-07-01  Richard Henderson  <rth@redhat.com>
3031
3032         * cgraph.h (cgraph_build_static_cdtor): Declare.
3033         * cgraphunit.c (cgraph_build_static_cdtor): New.
3034         * c-objc-common.c (build_cdtor): Use it.
3035         * coverage.c (create_coverage): Likewise.
3036         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
3037         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
3038
3039 See ChangeLog.11 for earlier changes.