OSDN Git Service

a67eae2769a0ec2f5e60fd65dee683dc769d60f2
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
2
3         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
4         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
5         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
6         (start_ssa_stmt_operands): Delete.
7         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new 
8         struct stmt_operands_d.
9         (build_ssa_operands): New extern entry point.
10         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand 
11         building code, replace with create_ssa_artficial_load_stmt().
12         * tree-ssa-operands.c (struct voperands_d): Delete.
13         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
14         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
15         (free_uses, free_defs, free_vuses, free_v_may_defs, 
16         free_v_must_defs): Remove dealloc parameter.
17         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
18         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
19         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
20         vector comparisons, ssa_name reuse, and allocations here.
21         (verify_start_operands): Delete.
22         (finalize_ssa_stmt_operands): Set new operands by calling finalize
23         routines.
24         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
25         (append_def, append_usei): Simplify to simple accumulation.
26         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
27         duplicates and simple accumulation.
28         (free_ssa_operands): Free vectors in a stmt_operand structure.
29         (build_ssa_operands): New. Create a new stmt_operand structure from
30         a stmt and an old set of stmt_operands.  
31         (get_stmt_operands): Simplify and call build_ssa_operands.
32         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
33         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
34         add_call_read_ops): Don't pass prev_vops around anymore.
35         (note_addressable): Return if no stmt annotation.
36         (copy_virtual_operands): Access v_may_def operands through a struct.
37         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
38         hash tables without treating the stmt as a real stmt.
39         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
40         v_may_def def and use through a struct instead of 2 array elements.
41         (struct v_may_def_optype_d): Use v_may_def_operand_type.
42         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
43
44 2004-08-11  Nick Clifton  <nickc@redhat.com>
45
46         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
47         this funciton's behaviour.  Return true when the current function
48         has a section attribute and -mlong-calls is in effect.
49         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
50         short-call marker when -mlong-calls is in effect and the function
51         has a section attribute.
52
53 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
54
55         * stmt.c (expand_return): If asked to return the RESULT_DECL,
56         just call expand_value_return on result_rtl.
57
58 2004-08-10  Richard Henderson  <rth@redhat.com>
59
60         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
61         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
62         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
63         (add_location_or_const_value_attribute): ... not here.  Use
64         loc_descriptor_from_tree if possible.
65         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
66         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
67         values specially.
68         (loc_descriptor_from_tree): New.  Update callers.
69         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
70         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
71         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
72         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
73         and BUILT_IN_STACK_RESTORE.
74         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
75         * stmt.c (expand_stack_alloc): Remove.
76         * tree-mudflap.c (mx_register_decls): Don't look for
77         BUILT_IN_STACK_ALLOC.
78         * tree-nested.c (convert_local_reference): Likewise.
79         * tree.h (DECL_VALUE_EXPR): New.
80
81 2004-08-10  Richard Henderson  <rth@redhat.com>
82
83         * stor-layout.c (round_up): Check for 0/1 before dividing.
84         (round_down): Likewise.
85
86         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
87
88 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
89
90         * config.gcc (arm*-*-eabi*): New target.
91         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
92         (TARGET_LIB_INT_CMP_BIASED): Likewise.
93         * expmed.c (expand_divmod): Try a two-valued divmod function as a
94         last resort.
95         * gthr.h: Remove bogus tokens at end of #pragma.
96         * optabs.c (expand_twoval_binop_libfunc): New function.
97         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
98         (prepare_float_lib_cmp): Try reversing the condition.
99         (debug_optab_libfuncs): New function.
100         * optabs.h (expand_twoval_binop_libfunc): Declare.
101         * config/arm/arm.c (arm_init_libfuncs): New function.
102         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
103         (TARGET_INIT_LIBFUNCS): Define it.
104         * config/arm/arm.h (TARGET_BPABI): New macro.
105         * config/arm/arm-protos.h
106         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
107         * config/arm/bpabi.S: New file.
108         * config/arm/bpabi.c: Likewise.
109         * config/arm/bpabi.h: Likewise.
110         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
111         (__aeabi_drsub): Likewise.
112         (__aeabi_dsub): Likewise.
113         (__aeabi_dadd): Likewise.
114         (__aeabi_ui2d): Likewise.
115         (__aeabi_i2d): Likewise.
116         (__aeabi_f2d): Likewise.
117         (__aeabi_dmul): Likewise.
118         (__aeabi_ddiv): Likewise.
119         (__aeabi_cdrcmple): Likewise.
120         (__aeabi_cdcmpeq): Likewise.
121         (__aeabi_cdcmple): Likewise.
122         (__aeabi_dcmpeq): Likewise.
123         (__aeabi_dcmplt): Likewise.
124         (__aeabi_dcmple): Likewise.
125         (__aeabi_dcmpge): Likewise.
126         (__aeabi_dcmpgt): Likewise.
127         (__aeabi_dcmpun): Likewise.
128         (__aeabi_d2iz): Likewise.
129         (__aeabi_d2uiz): Likewise.
130         (__aeabi_d2f): Likewise.
131         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
132         (__aeabi_frsub): Likewise.
133         (__aeabi_fsub): Likewise.
134         (__aeabi_fadd): Likewise.
135         (__aeabi_ui2f): Likewise.
136         (__aeabi_i2f): Likewise.
137         (__aeabi_fmul): Likewise.
138         (__aeabi_fdiv): Likewise.
139         (__aeabi_cfrcmple): Likewise.
140         (__aeabi_cfcmpeq): Likewise.
141         (__aeabi_cfcmple): Likewise.
142         (__aeabi_fcmpeq): Likewise.
143         (__aeabi_fcmplt): Likewise.
144         (__aeabi_fcmple): Likewise.
145         (__aeabi_fcmpge): Likewise.
146         (__aeabi_fcmpgt): Likewise.
147         (__aeabi_fcmpun): Likewise.
148         (__aeabi_f2iz): Likewise.
149         (__aeabi_f2uiz): Likewise.
150         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
151         (__aeabi_uidivmod): New function or alias.
152         (__aeabi_idivmod): Likewise.
153         (__aeabi_idiv0): Likewise.
154         (__aeabi_ldiv0): Likewise.
155         (__aeabi_llsr): Likewise.
156         (__aeabi_lasr): Likewise.
157         (__aeabi_llsl): Likewise.
158         (bpabi.S): Include it.
159         * config/arm/libgcc-bpabi.ver: New file.
160         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
161         (LINK_SPEC): Remove.
162         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
163         __aeabi_ulcmp.
164         * config/arm/t-bpabi: New file.
165         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
166         (TARGET_LIB_INT_CMP_BIASED): Likewise.
167
168 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
169
170         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
171         * config/rs6000/rs6000.md (clrmemsi): New pattern.
172         * config/rs6000/rs6000.c (expand_block_clear): New function.
173         (expand_block_move): Convert alignment to bits.  Use SImode and
174         HImode for unaligned addresses if not STRICT_ALIGNMENT.
175
176 2004-08-10  Caroline Tice  <ctice@apple.com>
177
178         * varasm.c (unlikely_section_label): New global variable.
179         (unlikely_text_section_name): New global variable.
180         (text_section):  Remove alignment statement.
181         (unlikely_text_section): Remove alignment statement; use
182         unlikely_section_label rather than hard-coded string.
183         (assemble_start_function): Initialize unlikely_section_label and
184         unlikely_text_section_name;  make sure cold section is properly
185         aligned at start of function; output unlikely_section_label if
186         appropriate.
187
188 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
189
190         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
191         * config/s390/s390.c (s390_canonicalize_comparison): New function.
192         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
193         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
194         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
195         ("*tmqi_mem"): Remove SUBREG from pattern.
196         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
197         ("*andsi3_cconly"): Likewise.
198
199 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
200
201         PR target/16909
202         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
203
204 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
205
206         * doc/sourcebuild.texi (compat testing): Document available test
207         framework commands.  Use the preferred spelling of DejaGnu.
208
209 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
210
211         * lambda.h: Add matrix type, and prototypes for remainder of
212         matrix and vector functions.
213         (lambda_vector_mult_const): New function.
214         (lambda_vector_negate): Ditto.
215         (lambda_vector_add): Ditto.
216         (lambda_vector_add_mc): Ditto.
217         (lambda_vector_copy): Ditto.
218         (lambda_vector_zerop): Ditto.
219         (lambda_vector_equal): Ditto.
220         (lambda_vector_min_nz): Ditto.
221         (lambda_vector_first_nz): Ditto.
222         (lambda_vector_matrix_mult): Ditto.
223         * lambda-mat.c: New file.
224         * Makefile.in (lambda-mat.o): New.
225
226 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
227
228         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
229         after linking stmt into the program.
230         (bsi_remove): Don't call modify_stmt.
231         * tree-complex.c (update_complex_assignment,
232         expand_complex_comparison): Call modify_stmt after changing the stmt.
233         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
234         removing the stmt.
235         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
236         the stmt, and only if needed.
237         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
238         expression.
239         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
240         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
241         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
242         (eliminate_redundant_computations): Don't pass an annotation. Call
243         modify_stmt rather than setting the annotation directly.
244         (record_equivalences_from_stmt): Remove unused local 'j'.
245         (cprop_operand): Take a stmt rather than an annotation as a parameter.
246         Call modify_stmt.
247         (cprop_into_stmt): Pass stmt rather than annotation.
248         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
249         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
250         modify_stmt.
251         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
252
253 2004-08-10  Jason Merrill  <jason@redhat.com>
254
255         PR middle-end/16948
256         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
257         the RESULT_DECL.
258
259 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
260
261         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
262         hash function.
263
264 2004-08-10  Roger Sayle  <roger@eyesopen.com>
265
266         * config/mips/mips.md: New reciprocal square root patterns that
267         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
268
269 2004-08-10  Paul Brook  <paul@codesourcery.com>
270
271         * config/arm/arm-protos.h (arm_set_return_address,
272         thumb_set_return_address): Add prototypes.
273         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
274         * config/arm/arm.c (arm_compute_func_type,
275         use_return_insn, arm_compute_save_reg0_reg12_mask,
276         arm_compute_save_reg_mask, arm_output_function_prologue,
277         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
278         current_function_calls_eh_return.
279         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
280         old eh code.
281         (arm_set_return_address, thumb_set_return_address): New functions.
282         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
283         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
284         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
285         (epilogue): Use the stackadj register.
286         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
287
288 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
289
290         PR target/3144
291         * expr.c (move_by_pieces_ninsns): Add max_size argument.
292         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
293         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
294         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
295         but using MOVE_RATIO.
296         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
297         (can_store_by_pieces): Change max_size type to unsigned int.
298         (store_by_pieces_1): Likewise.  Pass max_size to
299         move_by_pieces_ninsns.
300         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
301         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
302         to move_by_pieces_ninsns.
303         (STORE_BY_PIECES_P): Define.
304         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
305         to move_by_pieces_ninsns.
306         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
307
308         * config/i386/i386.h (CLEAR_RATIO): Define.
309
310 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
311
312         * expr.c (expand_expr_real_1): Add back code that was not dead.
313
314 2004-08-09  Andrew Pinski  <apinski@apple.com>
315
316         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
317         which is found to be compatible before returning the aliasing set.
318
319 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
320
321         * ggc-zone.c (struct alloc_zone): Add statistics counters.
322         (always_collect): New flag.
323         (ggc_alloc_zone_1): Update statistics support.  Don't include
324         overhead in allocated counter.
325         (sweep_pages): Update allocated counter for large pages.  Don'y
326         include overhead.
327         (ggc_collect_1): Always collect.
328         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
329         whether to collect.
330         (SCALE, LABEL): New macros.
331         (ggc_print_statistics): Add statistics support.
332
333 2004-08-09  Roger Sayle  <roger@eyesopen.com>
334
335         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
336         (init_expmed): Fix potential overrun problem with "all.reg".
337         (expand_sdiv2_pow2): Add an alternate implementation for signed
338         division, if the target provides a suitable conditional move insn.
339
340 2004-08-09  Paul Brook  <paul@codesourcery.com>
341         Richard Henderson  <rth@redhat.com>
342
343         * unwind-dw2.c (uw_install_context_1): Update target saved stack
344         pointer.
345
346 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
347
348         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
349         Check DATA limit only if there's no AS limit.  Ignore insanely
350         low DATA limits.
351         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
352         but take care that the AS limit isn't overrun.
353         * doc/invoke.texi: Update documentation of min-heapsize parameter.
354
355 2004-08-09  Jeff Law  <law@redhat.com>
356
357         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
358         (tree-ssa-threadupdate.o): Add dependencies.
359         * tree-ssa-threadupdate.c: New file.
360         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
361         (rewrite_vars_out_of_ssa): Remove prototype.
362         (cleanup_tree_cfg): Returns a bool.
363         * tree.h (thread_through_all_blocks): Prototype.
364         * tree-outof-ssa.c  (SSANORM_*): Move into here.
365         (remove_ssa_form): Now static.
366         (rewrite_vars_out_of_ssa): Kill.
367         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
368         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
369         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
370         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
371         anything was changed.
372         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
373         from the PHI's annotation rather than the edge associated with
374         the new argument.
375         * tree-ssa-dom.c (redirection_edges): Kill.
376         (redirect_edges_and_update_ssa_graph): Kill.
377         (tree_ssa_dominator_optimize): Do not reset forwardable flag
378         for blocks anymore.  Do not initialize redirection_edges.
379         Call thread_through_all_blocks.  Simplify code for cleanup
380         of the CFG and iterating.  No longer call cleanup_tree_cfg
381         outside the iteration loop.
382         (thread_across_edge): No longer mess with forwardable blocks.
383
384 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
385
386         * explow.c (memory_address): Use memory_address_p.
387         * recog.c (general_operand): Likewise.
388         * regrename.c: No need to define REG_OK_STRICT.
389
390 2004-08-09  Steven Bosscher  <stevenb@suse.de>
391
392         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
393         New timers.
394         * gcse.c: Include timevar.h.
395         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
396         and global_copy_prop_count.
397         (local_const_prop_count, local_copy_prop_count): New static globals.
398         (gcse_main): Set the right timevar for each pass.
399         (cprop_jump): Increment global_const_prop_count when a constant is
400         propagated.  Add "GLOBAL" to dump output.
401         (cprop_insn): Increment global_const_prop_count when a constant is
402         propagated, or global_copy_prop_count when a copy is propagated.
403         (do_local_cprop): Likewise for local_const_prop_count and
404         local_copy_prop_count.
405         (one_cprop_pass): Initialize const/cprop counters to zero.
406         Print out results of local and global const/cprop separately.
407         (bypass_block): Break over-length line.
408         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
409         for bb-reorder.o and tracer.o.
410
411 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
412
413         * Makefile.in (GTFILES): Remove stmt.c
414         (stmt.o): Do not depend on gt-stmt.h.
415         * emit-rtl.c (emit_line_note): Do not call
416         set_file_and_line_for_stmt.
417         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
418         do everything.
419         * function.c (free_after_parsing): Do not free STMT field.
420         (allocate_struct_function): Do not call init_stmt_for_function.
421         (assign_stack_temp_for_type): Do not accept values of keep
422         other than 0 or 1.
423         (init_temp_slots): Do not initialize removed variables.
424         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
425         and X_VAR_TEMP_SLOT_LEVEL fields.
426         * rtl.h (set_file_and_line_for_stmt): Remove.
427         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
428         struct stmt_status, cond_stack, case_stack, nesting_stack,
429         nesting_depth, emit_locus, set_file_and_line_for_stmt,
430         same_case_target_p, init_stmt_for_function, emit_nop,
431         expand_start_cond, expand_start_elseif, expand_start_else,
432         expand_elseif, expand_end_cond): Remove.
433         (preserve_subexpressions_p): Remove references to CFUN->STMT.
434         (expand_start_case, expand_end_case_type): Remove, merge into...
435         (expand_case): ... this one, including other bits from
436         expand_expr_real_1.  Inline same_case_target_p.  Turn members
437         of CASE_STACK into local variables.
438         (emit_case_bit_tests): Inline same_case_target_p.
439         (add_case_node): Add HEAD argument, return new head of the list,
440         do not handle default label here.
441         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
442         expand_start_elseif, current_nesting_level, expand_start_case,
443         expand_end_case_type, expand_end_case, add_case_node,
444         init_stmt_for_function, expand_elseif): Remove prototypes.
445         (expand_case): Add prototype.
446
447 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
448
449         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
450
451 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
452
453         * expr.c (var_rtx): Remove.
454         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
455         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
456         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
457         Abort.
458         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
459         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
460         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
461
462 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
463         Ayal Zaks <zaks@il.ibm.com>
464
465         * common.opt (freschedule-modulo-scheduled-loops): New flag.
466         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
467         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
468         when -freschedule-modulo-scheduled-loops flag is not specified.
469         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
470         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
471         More accurate placing of insn in row of partial schedule.
472         (ps_insn_find_column): New function.
473         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
474         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
475         (schedule_region): Use sched_is_disabled_for_current_region_p.
476         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
477
478 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
479
480         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
481         change.
482
483 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
484
485         * config/i386/i386.c (ix86_expand_clrmem): Properly call
486         gen_strset for 64bit target.
487
488 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
489
490         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
491
492 2004-08-07  Jason Merrill  <jason@redhat.com>
493
494         Make return in memory explicit.
495         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
496         (assign_parm_find_data_types): Remove code for old front end
497         invisible reference handling.
498         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
499         (expand_function_end): Likewise.
500         * gimplify.c (gimplify_return_expr): Handle a dereferenced
501         RESULT_DECL.
502         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
503         (declare_return_variable): Handle DECL_BY_REFERENCE.
504         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
505         (cp_genericize_r): Use convert_from_reference.
506         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
507         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
508
509         * c-common.c (c_warn_unused_result): Check TREE_USED before
510         warning about a CALL_EXPR with an unused value.
511
512 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
513
514         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
515         to the compiler.  Use -fshort-wchar by default.
516
517 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
518
519         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
520         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
521         threshhold.
522         * doc/invoke.texi (param): Document min-crossjump-insns.
523
524 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
525
526         PR c/13282
527         * c.opt (Wmissing-field-initializers): New option.
528         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
529         * c-typeck.c (pop_init_level): Guard the missing field warning with
530         warn_missing_field_initializers rather than extra_warnings.
531         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
532         some of the explanation from...
533         (-Wextra): ...here.  Say that the missing field warning can be
534         seperately controlled by -Wmissing-field-initializers.
535
536 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
537
538         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
539         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
540         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
541         * tree.def (ENTRY_VALUE_EXPR): Remove.
542
543 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
544
545         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
546         the places where it is actually needed.  Don't use repz; stosb
547         for -Os with sufficiently small constant sizes.
548         For sufficiently small repz; stos{l,q} repeat counts use a sequence
549         of stos{l,q} instructions instead.
550
551 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
552
553         PR tree-optimization/16807
554         * loop-iv.c (dump_iv_info): Dump invariants correctly.
555         (iv_subreg, iv_extend): Express value of invariant purely in
556         base field.
557
558 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
559
560         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
561         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
562
563 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
564
565         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
566         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
567         pre_dec_operand.
568         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
569         pattern until reload is finished to allow better code generation
570         and split them completely into separate instrunctions.
571         (*andsi3_split): New pattern.
572
573 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
574
575         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
576         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
577         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
578         * tree.h (handle_dll_attribute): Declare.  Test
579         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
580         * c-common.h (c_determine_visibility): Declare.
581         * c-common.c (c_determine_visibility): New function.
582         * c-decl.c (finish_decl): Use it.
583         (finish_function): Likewise.
584         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
585         zero, by default.  Use #if, not #ifdef, to test it.
586         * config/arm/arm.c (arm_attribute_table): Use
587         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
588         #if.
589         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
590         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
591         to 1.
592         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
593         * config/i386/i386.c (ix86_attribute_table): Use
594         handle_dll_attribute for dllimport/dllexport.  Test
595         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
596         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
597         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
598         it to 1.
599         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
600         with #if.
601         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
602         it to 1.
603         * doc/extend.texi (dllexport): Clarify and correct documentation.
604         (dllimport): Likewise.
605         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
606         handle_dll_attribute.
607
608 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
609
610         * tree-ssa-loop-manip.c: New file.
611         * Makefile.in (tree-ssa-loop-manip.o): Add.
612         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
613         Declare.
614         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
615         form.
616         (tree_ssa_loop_done): Verify loop closed ssa form.
617         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
618
619 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
620
621         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
622         pa_asm_output_aligned_local): New functions.
623         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
624         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
625         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
626         pa_asm_output_aligned_common.
627         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
628         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
629         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
630         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
631         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
632         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
633         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
634         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
635         common data.
636
637 2004-08-05  Andrew Pinski  <apinski@apple.com>
638
639         * objc/objc-act.c (build_objc_string_object): Mark the address
640         expression as constant.
641
642 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
643
644         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
645         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
646         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
647
648 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
649
650         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
651         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
652         out, and associated obsolete comments.
653
654 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
655
656         * tree.h (force_fit_type): Return a tree, take three flags.
657         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
658         TREE_CONSTANT_OVERFLOW here.
659         (int_const_binop, const_binop): Adjust.
660         (size_int_type): Do sign extension here.
661         (fold_convert_const, optimize_bit_field_compare,
662         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
663         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
664         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
665
666 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
667
668         PR tree-optimization/16864
669         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
670         for ssa names without default_def.
671
672 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
673
674         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
675         frame pointer, restore eax with an ebp-relative address.
676
677 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
678
679         PR 14516
680         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
681         * c-common.h (make_rtl_for_local_static): Delete.
682         * c-decl.c (shadow_tag_warned): Clean up comment.
683         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
684         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
685         * c-semantics.c (make_rtl_for_local_static): Delete.
686         * expr.c (init_block_move_fn): Use set_user_assembler_name.
687         (init_block_clear_fn): Likewise.
688         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
689         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
690         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
691         * tree.h (make_decl_rtl): Remove second parameter.
692         (set_user_assembler_name): New.
693         * varasm.c (set_user_assembler_name): New.
694         (make_decl_rtl): Remove second parameter.  Update callers in many
695         files.
696
697 2004-08-05  Adam Nemet  <anemet@lnxw.com>
698
699         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
700         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
701         to LynxOS 4.0.
702         * gthr-lynx.h: New file.
703         * config/lynx-ng.h: Remove file.
704         * config/lynx.h: Update to LynxOS 4.0.
705         * config/t-lynx: New file.
706         * config/i386/lynx-ng.h: Remove file.
707         * config/i386/lynx.h: Update to LynxOS 4.0.
708         * config/rs6000/lynxbase.h: Remove file.
709         * config/rs6000/lynx.h: Update to LynxOS 4.0.
710         * config/rs6000/t-lynx: New file.
711         * doc/install.texi (Options specification): Remove reference to
712         LynxOS from systems where --with-gnu-as makes a difference.
713
714 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
715
716         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
717         __UINTMAX_TYPE__.
718         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
719         __INTMAX_MAX__.
720         (c_cpp_builtins): Call it.
721         * doc/cpp.texi: Update.
722
723 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
724
725         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
726         cost.
727
728 2004-08-04  Jan Hubicka  <jh@suse.cz>
729
730         * basic-block.h (profile_staus): New global variable.
731         * cfg.c (profile_status): Declare.
732         (check_bb_profile): Break out from ....; use profile_status
733         (dump_flow_info): ... here.
734         * cfgbuild.c (find_basic_blocks): Set profile_status.
735         * cfgexpand.c (tree_expand_cfg): Likewise.
736         * predict.c (estimate_probability): Likewise.
737         * profile.c (branch_prob): Likewise.
738         * tree-cfg.c (build_tree_cfg): Likewise.
739         (dump_function_to_file): Use check_bb_profile.
740         * tree-pretty-print (dump_bb_header): Likewise.
741         * tree-profile.c (do_tree_profiling): Cleanup.
742
743 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
744
745         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
746         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
747         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
748         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
749         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
750         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
751         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
752         (ggc-none.o, errors.o): Move rule to generators section;
753         correct dependencies.
754         (min-insn-modes.o): Move rule to generators section; remove
755         unnecessary explicit command; correct dependencies.
756         (print-rtl.o, print-rtl1.o): Correct dependencies.
757         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
758         (mostlyclean): Update.
759
760         * errors.c: Include bconfig.h not config.h.  Correct comment.
761         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
762         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
763         * print-rtl.c: Don't include tm_p.h.
764
765         * rtl.h: Move forward-decl of struct function down where it's
766         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
767         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
768
769 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
770             Jeff Law  <law@redhat.com>
771
772         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
773         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
774         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
775         manipulate the duplicated ssa names.
776         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
777         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
778         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
779         New functions.
780         (release_ssa_name): Do not release ssa names that may have multiple
781         definitions.
782         * tree.h (release_ssa_name_force, mark_for_rewrite,
783         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
784         marked_ssa_names): Declare.
785         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
786         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
787         Update call to rewrite_ssa_into_ssa.
788
789 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
790
791         * defaults.h (TARGET_DECLSPEC): New macro.
792         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
793         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
794         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
795         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
796         __declspec support.
797         (TARGET_DECLSPEC): Define.
798         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
799         __declspec support.
800         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
801         __declspec support.
802         (TARGET_DECLSPEC): Define.
803         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
804         __declspec support.
805         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
806         support.
807         * doc/tm.texi (TARGET_DECLSPEC): Document.
808
809         * doc/extend.texi: Fix typo in comment.
810
811 2004-08-04  Paul Brook  <paul@codesourcery.com>
812
813         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
814         (TARGET_CXX): Use it.
815         * target.h (struct gcc_target): Add cdtor_returns_this.
816         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
817         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
818         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
819
820 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
821
822         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
823         low/high pair. Do range checking directly.
824         (interpret_integer): Adjust.
825
826 2004-08-04  Nick Clifton  <nickc@redhat.com>
827
828         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
829         GCC ABI.
830         * doc/invoke.texi: Document this new switch and also the -mrenesas
831         switch.
832
833 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
834
835         * cfglayout.c (insn_locators_initialize): Update the current
836         location before initializing a location.
837
838 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
839
840         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
841         (dbxout_function_end): Return after emitting the "Lscope" symbol
842         under the same conditions that this function formerly wasn't called.
843         Add explanatory comments.
844
845         PR 14860
846         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
847         on the new decl.
848
849         PR 13956
850         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
851         functions, broken out of dbxout_block.
852         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
853         stabs too, if it contains symbols.  Use the begin_label and
854         the Lscope label (emitted by dbxout_function_end) for the
855         range of this block.
856
857 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
858
859         * doc/install.texi: Update autoconf version requirements.
860
861 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
862
863         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
864         * recog.c (general_operand, immediate_operand, nonmemory_operand)
865         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
866         * regclass.c (record_reg_classes): Likewise.
867         * reload.c (find_reloads): Likewise.
868         * reload1.c (reload): Likewise.
869
870 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
871
872         * gensupport.c (init_md_reader_args_cb): Renamed from
873         init_md_reader_args.  Add third option, callback function for
874         parsing program-specific options.  Add diagnosis of incorrect
875         number of input files.
876         (init_md_reader): Fold into init_md_reader_args_cb.
877         (init_md_reader_args): Now a thin wrapper around
878         init_md_reader_args_cb.
879         * gensupport.h: Update prototypes.
880
881         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
882         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
883         * genrecog.c: No need to diagnose lack of an input file;
884         init_md_reader_args will handle it.
885         * genconditions.c: Likewise, and use init_md_reader_args.
886         * genconstants.c: Likewise, and no need to call read_md_rtx.
887
888 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
889
890         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
891         declarations.
892
893 2004-08-03  Mike Stump  <mrs@apple.com>
894
895         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
896         for frameworks.
897         * doc/invoke.texi (Darwin Options): Update to reflect above.
898
899 2004-08-03  Roger Sayle  <roger@eyesopen.com>
900
901         PR middle-end/16790
902         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
903         truncations, not just global truncations.
904
905 2004-08-03  Andrew Pinski  <apinski@apple.com>
906
907         PR bootstrap/16865
908         * loop-iv.c (simplify_using_assignment): Initialize lhs.
909
910 2004-08-03  Paul Brook  <paul@codesourcery.com>
911
912         * gcc/doc/install.texi: Document MPFR requirement.
913
914 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
915
916         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
917         and mmap() explicitly instead of relying on preset autoconf cache
918         variables.
919         * configure: Regenerate.
920
921 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
922
923         PR target/16570
924         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
925         to tmake_file.
926         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
927         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
928         to tmake_file.
929
930         * config/i386/t-gmm_malloc: New file.
931         * config/i386/t-pmm_malloc: Likewise.
932
933         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
934
935 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
936             Tanguy Fautrà <tfautre@pandora.be>
937
938         * config/i386/pmm_malloc.h: New file.
939
940 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
941
942         * config/i386/gmm_malloc.h: New file.
943
944 2004-08-03  Dale Johannesen  <dalej@apple.com>
945
946         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
947         * c-common.c: Include opts.h.
948         (c_common_get_alias_set): Fix check for a single input file.
949         * toplev.c: Remove current_file_decl.
950         * tree.h: Ditto.
951
952 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
953
954         * config.gcc (arm*-*-symbianelf*): New target.
955         * config/arm/symbian.h: New file.
956
957         * gthr-gnat.c: Add visibility #pragmas.
958         * gthr-gnat.h : Likewise.
959         * gthr.h: Likewise.
960         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
961         (__ffsDI2): Likewise.
962         (__clzSI2): Likewise.
963         (__ctzSI2): Likewise.
964         (__ctzDI2): Likewise.
965         (__popcountSI2): Likewise.
966         (__popcountDI2): Likewise.
967         (__paritySI2): Likewise.
968         (__parityDI2): Likewise.
969         * libgcc2.h: Add visibility #pragmas.
970         (__clzDI2): Add prototype.
971         (__clzSI2): Likewise.
972         (__ctzSI2): Likewise.
973         (__ffsDI2): Likewise.
974         (__ffsSI2): Likewise.
975         (__ctzDI2): Likewise.
976         (__popcountSI2): Likewise.
977         (__popcountDI2): Likewise.
978         (__paritySI2): Likewise.
979         (__parityDI2): Likewise.
980         * unwind-dw2-fde.h: Add visibility #pragmas.
981         * unwind.h: Likewise.
982
983 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
984             Dale Johannesen  <dalej@apple.com>
985             Roger Sayle  <roger@eyesopen.com>
986
987         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
988         constants more accurately.  Adjust costs for FMA instructions.
989         Add cases for most logical and float operations.  Recurse into
990         most operands.
991
992 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
993
994         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
995
996 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
997
998         * ra-build.c (conflicts_between_webs): For webs that cross a call add
999         conflicts to regs_invalidated_by_call.
1000
1001 2004-08-03  Paul Brook  <paul@codesourcery.com>
1002
1003         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
1004
1005 2004-08-03  Jan Hubicka  <jh@suse.cz>
1006
1007         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
1008         ARRAY_REF argument.
1009
1010 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
1011
1012         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
1013         arm968es, arm10e, arm1020e, arm1022e.
1014         * invoke.texi: Update list of ARM cores.
1015         * arm-tune.md: Regenerate.
1016
1017 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
1018
1019         * arm/gentune.sh: New file.
1020         * arm/t-arm: New file.
1021         * arm/arm-tune.md: New file (autogenerated).
1022         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
1023         * arm.md (attribute tune): Delete.  Include arm-tune.md.
1024
1025 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
1026
1027         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
1028         penultimate parameter.  All callers adjusted.
1029         (struct prefix_list): Remove used_flag_ptr.
1030         (find_a_file): Do not set *pl->used_flag_ptr.
1031         (warn_B, warn_std_ptr): Remove.
1032
1033 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
1034             Mostafa Hagog <mustafa@il.ibm.com>
1035
1036         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
1037
1038 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
1039
1040         * dwarf2out.c (output_call_frame_info): Don't change data format
1041         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
1042         label.  Use 'true' not '1'.
1043         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
1044         required.
1045
1046 2004-08-02  Gabriel Dos Reis  <gdr@cs.tamu.edu>
1047
1048         * gdbinit.in: Reflect previous changes to rtunion_def.
1049
1050 2004-08-02  Roger Sayle  <roger@eyesopen.com>
1051
1052         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
1053         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
1054
1055 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1056
1057         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
1058         vec_p_reserve.
1059         * langhooks.h (lang_hooks::builtin_function): Rename parameter
1060         from "class" to "bt_class".
1061
1062 2004-08-02  Paul Brook  <paul@codesourcery.com>
1063
1064         PR rtl-optimization/15068
1065         * flow.c (init_propagate_block_info): Check condition is reversible.
1066
1067 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1068
1069         * gengtype.h (options::info): Change type to const char *.
1070         (enum gc_used_enum): Move out of struct type scope.
1071         * gengtype.c (create_option): Convert initializer for option::info to
1072         appropiate type.
1073         (adjust_field_type, walk_type, write_func_for_structure,
1074         write_root, write_roots): Remove pointless cast.
1075
1076 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
1077
1078         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
1079
1080 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1081
1082         * rtl.h (union rtunion_def): Have all members  start with the
1083         prefix "rt_".
1084         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
1085         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
1086         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
1087         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
1088         access.
1089         * gengtype.c (adjust_field_rtx_def): Likewise.
1090         * rtlanal.c (loc_mentioned_in_p): Likewise.
1091
1092 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
1093
1094         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
1095         Replace uses of mips/elf64.h with mips/elf.h
1096         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
1097         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
1098         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
1099         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
1100         (HANDLE_SYSV_PRAGMA): Delete.
1101         (ASM_OUTPUT_DEF): Fix formatting.
1102         * config/mips/elf64.h: Delete.
1103
1104 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
1105
1106         * config/ia64/ia64.c (got_symbolic_operand): Do require a
1107         symbol+offset operand to have its offset be zero mod 0x3fff
1108         when GOT entries are in use.  Clarify logic in SYMBOL_REF
1109         case.  Clarify comments.
1110         (ia64_expand_load_address): Split a symbol+offset load when
1111         the offset is nonzero mod 0x3fff, not 0x1fff.
1112
1113 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
1114
1115         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
1116         if trying to *store* to a non-offsettable address.
1117         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
1118         a nonoffsettable address.
1119         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
1120         Clean up.
1121         (movti_string): Don't move GPRs to a nonoffsettable address.
1122         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
1123
1124 2004-08-02  Ben Elliston  <bje@au.ibm.com>
1125
1126         PR target/16155
1127         * config/rs6000/altivec.h: Replace typeof with __typeof__.
1128
1129 2004-08-01  Richard Henderson  <rth@redhat.com>
1130
1131         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
1132         variable sized types.
1133
1134 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
1135
1136         * doc/invoke.texi: In the MIPS options section, remove the passage
1137         saying that -mexplicit-relocs is usually disabled for -mabicalls
1138         -fno-unit-at-a-time.
1139         * config/mips/mips.c (override_options): Remove the code that enforced
1140         this rule.
1141
1142 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
1143
1144         * config/mips/mips.md (cprestore): Provide two alternatives, one for
1145         an in-range offset and one for an out-of-range offset.  Wrap the latter
1146         in .set macro/.set nomacro if it's inside a .set nomacro block.
1147
1148 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
1149
1150         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
1151         (mips_restore_gp): Declare.
1152         * config/mips/mips.c (mips_add_offset): Add a scratch register
1153         argument.  Reimplement in rtl only, reusing MIPS16 logic from
1154         mips_output_mi_thunk.
1155         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
1156         to mips_add_offset.
1157         (mips_gp_save_slot): Delete.
1158         (mips_restore_gp): New function.
1159         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
1160         * config/mips/mips.md (exception_receiver): Turn into a
1161         define_insn_and_split.  Use mips_restore_gp to do the split.
1162         (call_internal, call_value_internal, call_value_multiple_internal): Use
1163         mips_restore_gp to restore $gp.
1164
1165 2004-07-31  Andrew Pinski  <apinski@apple.com>
1166
1167         PR other/16842
1168         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
1169
1170 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1171
1172         * c-decl.c (diagnose_mismatched_decls): Give error for external
1173         redeclaration of identifier declared with no linkage, not just
1174         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
1175         error for redeclaration with no linkage.
1176
1177 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
1178             Fariborz Jahanian <fjahanian@apple.com>
1179
1180         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
1181         non-offsettable addresses even for DImode.
1182         (rs6000_split_multireg_move): Cope with non-offsettable addresses
1183         being moved into multiple GPRs.
1184
1185         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
1186         to 64.
1187         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
1188         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
1189         to 128.
1190         * config/rs6000/darwin-ldouble.c (isless): New macro.
1191         (inf): New macro.
1192         (nonfinite): New macro.
1193         (FPKINF): Delete.
1194         (_xlqadd): Completely rewrite.
1195         (_xlqmul): Correct overflow handling.
1196         (_xlqdiv): Correct overflow handling.
1197         * config/rs6000/darwin-ldouble-format: New file.
1198
1199 2004-07-30  Roger Sayle  <roger@eyesopen.com>
1200             Richard Henderson  <rth@redhat.com>
1201
1202         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
1203         9 into the equivalent lea instruction.
1204
1205 2004-07-30  Richard Henderson  <rth@redhat.com>
1206
1207         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
1208         with DECL_INITIAL if fb_lvalue.
1209         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
1210         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
1211         with <Cxxx>.
1212         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
1213
1214 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
1215
1216         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
1217         pointer escapes through a function call, assume that the
1218         callee will dereference it.
1219         (add_pointed_to_var): Assume that VALUE is always an
1220         ADDR_EXPR.
1221         (collect_points_to_info_r): Only call add_pointed_to_var if
1222         the value is an ADDR_EXPR.
1223
1224 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
1225
1226         * tree-ssa-alias.c (create_alias_map_for): Do not get the
1227         alias set of the inner type of ARRAY_TYPEs.
1228
1229 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
1230
1231         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
1232         setting a non-register to UNDEFINED right before the call to
1233         set_lattice_value.
1234
1235 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1236
1237         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
1238
1239 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
1240
1241         * tree-ssa.c (verify_flow_sensitive_alias_info): When
1242         comparing points-to sets of different pointers, make sure the
1243         second pointer is actually referenced in the code.
1244
1245 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
1246
1247         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
1248         (got_symbolic_operand): Remove unreachable code.
1249         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
1250         setjmp_operand; add entry for tls_symbolic_operand.
1251         * config/ia64/ia64-protos.h: Remove all prototypes of
1252         predicate functions.
1253
1254 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
1255
1256         * c-common.h (lang_post_pch_load): New variable.
1257         * c-pch.c (lang_post_pch_load): Define it.
1258         (c_common_read_pch): Use it.
1259         * cgraphunit.c (record_call_1): Give the front end a chance to
1260         record additional needed entities when a variable is marked as
1261         needed.
1262         * tlink.c (recompile_files): Robustify.
1263         (scan_linker_output): If a symbol is assigned to a file,
1264         but after recompilation is not present there, issue an error
1265         message.
1266
1267 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1268
1269         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
1270         Take orig_loop argument and pass it to set_level.
1271         (schedule_sm): Pass the correct orig_loop to force_move_till.
1272
1273 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1274
1275         * cfgloop.c (update_latch_info): Update dominator of the new block.
1276         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
1277         info.
1278         * dominance.c (verify_dominators): Check that the dominance tree is
1279         connected.
1280         (recount_dominator): Ignore unreachable blocks.
1281         (iterate_fix_dominators): Cleanup old dominance information before
1282         recomputing it.
1283
1284 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
1285
1286         * tree-ssa-operands.c (get_expr_operands): Revert changes
1287         to ADDR_EXPR processing introduced by:
1288             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1289             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1290
1291 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1292
1293         * doc/implement-c.texi: Add C90 subclause references.  Point to
1294         preprocessor documentation instead of duplicating it.  Add points
1295         only present in C90.  Fill in documentation for all points.
1296
1297 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1298
1299         * pa.c (output_movb): Correct typo.
1300
1301 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
1302
1303         * ra.h (single_reg_in_regclass): Declare.
1304         * ra.c (single_reg_in_regclass): Define.
1305         (first_hard_reg): New.
1306         (init_ra): Initialize single_reg_in_regclass.
1307         * ra-colorize.c (ok_class): New.
1308         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
1309
1310 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
1311
1312         * gcov-io.h: Allow zero tag as EOF indicator.
1313         (gcov_is_eof): Remove.
1314         (gcov_truncate): Remove.
1315         * gcov-io.c (gcov_seek): Always SEEK_SET.
1316         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
1317         EOF tag.
1318         * coverage.c (read_counts_file): Don't use gcov_is_eof.
1319         * gcov-dump.c (dump_file): Likewise.
1320         * gcov.c (read_graph_file, read_count_file): Likewise.
1321
1322         * c-decl.c (complete_array_type): Don't gratuitously copy
1323         maxindex.  Check it always has a type.
1324
1325 2004-07-29  Steven Bosscher  <stevenb@suse.de>
1326
1327         * rtl.c (currently_expanding_to_rtl): New.
1328         * rtl.h (currently_expanding_to_rtl): Export it.
1329         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
1330
1331         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
1332         inliner hack.
1333         * config/sh/sh.c: Replace rtx_equal_function_value_matters
1334         with currently_expanding_to_rtl.
1335         * config/sh/sh.md: Likewise.
1336         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
1337
1338 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
1339
1340         Introduce sh2a support.
1341         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
1342         * config.gcc: Build multilibs for sh2a and sh2a-single by
1343         default.
1344         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
1345         default.  Split their tests out of the corresponding SH4
1346         multilibs.
1347         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
1348         multilibs for SH2a.
1349         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
1350         * config.gcc: Handle sh2a multilibs and cpu selection.
1351         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
1352         * config/sh/t-mlib-sh2a: New.
1353         * config/sh/t-mlib-sh2a-nofpu: New.
1354         * config/sh/t-mlib-sh2a-single: New.
1355         * config/sh/t-mlib-sh2a-single-only: New.
1356         2004-07-09  Nick Clifton  <nickc@redhat.com>
1357         Issue 43400
1358         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
1359         -ml and -m2a are used together.
1360         2004-03-23  DJ Delorie  <dj@redhat.com>
1361         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
1362         when we have a double-sized FPU.
1363         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
1364         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
1365         is set.
1366         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
1367         -msh2a-single and -msh2a-single-only
1368         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
1369         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
1370         is set.
1371         2004-02-20  DJ Delorie  <dj@delorie.com>
1372         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
1373         2004-02-20  Fred Fish <fnf@redhat.com>,
1374         Corinna Vinschen <vinschen@redhat.com>
1375         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
1376         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
1377         2004-02-18  DJ Delorie  <dj@redhat.com>
1378         * config/sh/sh.c (broken_move): Add support for movi20.
1379         * config/sh/sh.h: Likewise.
1380         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
1381         * config/sh/sh.md (udivsi3_sh2a): New.
1382         (udivsi3): Call it.
1383         (divsi3_sh2a): New.
1384         (divsi3): Call it.
1385         (mul_r): New.
1386         (ashlsi3_sh2a): New.
1387         (ashrsi3_sh2a): New.
1388         (lshrsi3_sh2a): New.
1389         (movsi_i): Disable for sh2a.
1390         (movsi_ie): Add movi20.
1391         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
1392         sh2a, for -m2a-nofpu mode.
1393         2004-02-13  DJ Delorie  <dj@redhat.com>
1394         * config/sh/lib1funcs.asm: Handle double vs single better.
1395         * config/sh/sh.h: Likewise.
1396         2004-02-09  DJ Delorie  <dj@redhat.com>
1397         * config/sh/crt1.asm: Add support for sh2a.
1398         * config/sh/elf.h: Likewise.
1399         * config/sh/lib1funcs.asm: Likewise.
1400         * config/sh/sh.c: Likewise.
1401         * config/sh/sh.md: Likewise.
1402         * config/sh/sh.h: Likewise.
1403         * config/sh/t-sh: Likewise.
1404
1405 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
1406
1407         * config/frv/frv.md (movqi_internal, movhi_internal,
1408         movsi_internal): Add backup alternatives for memory inputs.
1409
1410 2004-07-28  Matt Austern  <austern@apple.com>
1411
1412         * config/darwin.c (darwin_one_byte_bool): New global variable.
1413         * config/darwin.h (darwin_one_byte_bool): Declare.
1414         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
1415         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
1416         value of darwin_one_byte_bool.
1417         * doc/invoke.texi: Document -mone-byte-bool flag.
1418
1419 2004-07-28  Eric Christopher  <echristo@redhat.com>
1420
1421         * c-common.c (c_common_unsafe_for_reeval): Delete.
1422         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
1423         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
1424         * calls.c (fix_unsafe_tree): Delete.
1425         (expand_call): Delete code which used above.
1426         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
1427         * expr.c (expand_expr_real_1): Ditto.
1428         * fold-const.c (non_lvalue): Ditto.
1429         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
1430         (lhd_unsafe_for_reeval): Ditto.
1431         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
1432         * langhooks.h (unsafe_for_reeval): Ditto.
1433         (unsave_expr_now): Adjust comment.
1434         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
1435         (estimate_num_insns_1): Ditto.
1436         * tree-pretty-print.c (dump_generic_node): Ditto.
1437         * tree.c (expr_align): Ditto.
1438         (unsave_expr): Delete.
1439         (unsafe_for_reeval): Ditto.
1440         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
1441         * tree.def (UNSAVE_EXPR): Delete.
1442         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
1443
1444 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
1445
1446         * tree.h (enum tls_model): Move ...
1447         * coretypes.h: ... here.
1448
1449 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
1450
1451         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
1452
1453 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
1454
1455         * cse.c (validate_canon_reg): New function, split out from...
1456         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
1457
1458 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
1459
1460         * tree-ssa-alias.c (maybe_create_global_var): Don't just
1461         return if .GLOBAL_VAR has been created.
1462
1463 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
1464
1465         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
1466         every variable that may have aliases, not just tags.
1467
1468 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
1469
1470         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
1471         move_from_CR_eq_bit.
1472         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
1473
1474
1475         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
1476         e500_flip_eq_bit.
1477
1478         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
1479         output_e500_flip_eq_bit.
1480
1481         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
1482         output_e500_flip_eq_bit.
1483         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
1484         output_e500_flip_eq_bit.
1485         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
1486         (print_operand): case D.  Get to EQ bit.
1487
1488 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
1489
1490         * gcov.c (function_summary): Add missing \n.
1491
1492 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
1493
1494         Introduce sh4a support.
1495         * config.gcc: Handle sh4a multilibs and cpu selection.
1496         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
1497         * config/sh/t-mlib-sh4a: New.
1498         * config/sh/t-mlib-sh4al: New.
1499         * config/sh/t-mlib-sh4a-nofpu: New.
1500         * config/sh/t-mlib-sh4a-single: New.
1501         * config/sh/t-mlib-sh4a-single-only: New.
1502         2004-02-20  DJ Delorie  <dj@redhat.com>
1503         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
1504         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
1505         2003-08-22  Eric Christopher  <echristo@redhat.com>
1506         * config/sh/sh4a.md: Update for chip errata.
1507         2003-08-07  Eric Christopher  <echristo@redhat.com>
1508         * config/sh/sh4a.md: New file. sh4a processor description.
1509         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
1510         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
1511         of -m4a-nofpu.
1512         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
1513         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
1514         * doc/invoke.texi (SH Options): Document -m4al.
1515         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
1516         * config/sh/sh.c (expand_block_move): Remove commented-out code
1517         checked in by mistake.
1518         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
1519         single elements from SFmode vectors.
1520         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
1521         register.
1522         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
1523         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
1524         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
1525         sh_fsca_int2sf): Remove variable declarations.
1526         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
1527         sh_fsca_int2sf): New functions.
1528         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
1529         sh_fsca_int2sf_rtx): New static variables.
1530         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
1531         sh_fsca_int2sf): Declare.
1532         * config/sh/sh.md: Adjust.
1533         * doc/invoke.texi (SH Options): Document new options.
1534         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
1535         compatibility from SH4 code.
1536         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
1537         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
1538         early.
1539         (memory_movsrc_operand): Renamed to...
1540         (unaligned_load_operand): ... this.  Simplified.
1541         * config/sh/sh.h (PREDICATE_CODES): Adjust.
1542         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
1543         input operand to SImode, and adjust the others.  Introduce
1544         post-increment by peephole.
1545         * config/sh/sh.c (expand_block_move): Give the target address the
1546         same mode as the temp reg.
1547         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
1548         copying.
1549         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
1550         Introduce support for SH4a.
1551         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
1552         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
1553         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
1554         sh_fsca_int2sf): New.
1555         (sh_init_builtins): Initialize them.
1556         (print_operand): Support `d'.
1557         (expand_block_move): Use movua if src is misaligned.
1558         (memory_movsrc_operand): New.
1559         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
1560         and one of the SH4 macros.
1561         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
1562         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
1563         SELECT_SH4A_SINGLE): New.
1564         (TARGET_NONE): Add SH4A_BIT.
1565         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
1566         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
1567         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
1568         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
1569         (enum processor_type): Added PROCESSOR_SH4A.
1570         (PREDICATE_CODES): Add memory_movsrc_operand.
1571         * config/sh/sh.md: Removed unused variables.
1572         (attr cpu): Add sh4a.
1573         (attr type): Add movua, fsrra and fsca.
1574         (prefetch): New, for SH4.
1575         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
1576         (toggle_sz): Set type to fp.
1577         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
1578         (movua, extv, extzv): New.
1579         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
1580         and 4a-single-only.
1581
1582 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
1583
1584         * tree-optimize.c (init_tree_optimization_passes): Schedule
1585         pass_may_alias right after the program is renamed into SSA.
1586         * tree-pass.h (PROP_alias): Define.
1587         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
1588         * tree-sra.c (pass_sra): Likewise.
1589         * tree-ssa-ccp.c (pass_ccp): Likewise.
1590         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
1591         * tree-ssa-dce.c (pass_dce): Likewise.
1592         * tree-ssa-dom.c (pass_dominator): Likewise.
1593         * tree-ssa-dse.c (pass_dse): Likewise.
1594         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
1595         * tree-ssa-loop-ch.c (pass_ch): Likewise.
1596         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1597         * tree-ssa-pre.c (pass_pre): Likewise.
1598         * tree-tailcall.c (pass_tail_recursion): Likewise.
1599         * tree-ssa.c (pass_redundant_phi): Likewise.
1600         * tree-ssa-alias.c (aliases_computed_p): Remove.
1601         Update all users.
1602         (init_alias_info): Do not mark all type tags for renaming
1603         unconditionally.
1604         Clear may_aliases from every symbol.
1605         (setup_pointers_and_addressables): If a pointer has not been
1606         dereferenced and it had a type tag, clear it and mark the old
1607         tag for renaming.
1608
1609 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
1610
1611         PR tree-optimization/16705
1612         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
1613         .GLOBAL_VAR.
1614
1615 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1616
1617         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
1618         check.
1619
1620         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
1621         don't make another one.
1622
1623         PR optimization/15077
1624         * function.h (struct function): Add field saved_static_chain_decl.
1625         Fix comment for static_chain_decl.
1626         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
1627         * tree-inline.h (save_body): Add new arg.
1628         * tree-optimize.c (tree_rest_of_compilation): Handle saving
1629         static_chain_decl.
1630
1631 2004-07-27  Richard Henderson  <rth@redhat.com>
1632
1633         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
1634         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
1635         is_gimple_addressable.
1636         * tree-gimple.c (is_gimple_addressable): Rename from
1637         is_gimple_addr_expr_arg; accept INDIRECT_REF.
1638         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
1639         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
1640         rename to is_gimple_addressable.
1641
1642 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
1643
1644         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
1645
1646 2004-07-27  Richard Henderson  <rth@redhat.com>
1647
1648         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
1649         before rounding.
1650
1651 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
1652
1653         * libgcc2.c: Change all conditionals testing
1654         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
1655         * libgcc2.h: Likewise.
1656         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
1657         TYPE_PRECISION of float80_type to 80.
1658         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
1659         of fpreg_type and float80_type to 80.
1660         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
1661         * config/m68k/netbsd-elf.h:
1662         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
1663         to evaluate to 80 whenever they would formerly have evaluated to 96.
1664         * config/i386/sco5.h: Remove unnecessary redefinition of
1665         LONG_DOUBLE_TYPE_SIZE.
1666         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
1667         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
1668         XFmode, with a bitsize of 80.  Update commentary.
1669         * config/ia64/ia64-modes.def: Likewise.
1670         * config/m68k/m68k-modes.def: Likewise.
1671
1672 2004-07-27  Steven Bosscher  <stevenb@suse.de>
1673
1674         * cfgexpand.c (tree_expand_cfg): Fix comment.
1675
1676         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
1677         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
1678         Remove.
1679         (prepare_function_start): Don't set rtx_equal_function_value_matters.
1680         * integrate.c (copy_rtx_and_substitute): Don't test for it.
1681         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
1682         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
1683         here again.  Update leading comment.
1684         * rtl.c (rtx_equal_function_value_matters): Remove.
1685         (rtx_equal_p): Don't test for it.
1686         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
1687         Likewise.
1688
1689         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
1690         * rtl.c (note_insn_name): Likewise.
1691         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
1692         * final.c (final_scan_insn): Likewise.
1693
1694         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
1695         * passes.c (rest_of_handle_eh): Do it here.
1696
1697         * stmt.c (struct nesting): Remove struct nesting block member.
1698         (struct stmt_status): Remove x_block_start_count field.
1699         (current_block_start_count): Remove.
1700
1701 2004-07-27  Brian Booth  <bbooth@redhat.com>
1702
1703         * tree-optimize.c (register_one_dump_file): Update condition that uses
1704         static_pass_number.
1705         (dup_pass_1): Replace with...
1706         (next_pass_1): This.
1707         (NEXT_PASS): Call next_pass_1.
1708         (DUP_PASS): Remove.
1709         (init_tree_optimization_passes): Remove uses of DUP_PASS.
1710         (execute_one_pass): Update condition that uses
1711         static_pass_number.
1712         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
1713         integer.
1714
1715 2004-07-27  Nick Clifton  <nickc@redhat.com>
1716
1717         * config/m32r/m32r.c: Include integrate.h in order to get the
1718         prototype for get_hard_reg_initial_val().
1719
1720         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
1721         and tidy up indentation.
1722         (final_presence_set): Use absence_set instead, so that if there is
1723         nothing in the "o" pipe the "s" pipe can be scheduled.
1724
1725 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
1726
1727         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
1728         don't have PT_VARS nor PT_MALLOC set.
1729         Clear name tag from pointers that have not been dereferenced.
1730         (set_pt_anything, set_pt_malloc): Forward declare.
1731         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
1732         not type compatibility when determining if a pointer can be
1733         copy propagated.
1734
1735 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
1736
1737         * expr.h (canonicalize_condition, get_condition): Add an int argument.
1738         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
1739         it to check whether the condition is still valid at the jump insn.
1740         * ifcvt.c (noce_get_condition): Likewise.
1741         (noce_get_alt_condition): Update call to canonicalize_condition.
1742         * loop-iv.c (simplify_using_initial_values): Update call to
1743         get_condition.  Remove FIXME.
1744         (check_simple_exit): Update call to get_condition.
1745         * loop-unswitch.c (may_unswitch_on): Likewise.
1746         * loop.c (check_dbra_loop): Likewise.
1747         (canonicalize_condition, get_condition): Add an argument to say whether
1748         the condition must still be valid at INSN.
1749         (get_condition_for_loop): Update call to get_condition.  Require that
1750         the condition be valid at INSN.
1751         * predict.c (estimate_probability): Update call to get_condition.
1752         Remove unused earliest parameter.
1753         (expected_value_to_br_prob): Update call to canonicalize_condition.
1754
1755 2004-07-26  Eric Christopher  <echristo@redhat.com>
1756
1757         * tree-dfa.c (add_referenced_var): Register initializers of global
1758         variables.
1759
1760 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
1761
1762         * config/i386/i386.c (function_arg): Always treat 8-
1763         and 16-byte wide vectors the same, even if MMX/SSE
1764         are disabled.
1765         (contains_128bit_aligned_vector_p): Add comment.
1766
1767 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
1768
1769         * ra.h (enum node_type): Rename to:
1770         (enum ra_node_type).
1771         * ra-colorize.c: Likewise.
1772
1773 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
1774
1775         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
1776         after simplifying the jump.
1777
1778 2004-06-26  Richard Henderson  <rth@redhat.com>
1779
1780         * calls.c (combine_pending_stack_adjustment_and_call): Make
1781         preferred_unit_stack_boundary argument unsigned.  Make
1782         unadjusted_alignment unsigned.
1783         (expand_call): Make preferred_stack_boundary and
1784         preferred_unit_stack_boundary variables unsigned.
1785         * function.c (assign_stack_local_1): Make alignment unsigned.
1786         * function.h (struct function): Make stack_alignment_needed,
1787         preferred_stack_boundary unsigned.
1788         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
1789         (ix86_compute_frame_layout): Make stack_alignment_needed,
1790         preferred_alignment variables unsigned.
1791         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
1792
1793 2004-07-26  Tom Tromey  <tromey@redhat.com>
1794
1795         * tree.h: Fix typo in comment.
1796
1797 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
1798
1799         PR bootstrap/12804
1800         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
1801         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
1802         (ggc_free): Remove incorrect freeing.
1803         (sweep_pages): Advance PP for large pages.  Fix indentation.
1804
1805 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
1806
1807         PR rtl-optimization/16643
1808         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
1809         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
1810         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
1811         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
1812         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
1813         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1814         * rtl.h (tracer): Add a flags parameter.
1815         * tracer.c (tracer): Pass it to cfg_layout_initialise.
1816         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
1817         (rest_of_handle_reorder_blocks): Update calls to tracer and
1818         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
1819         (rest_of_handle_tracer): Pass 0 to tracer.
1820         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
1821
1822 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
1823
1824         PR target/16239
1825         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
1826         f->f.
1827
1828 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
1829
1830         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
1831         (BINFO_BASE_ACCESS): Adjust.
1832         (BINFO_BASE_ACCESS_APPEND): New.
1833         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
1834         * dbxout.c (dbxout_type): Adjust binfo access accessing.
1835         * dwarf2out.c (gen_member_die): Likewise.
1836         * tree-dump.c (deque_and_dump): Likewise.
1837
1838 2004-07-26  Falk Hueffner  <falk@debian.org>
1839
1840         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
1841         costs.
1842
1843 2004-07-25  Roger Sayle  <roger@eyesopen.com>
1844
1845         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
1846         value off of the stack if TARGET_USE_FFREEP.
1847
1848 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
1849
1850         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
1851         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
1852         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
1853         check on invocation of XRESIZEVEC ().
1854
1855 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
1856
1857         * c-common.c (disable_builtin_function): Rename variable n to
1858         new_disabled_builtin.
1859         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
1860         Rename local variable old to old_decl.
1861         * gensupport.c (shift_output_template): Rename parameter old to src.
1862         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
1863         old_rtx and newx to new_rtx.
1864
1865 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
1866
1867         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
1868         of c-pragma.h.
1869         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
1870         enum cpp_ttype.
1871         * c-lex.c: Likewise.
1872
1873 2004-07-25  Roger Sayle  <roger@eyesopen.com>
1874
1875         * fold-const.c (constant_boolean_node): Make extern.
1876         (make_range): Wrap long lines.
1877         (fold_cond_expr_with_comparison): Remove unnecessary call to
1878         pedantic_non_lvalue.  Add missing calls to fold_convert.
1879         (fold_truthop): Add missing calls to fold_convert.
1880         (fold): Likewise.
1881         * tree.h (constant_boolean_node): Add prototype here.
1882         * builtins.c (expand_builtin_strncmp): Add missing calls to
1883         fold_convert.
1884         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1885         Call fold_convert and constant_boolean_node to correct types.
1886         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
1887         missing call to fold_convert to correct types.
1888
1889 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
1890             Brian Ryner  <bryner@brianryner.com>
1891
1892         PR c++/9283
1893         PR c++/15000
1894         * c-common.c (c_common_attribute_table): Allow
1895         handle_visibility_attribute to be called for types.
1896         (handle_visibility_attribute) When given a type, set the visibility
1897         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
1898         so that we can check later whether the attribute was present. Added
1899         warning if attribute applied to non class type.
1900         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
1901         decls and checking that they are consistent.
1902         * common.opt: Added -fvisibility.
1903         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
1904         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
1905         * flags.h, tree.h: Added assorted support defines for overall patch
1906         * opts.c: Added parsing support for -fvisibility.
1907         * tree.c (build_decl): Set visibility for all decls to be whatever
1908         is in force at that time.
1909         * varasm.c (default_binds_local_p_1): Reworked logic determining
1910         when to make a symbol locally bound.
1911         * doc/invoke.texi: Added documentation for -fvisibility and
1912         -fvisibility-inlines-hidden.
1913
1914 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1915
1916         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
1917         * c-common.c: Add missing casts from void * to other types.
1918         * c-decl.c: Likewise.
1919         * c-format.c: Likewise.
1920         * c-lex.c: Likewise.
1921         * c-pragma.c: Likewise.
1922         * c-typeck.c: Likewise.
1923         * defaults.h: Likewise.
1924         * genconstants.c: Likewise.
1925         * gengtype-lex.l: Likewise.
1926         * genmodes.c: Likewise.
1927         * read-rtl.c: Likewise.
1928         * rtl.c: Likewise.
1929
1930 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1931
1932         * bitmap.c: Use type-safe memory allocation macros from libiberty.
1933         * c-common.c: Likewise.
1934         * c-decl.c: Likewise.
1935         * c-lang.c: Likewise.
1936         * c-lex.c: Likewise.
1937         * c-opts.c: Likewise.
1938         * c-parse.in: Likewise.
1939         * c-typeck.c: Likewise.
1940         * genconditions.c: Likewise.
1941         * gengtype-lex.l: Likewise.
1942         * gengtype-yacc.y: Likewise.
1943         * gengtype.c: Likewise.
1944         * genmodes.c: Likewise.
1945         * gensupport.c: Likewise.
1946         * read-rtl.c: Likewise.
1947         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
1948         htab_find_slot().
1949
1950 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1951
1952         * c-decl.c (groktypename, groktypename_in_param_context): Rename
1953         variable typename to type_name.
1954         * c-lex.c (interpret_float): Likewise.
1955
1956 2004-07-25  Roger Sayle  <roger@eyesopen.com>
1957
1958         * convert.c (convert_to_real, convert_to_integer,
1959         convert_to_complex): Replace calls to build with calls to buildN.
1960         * coverage.c (tree_coverage_counter_ref): Likewise.
1961         * dojump.c (do_jump): Likewise.
1962         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
1963         * emit-rtl.c (component_ref_for_mem_expr,
1964         set_mem_attributes_minus_bitpos): Likewise.
1965         * explow.c (update_nonlocal_goto_save_area): Likewise.
1966         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
1967         expand_mult_add): Likewise.
1968         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
1969         store_constructor, get_inner_reference, expand_expr_real_1,
1970         try_casesi, try_tablejump): Likewise.
1971         * function.c (expand_function_start): Likewise.
1972         * stmt.c (emit_case_bit_tests, expand_end_case_type,
1973         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
1974         * stor-layout.c (place_union_field, layout_type): Likewise.
1975         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
1976         * varasm.c (copy_constant): Likewise.
1977
1978 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1979
1980         * c-common.c: Rename all identifiers named `new'.
1981         * c-decl.c: Likewise.
1982         * gensupport.c: Likewise.
1983         * simplify-rtx.c: Likewise.
1984         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
1985         with XNEW().
1986         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
1987         with XNEWVEC().
1988
1989 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
1990
1991         PR c/15360
1992         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
1993         declarations until after calling pushdecl.
1994         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
1995         "extern" and not on whether the declaration is initialized.
1996
1997 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
1998
1999         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
2000         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
2001         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
2002         "cpplib.h", "c-pragma.h", "c-common.h".
2003         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
2004         (solaris_register_pragmas): New functions.
2005         * config/sol2-protos.h: New file.
2006         * config/sol2.c: New file.
2007         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
2008         (REGISTER_TARGET_PRAGMAS): New macros.
2009         (solaris_pending_aligns, solaris_pending_inits)
2010         (solaris_pending_finis): New variables.
2011         * config/t-sol2 (sol2-c.o): Update dependencies.
2012         (sol2.o): New rule.
2013         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
2014         SUBTARGET_INSERT_ATTRIBUTES.
2015         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
2016         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
2017         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
2018         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
2019         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
2020         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
2021         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
2022         * config/sparc/sparc.c (sparc_attribute_table): New.
2023         (TARGET_INSERT_ATTRIBUTES): Define in terms of
2024         SUBTARGET_INSERT_ATTRIBUTES.
2025         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
2026         is defined.
2027         * doc/extend.texi (Solaris Pragmas): New section.
2028
2029 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2030
2031         * c-common.c: Rename all identifiers named `class' to `cl'.
2032         * c-common.h: Likewise.
2033         * c-parse.in: Likewise.
2034         * c-typeck.c: Likewise.
2035         * genmodes.c: Likewise.
2036         * real.c: Likewise.
2037         * real.h: Likewise.
2038         * recog.c: Likewise.
2039         * recog.h: Likewise.
2040         * regrename.c: Likewise.
2041         * tree.h: Likewise.
2042         * c-common.c (builtin_function_2): Change type of 5th parameter from
2043         int to enum built_in_function. Change type of 8th parameter from int
2044         to bool.
2045         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
2046         with GGC_CNEW().
2047         * c-typeck.c (convert_arguments): Change type of formal_prec from
2048         int to unsigned int.
2049         * genmodes.c (blank_mode): Make a few negative constants unsigned.
2050         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
2051         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
2052         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
2053         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
2054         iterator to for_all_modes () instead of an enum because enums can't
2055         be incremented in C++.
2056
2057
2058 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
2059
2060         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
2061         hard registers.
2062
2063 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2064
2065         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
2066         Handle ARRAY_RANGE_REF like ARRAY_REF.
2067
2068 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2069
2070         * c-typeck.c (digest_init): Don't allow arrays of signed or
2071         unsigned variants of wchar_t to be initialized by wide string
2072         constants.  Do allow arrays of enumerated types compatible with
2073         wchar_t to be initialized by wide string constants.  Refine tests
2074         distinguishing wide and narrow strings and arrays.  Give specific
2075         error for arrays of other integer types initialized by string
2076         constants.
2077         (output_init_element, process_init_element): Check for
2078         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
2079         initializing with string constants.
2080
2081 2004-07-25  Richard Henderson  <rth@redhat.com>
2082
2083         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
2084         on the RESULT_DECL.
2085         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2086         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
2087         DECL_IGNORED_P to new decl.
2088
2089 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
2090
2091         * config/ia64/ia64.c (general_xfmode_operand)
2092         (destination_xfmode_operand): Delete.
2093         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
2094         * config/ia64/ia64.md (*movxf_internal): Use general_operand
2095         and destination_operand.
2096
2097 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
2098
2099         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
2100         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
2101
2102 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
2103             Zack Weinberg  <zack@codesourcery.com
2104
2105         PR 16684
2106         * c-decl.c (diagnose_mismatched_decls): Don't issue a
2107         redundant-declaration warning the first time a builtin is
2108         declared explicitly.
2109
2110 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2111
2112         * tree.h (staticp): Change return type to bool.
2113
2114 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2115
2116         * c-common.c (c_staticp): Last episode of the staticp saga.
2117
2118 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2119
2120         * c-common.h (c_staticp): Change return type from int to bool.
2121         * tree.c (staticp): Likewise.
2122         * langhooks.h (staticp): Likewise.
2123
2124 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2125
2126         * langhooks-def.h (lhd_staticp): Change return type from int to
2127         bool in prototype to match definition.
2128
2129 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2130
2131         * system.h (bool, true, false): Don't redefine as preprocessor macros
2132         in C++.
2133
2134 2004-07-24  Roger Sayle  <roger@eyesopen.com>
2135
2136         * expmed.c (init_expmed): A signed modulus by a power of two is
2137         considered cheap if its less than or equal to four instructions.
2138
2139 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2140
2141         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
2142         GGC_CNEWVAR): New macros.
2143
2144 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2145
2146         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
2147         lists.
2148         * c-decl.c: Likewise.
2149         * c-format.c: Likewise.
2150         * c-lex.c: Likewise.
2151         * c-opts.c: Likewise.
2152         * c-pragma.c: Likewise.
2153         * c-typeck.c: Likewise.
2154         * gencheck.c: Likewise.
2155         * genconditions.c: Likewise.
2156         * genconfig.c: Likewise.
2157         * genflags.c: Likewise.
2158         * gengtype.c: Likewise.
2159         * gensupport.c: Likewise.
2160         * ggc-none.c: Likewise.
2161         * langhooks.c: Likewise.
2162         * statistics.h: Likewise.
2163         * stub-objc.c: Likewise.
2164         * java/decl.c: Likewise.
2165
2166 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
2167
2168         * config/m68k/m68k.c (output_scc_di): Fix coding style.
2169         (symbolic_operand): Fix prototype.
2170         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
2171         * config/m68k/m68k.md: Add constants for registers a0 and sp and
2172         use them, change from the "{...}" syntax to the simpler {...}
2173         syntax.
2174         (*cfv4_extendqisi2): Fix destination predicate.
2175         * config/m68k/m68k-protos.h: Remove various declarations also
2176         generated via PREDICATE_CODES.
2177
2178 2004-07-23  Mike Stump  <mrs@apple.com>
2179
2180         * c-typeck.c (convert_for_assignment): Tightened up pointer
2181         converstions that differ in signedness.
2182
2183 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
2184
2185         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
2186
2187 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2188
2189         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
2190         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
2191
2192         * gimplify.c (gimplify_compound_lval): Check for no handled
2193         operations, rather than checking for explicit list of nodes.
2194         (is_gimple_addr_expr_arg_or_indirect): New function.
2195         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
2196         redundant setting of TREE_INVARIANT.
2197         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
2198         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
2199
2200 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
2201
2202         PR tree-optimization/16688
2203         PR tree-optimization/16689
2204         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
2205         unnecessary initialization of 'tag'.
2206         (get_tmt_for): Check that the new type tag has the same alias
2207         set as the pointed-to type.
2208         (group_aliases): Only regular variables need to be removed
2209         from the alias set of a name tag.
2210         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
2211         propagation if the two types are not compatible.
2212         (merge_alias_info): Rename from replace_ssa_names_ann.
2213         Add more checking.
2214         (replace_exp_1): If both arguments are SSA_NAMEs, check that
2215         the propagation can be done.
2216         Only call merge_alias_info on pointers.
2217         (propagate_value): Likewise.
2218         * tree-ssa-copyrename.c: Include langhooks.h.
2219         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
2220         to do the merging.
2221         Do not coalesce variables with incompatible types.
2222         (rename_ssa_copies): Call replace_ssa_name_symbol.
2223         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
2224         the same type as the underlying _DECL.
2225         * tree-ssanames.c (replace_ssa_name_symbol): New function.
2226         * tree.h (replace_ssa_name_symbol): Declare.
2227
2228 2004-07-23  Richard Henderson  <rth@redhat.com>
2229
2230         PR c++/16277
2231         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
2232         unshare it properly.
2233         (gimplify_modify_expr_rhs): Push assignment from a conditional into
2234         the conditional for all non-register types.
2235
2236 2004-07-23  Richard Henderson  <rth@redhat.com>
2237
2238         * expr.c (expand_expr_real_1): Don't handle non-local variables.
2239         * expr.h (fix_lexical_addr): Remove.
2240         * function.c (NEED_SEPARATE_AP): Remove.
2241         (fix_lexical_addr): Remove.
2242         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
2243         not null decl_function_context.
2244         (create_alias_vars): Likewise.
2245         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
2246         (simple_goto_p): Likewise.
2247         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
2248         * tree-ssa-ccp.c (get_default_value): Likewise.
2249         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2250         * tree.c (needs_to_live_in_memory): Likewise.
2251         * tree-flow-inline.h (may_be_aliased): Move...
2252         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
2253         when TREE_STATIC variables may be addressable.
2254
2255 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
2256
2257         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
2258
2259 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
2260
2261         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
2262         bitmap contents if GENERATOR_FILE is defined.
2263         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
2264         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
2265
2266 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2267
2268         * c-decl.c (start_function): Form composite type of function types
2269         rather than copying type from previous prototype declaration.
2270
2271 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
2272
2273         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
2274         the const qualifier for the second argument in the C++ functions.
2275
2276         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
2277         specific pointer types.
2278
2279         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
2280         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
2281         for vector bool and/or vector pixel, add C++ and C missing support.
2282         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
2283         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
2284         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
2285         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
2286         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
2287         missing C++ and C support for vector bool and/or vector pixel.
2288         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
2289         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
2290         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
2291         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
2292         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
2293         C++ and C types used for vector bool and/or vector pixel.
2294         (vec_st, vec_stl): Add C++ support for vector pixel.
2295         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
2296         (vec_all_ne): Add C++ support for vector pixel.
2297
2298         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
2299         (vec_vmulesb): Add missing C++ function.
2300         (vec_perm): Fix type of third argument in C++ function.
2301         (vec_vsum4shs): Fix C++ function name.
2302         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
2303         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
2304         argument passed to the error handler in C macro.
2305         (vec_nmsub): Remove extra parens around argument names in C macro.
2306         (vec_packpx): Add missing parens in C macro.
2307
2308 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
2309
2310         * machmode.def: Remove vector modes.
2311         * config/alpha/alpha-modes.def: Add supported vector modes.
2312         * config/arm/arm-modes.def: Likewise.
2313         * config/frv/frv-modes.def: Likewise.
2314         * config/i386/i386-modes.def: Likewise.
2315         * config/rs6000/rs6000-modes.def: Likewise.
2316         * config/sh/sh-modes.def: Likewise.
2317
2318 2004-07-23  Matthias Klose  <doko@debian.org>
2319
2320         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
2321         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
2322         * config.h: Regenerate.
2323         * configure: Likewise.
2324
2325 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
2326
2327         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
2328         generated SYMBOL_REFs for labels.
2329         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
2330         Change prototype.
2331         (machopic_stub_name): Remove.
2332         (machopic_indirection_name): New function.
2333         (machopic_mcount_stub_name): Likewise.
2334         (machopic_classify_name): Remove.
2335         (machopic_function_base_sym): New function.
2336         (machpoic_classify_symbol): Likewise.
2337         (machopic_classify_ident): Remove.
2338         (machopic_define_ident): Likewise.
2339         (machopic_define_name): Likewise.
2340         (machopic_name_defined_p): Likewise.
2341         (machopic_ident_defined_p): Likewise.
2342         (darwin_strip_name_encoding): Likewise.
2343         (machopic_define_symbol): New function.
2344         * config/darwin.c (hashtab.h): Include.
2345         (machopic_defined_list): Remove.
2346         (machopic_classify_ident): Likewise.
2347         (machopic_classify_name): Likewise.
2348         (machopic_ident_defined_p): Likewise.
2349         (machopic_define_ident): Likewise.
2350         (machopic_define_name): Likewise.
2351         (machopic_symbol_defined_p): New function.
2352         (machopic_classify_symbol): Likewise.
2353         (machopic_data_defined_p): Use machopic_classify_symbol.
2354         (machopic_define_symbol): New function.
2355         (machopic_function_base_sym): New function.
2356         (machopic_non_lazy_pointers): Remove.
2357         (machopic_non_lazy_ptr_name): Likewise.
2358         (machopic_stubs): Likewise.
2359         (machopic_stub_name): Likewise.
2360         (NON_LAZY_POINTER_SUFFIX): New macro.
2361         (STUB_SUFFIX): Likewise.
2362         (machopic_indirection): New structure.
2363         (machopic_indirections): New variable.
2364         (machopic_indirection_hash): New function.
2365         (machopic_indirection_eq): Likewise.
2366         (machopic_indirection_name): Likewise.
2367         (machopic_mcount_stub_name): New function.
2368         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
2369         hash table.
2370         (machopic_indirect_data_reference): Rework to use new functions.
2371         (machopic_indirect_call_target): Likewise.
2372         (machopic_legitimize_pic_address): Likewise.
2373         (machopic_output_indirection): New function.
2374         (machopic_finish): Use it.
2375         (machopic_operand_p): Rework to use new functions.
2376         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
2377         (darwin_strip_name_encoding): Remove.
2378         (update_non_lazy_ptrs): Remove.
2379         (update_stubs): Likewise.
2380         (darwin_non_lazy_pcrel): Use new functions.
2381         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2382         (ASM_OUTPUT_LABELREF): Likewise.
2383         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
2384         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
2385         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
2386         (TARGET_STRIP_NAME_ENCODING): Do not use
2387         darwin_strip_name_encoding.
2388         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
2389         darwin_strip_name_encoding.
2390         * config/i386/darwin.h (FUNCTION_PROFILER): Use
2391         machopic_mcount_stub_name.
2392         * config/i386/i386.c (x86_output_mi_thunk): Use
2393         machopic_indirection_name, not machopic_stub_name.
2394         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
2395         machopic_function_base_sym.
2396         (print_operand): Use machopic_classify_symbol.
2397         (rs6000_emit_prologue): Use machopic_function_base_sym.
2398         (output_profile_hook): Do not use machopic_stub_name.
2399         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
2400
2401 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2402
2403         PR c/7284
2404         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
2405         as multiplication.
2406
2407 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2408
2409         * doc/implement-c.texi: New file.
2410         * doc/extend.texi (C Implementation): Move to there.
2411         * doc/gcc.texi: Include implement-c.texi.
2412         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
2413
2414 2004-07-22  Jason Merrill  <jason@redhat.com>
2415
2416         * integrate.c (copy_decl_for_inlining): Remove invisible reference
2417         handling.
2418         * tree-inline.c (setup_one_parameter): Likewise.
2419
2420 2004-07-22  Brian Booth  <bbooth@redhat.com>
2421
2422         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
2423         (substitute_and_fold): Propigate into VUSE operands when possible.
2424         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
2425         (cp_lattice_meet): Handle merging of latticevalues when
2426         UNKNOWN_VAL is present.
2427         (visit_stmt): Visit assignments with V_MUST_DEFs.
2428         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
2429         (ccp_fold): Deal with RHS' that are constant and virtual.
2430         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
2431         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
2432         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
2433         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
2434         computing immediate uses.
2435         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
2436         transition.
2437         (replace_vuse_in): New function.
2438         (likely_value): Add check of vuse operands.
2439         (get_default_value): Set the default value of virtually defined
2440         variables to UKNOWN_VAL instead of VARYING.
2441
2442 2004-07-22  Richard Henderson  <rth@redhat.com>
2443
2444         * expr.c (emit_push_insn): Don't use set_mem_attributes.
2445
2446 2004-07-22  Richard Henderson  <rth@redhat.com>
2447
2448         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
2449         variables due to conditional compilation.
2450
2451 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
2452
2453         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
2454         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
2455         Release SSA names that have been re-renamed.
2456         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
2457         variable.
2458         * tree-ssa-alias.c (init_alias_info): If aliases have been
2459         computed before, clear existing alias information.
2460         (create_name_tags): Do no fixup PT_ANYTHING pointers.
2461         If the new name tag for a pointer is different than the one it
2462         had before, mark the old tag for renaming.
2463         (replace_may_alias): New function.
2464         (group_aliases): Call it.
2465         (setup_pointers_and_addressables): Always call get_tmt_for.
2466         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
2467         once.
2468         (set_pt_anything): New local function.
2469         (set_pt_malloc): New local function.
2470         (merge_pointed_to_info): Don't merge pointed-to variables from
2471         the original pointer if the destination is pointing to an
2472         unknown location.
2473         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
2474         (add_pointed_to_var): Do not add a variable to the points-to
2475         set if the pointer is already pointing to anywhere.
2476         (collect_points_to_info_r): If the defining statement is a PHI
2477         node, only merge pointed-to information if the argument has
2478         already been visited.
2479         (get_tmt_for): Only create a new tag if the pointer didn't
2480         have one already.
2481         (dump_alias_info): Emit more information.
2482         (dump_points_to_info_for): Likewise.
2483         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
2484         try to get the annotation of an SSA_NAME.
2485         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
2486         alias sets when checking is enabled.
2487         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
2488         (eliminate): Mark basic blocks that will need
2489         EH information cleaned up.
2490         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
2491         predecessor.
2492         Initialize need_eh_cleanup.
2493         (fini_pre): Call tree_purge_all_dead_eh_edges and
2494         cleanup_tree_cfg if needed.
2495         Free need_eh_cleanup.
2496         * tree-ssa.c (verify_ssa_name): New function.
2497         (verify_def): Call it.
2498         Re-arrange to avoid printing too many error messages.
2499         (verify_use): Likewise.
2500         (verify_phi_args): Likewise.
2501         (verify_flow_insensitive_alias_info): New function.
2502         (verify_flow_sensitive_alias_info): New function.
2503         (verify_alias_info): New function.
2504         (verify_ssa): Call verify_alias_info.
2505         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
2506         program.
2507         Re-arrange to avoid printing too many error messages.
2508         * tree-ssanames.c (make_ssa_name): Clear
2509         SSA_NAME_IN_FREE_LIST.
2510         (release_ssa_name): Never release a default definition.
2511         (release_defs): New function.
2512         * tree.h: Declare it.
2513         * tree-ssa-dce.c (remove_dead_stmt): Call it.
2514
2515 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
2516
2517         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
2518         If true, do a depth-first search.  Do a breadht-first search,
2519         otherwise.
2520         (walk_use_def_chains): Add new argument IS_DFS.
2521         Update all users.
2522         * tree-flow.h (walk_use_def_chains): Update prototype.
2523
2524 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
2525
2526         * config/cris/cris.md: Tweak formatting.
2527         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
2528         (mover2side, moverside, movemside, movei, op3, andu): Replace
2529         live define_peephole:s with define_peephole2 near-equivalents.
2530         Delete the rest.
2531         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
2532         word-size modes.
2533         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2534         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
2535         "*mov_sidesi_mem" respectively.
2536
2537 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
2538
2539         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
2540         (gimplify_build1): Move from tree-complex.c do_unop.
2541         (gimplify_build2): Move from tree-complex.c do_binop.
2542         (gimplify_build3): New.
2543         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
2544         Adjust throughout to call the functions above.
2545         * tree-flow.h: Declare the functions above.
2546         * tree-nested.c (gimplify_val): Rename to...
2547         (tsi_gimplify_val): ... this.
2548
2549         * Makefile.in (tree_complex.o): Update dependencies.
2550         (stor-layout.o): Depend on regs.h.
2551         * c-common.c (handle_vector_size_attribute): Update for
2552         vector types without corresponding vector modes.
2553         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
2554         a corresponding vector mode is not available.
2555         * print-tree.c (print_node): Print nunits for vector types
2556         * regclass.c (have_regs_of_mode): New.
2557         (init_reg_sets_1): Initialize it and use it instead
2558         of allocatable_regs_of_mode.
2559         * regs.h (have_regs_of_mode): Declare it.
2560         * stor-layout.c (layout_type): Pick a mode for vector types.
2561         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
2562         build_replicated_const, do_unop, do_binop, do_plus_minus,
2563         do_negate, expand_vector_piecewise, expand_vector_parallel,
2564         expand_vector_addition, expand_vector_operations_1,
2565         expand_vector_operations, tree_lower_operations,
2566         pass_lower_vector_ssa, pass_pre_expand): New.
2567         (expand_complex_operations, pass_lower_complex): Remove.
2568         * tree-optimize.c (init_tree_optimization_passes): Adjust
2569         pass ordering for changes in tree-complex.c.
2570         * tree-pass.h: Declare new passes.
2571         * tree.c (finish_vector_type): Remove.
2572         (make_vector_type): New.
2573         (build_vector_type_for_mode, build_vector_type): Rewritten.
2574         * tree.def (VECTOR_TYPE): Document where the number of
2575         subparts is stored.
2576         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
2577         (make_vector): Remove declaration.
2578
2579 2004-07-21  Richard Henderson  <rth@redhat.com>
2580
2581         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
2582         TREE_THIS_VOLATILE, may_aliases, or optimization level.
2583         (remove_useless_vars): Dump debugging info.
2584         (expand_used_vars): Move ...
2585         * cfgexpand.c (expand_used_vars): ... here.  Make static.
2586         * tree-flow-inline.h (set_is_used): New.
2587         (set_default_def): Use get_var_ann.
2588         * tree-flow.h: Update decls.
2589         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
2590         (create_ssa_var_map): Use it.
2591         * tree-ssa.c (set_is_used): Remove.
2592
2593 2004-07-22  Ben Elliston  <bje@au.ibm.com>
2594
2595         * gdbinit.in: Set a breakpoint on internal_error.
2596
2597 2004-07-21  Richard Henderson  <rth@redhat.com>
2598
2599         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
2600         to create a new basic block.
2601
2602 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2603
2604         PR c/15052
2605         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
2606         return type on function definitions.  Move other warnings for
2607         qualified return type to -Wreturn-type.  Do not condition any such
2608         warnings on -pedantic.  Update comments.
2609         (start_function): Only copy function type from previous prototype
2610         declaration if return types are compatible.
2611         * c-typeck.c (function_types_compatible_p): Don't condition
2612         warning for incompatibility of volatile qualifiers on the return
2613         type on -pedantic.  Update comment.
2614         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
2615
2616 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2617
2618         * c-typeck.c (set_init_index): Require designator to be of integer
2619         type.
2620
2621 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2622
2623         PR c/11250
2624         * c-parse.in (init): Change to exprtype.
2625         (primary): Set original_code for STRING to STRING_CST.
2626         Call maybe_warn_string_init for compound literals.
2627         (initdcl, notype_initdcl): Call maybe_warn_string_init.
2628         (initval): Update.
2629         * c-tree.h (maybe_warn_string_init): New.
2630         (pop_init_level, process_init_element): Use struct c_expr.
2631         (struct c_expr): Update comment.
2632         * c-typeck.c (maybe_warn_string_init): New function.
2633         (digest_init): Call it.  Additional parameter strict_string.  All
2634         callers changed.
2635         (output_init_element): Likewise.
2636         (struct constructor_stack): Use struct c_expr for
2637         replacement_value.
2638         (really_start_incremental_init, push_init_level): Update.
2639         (pop_init_level): Update.  Return struct c_expr.
2640         (process_init_level): Update.  Take struct c_expr argument.
2641
2642 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
2643
2644         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
2645         commit.
2646
2647 2004-07-21  Eric Christopher  <echristo@redhat.com>
2648
2649         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
2650         removal.
2651         * c-decl.c (pop_scope): Ditto.
2652         * calls.c (expand_call): Remove call to current_nesting_level,
2653         update comment accordingly. Remove calls to expand_start_target_temps
2654         and expand_end_target_temps.
2655         * cfgexpand.c (construct_init_block): Remove call to
2656         expand_start_bindings_and_block.
2657         (construct_exit_block): Remove call to expand_end_bindings.
2658         * expr.c (safe_from_p): Remove BIND_EXPR handling.
2659         (expand_expr_real_1): Ditto. Fix formatting.
2660         (expand_vars): Delete.
2661         * stmt.c (POPSTACK): Remove block_stack.
2662         (stmt_status): Remove x_block_stack.
2663         (block_stack): Delete.
2664         (expand_start_bindings_and_block): Ditto.
2665         (expand_start_target_temps): Ditto.
2666         (expand_end_target_temps): Ditto.
2667         (current_nesting_level): Ditto.
2668         (warn_about_unused_variables): Ditto.
2669         (expand_end_bindings): Ditto.
2670         * tree.h: Remove declarations for above.
2671
2672 2004-07-21  Steven Bosscher  <stevenb@suse.de>
2673
2674         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
2675         * rtl.c (note_insn_name): Likewise.
2676         * print-rtl.c (print_rtx): Don't print it.
2677         * cfgrtl.h (can_delete_note_p): Don't handle it.
2678         (rtl_delete_block): Likewise.
2679         * passes.c (rest_of_handle_guess_branch_prob): Remove.
2680         (rest_of_compilation): Don't call it.
2681         * predict.c (process_note_predictions, process_note_prediction,
2682         note_prediction_to_br_prob): Remove.
2683         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
2684         * stmt.c (return_prediction): Remove.
2685         (expand_value_return): Don't call it.  Don't add prediction
2686         notes for return statements.
2687
2688 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
2689
2690         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
2691         once.
2692
2693 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
2694
2695         * c-common.c (vector_types_convertible_p): Use vector types'
2696         TYPE_SIZE and TREE_TYPE instead of their mode.
2697         * convert.c (convert_to_integer): Likewise.
2698         (convert_to_vector): Likewise.
2699         * fold-const.c (fold_convert): Likewise.
2700         * varasm.c (output_constant): Likewise.
2701         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
2702         Allow a VECTOR_TYPE initializer to be made of several vectors.
2703         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
2704         of cleared and need_to_clear, and use fold_convert.
2705         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
2706         integer vectors.
2707
2708 2004-07-20  Richard Henderson  <rth@redhat.com>
2709
2710         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
2711         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
2712
2713 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
2714
2715         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
2716         enormous cost if not TARGET_HARD_MUL.
2717
2718 2004-07-20  Andrew Pinski  <apinski@apple.com>
2719
2720         PR target/16557
2721         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
2722         (ASM_SPEC): here.
2723
2724 2004-07-21  Paul brook  <paul@codesourcery.com>
2725
2726         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
2727
2728 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2729
2730         * fold-const.c (operand_equal_p): Temporarily support NULL args.
2731         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
2732         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
2733
2734 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
2735
2736         * rtl.h (plus_constant): Delete.
2737         (plus_constant_wide): Rename to plus_constant.
2738         (plus_constant_for_output_wide): Delete vestigial prototype.
2739         (GEN_INT): Remove unnecessary cast.
2740         * tree.h (build_int_2, size_int_type): Delete.
2741         (build_int_2_wide): Rename to build_int_2.
2742         (size_int_wide): Rename to size_int_kind.
2743         (size_int_type_wide): Rename to size_int_type.
2744         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
2745         Remove unnecessary cast.
2746         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
2747         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
2748         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
2749         (size_int_type_wide): Rename size_int_type.
2750         (int_const_binop): Use size_int_type.
2751         * c-lex.c (interpret_integer): Use build_int_2.
2752         * final.c (split_double): Remove unnecessary casts.
2753         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
2754
2755 2004-07-20  Richard Henderson  <rth@redhat.com>
2756
2757         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
2758         (gimplify_compound_lval): Use is_gimple_tmp_reg.
2759         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
2760         (is_gimple_tmp_reg): New.
2761         * tree-gimple.h (is_gimple_tmp_reg): Declare.
2762
2763 2004-07-20  Richard Henderson  <rth@redhat.com>
2764
2765         * tree-pretty-print.c (dump_generic_node): Dump
2766         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
2767
2768 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
2769
2770         * tree-mudflap.c (mf_set_options_fndecl): New tree.
2771         (mudflap_init): Set it.
2772         (mudflap_register_call): Remove __mf_init call.
2773         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
2774         to pass "-ignore-reads" option to libmudflap if needed.
2775
2776 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
2777
2778         PR c++/14607
2779         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
2780         (MAKE_DECL_ONE_ONLY): Undefine.
2781         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
2782         readonly_data, one_only_data_section, forget_section): New prototypes.
2783         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
2784         functions.
2785         (pa_select_section): Add one-only (COMDAT) support.
2786         * pa.h (struct machine_function): Define.
2787         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
2788         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
2789         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
2790         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
2791         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
2792         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
2793         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
2794         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
2795         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
2796         for EXTRA_SECTION_FUNCTIONS.
2797         * doc/install.texi: Update binutils requirements.
2798
2799 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
2800
2801         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
2802         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
2803         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
2804         size_t.
2805         (struct VEC): Use unsigned for num and alloc.
2806         * vec.c (struct vec_prefix): Likewise.
2807         (vec_o_reserve): Adjust.
2808
2809         * dbxout.c (dbxout_type): Fix printf format.
2810
2811         * tree.h (binfo_member): Remove.
2812         * tree.c (binfo_member): Remove.
2813
2814 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
2815
2816         * tree.h: Include vec.h
2817         (DEF_VEC_P(tree)): New type.
2818         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
2819         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
2820         (BINFO_LANG_SLOT): Remove.
2821         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
2822         (struct tree_binfo): Turn base_binfos into a trailing
2823         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
2824         (binfo_lang_slots): Remove.
2825         * tree.c (binfo_lang_slots): Remove.
2826         (make_tree_binfo_stat): Take a base binfo count, not a
2827         lang slot count.  Adjust.
2828         * Makefile.in (TREE_H): Add vec.h
2829         * alias.c (record_component_aliases): Adjust BINFO access.
2830         * dbxout.c (dbxout_type): Likewise.
2831         * dwarf2out.c (gen_member_die): Likewise.
2832         * sdbout.c (sdbout_one_type): Likewise.
2833         * tree-dump.c (deque_and_dump): Likewise.
2834         * config/i386/i386.c (classify_argument,
2835         contains_128bit_aligned_vector_p): Likewise.
2836         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
2837         * doc/c-tree.texi (Classes): Update BINFO documentation.
2838
2839 2004-07-20  Steven Bosscher  <stevenb@suse.de>
2840
2841         * c-common.h (check_case_value): Remove prototype.
2842         (c_add_case_label): Adjust prototype.
2843         * c-common.c (check_case_value): Make static.
2844         (check_case_bounds): New function.
2845         (c_add_case_label): Use it.  Take new argument orig_type.
2846         * c-typeck.c (struct c_switch): New orig_type field.
2847         (c_start_case): Set it.
2848         (do_case): Pass it to c_add_case_label.
2849         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
2850         cases from here.  Add the labels in reverse order.
2851         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
2852         (add_case_node): Return nothing, don't check for duplicate cases.
2853         Insert new case nodes in a list, not in an AVL tree.
2854         (expand_end_case_type): Don't turn a case tree into a case list.
2855         (case_tree2list): Remove.
2856         * tree.h (add_case_node): Adjust prototype.
2857
2858 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
2859
2860         * genattr.c (struct range, struct function_unit,
2861         write_units, extend_range, init_range): Remove them.
2862         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
2863         Output "#define INSN_SCHEDULING" here.
2864         * genattrtab.c (struct range, struct function_unit_op,
2865         struct function_unit, struct dimension, enum operator,
2866         operate_exp, expand_units, simplify_knowing,
2867         encode_units_mask, simplify_by_exploding,
2868         find_and_mark_used_attributes, unmark_used_attributes,
2869         add_values_to_cover, increment_current_value,
2870         test_for_current_value, simplify_with_current_value,
2871         simplify_with_current_value_aux, gen_unit,
2872         write_unit_name, write_function_unit_info,
2873         write_complex_function, write_toplevel_expr,
2874         find_single_value, extend_range): Remove.
2875         (write_attr_get): Do not handle common_av->value
2876         being an FFS.
2877         (struct attr_desc): Remove func_units_p and blockage_p.
2878         (write_attr_valueq): Do not handle them.
2879         (find_attr): Do not clear them.
2880         (make_internal_attr): Do not initialize them.
2881         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
2882         * sched-vis.c (init_target_units, insn_print_units,
2883         init_block_visualization, print_block_visualization,
2884         visualize_scheduled_insns, visualize_no_unit,
2885         visualize_stall_cycles, visualize_alloc,
2886         visualize_free, target_units, get_visual_tbl_length,
2887         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
2888         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
2889         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
2890         * haifa-sched.c (blockage_range, clear_units,
2891         schedule_unit, actual_hazard, potential_hazard,
2892         insn_unit, unit_last_insn, unit_tick,
2893         actual_hazard_this_instance, potential_hazard,
2894         schedule_unit, max_insn_queue_index_value): Remove.
2895         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
2896         max_insn_queue_index.
2897         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
2898         * doc/md.texi (Processor pipeline description): Remove
2899         references to old pipeline descriptions.
2900         (Automaton pipeline description): Merge with the above.
2901         (Old pipeline description, Comparison of the two descriptions):
2902         Remove.
2903
2904         * bt-load.c (migrate_btr_def): Remove references to
2905         use_pipeline_interface.
2906         * haifa-sched.c (insn_cost, schedule_insn,
2907         schedule_block, advance_one_cycle, sched_init,
2908         queue_to_ready, sched_finish): Likewise.
2909         * modulo-sched.c (sms_schedule, advance_one_cycle,
2910         ps_has_conflicts): Likewise.
2911         * sched-rgn.c (init_ready): Likewise.
2912         (debug_dependencies): Likewise, and remove an "if (1)".
2913         * target.h (use_dfa_pipeline_interface): Remove.
2914         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2915         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2916         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2917         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2918         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2919         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2920         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2921         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2922         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2923         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2924         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2925         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2926         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2927         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2928         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2929         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2930         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2931         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2932         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2933
2934 2004-07-19  Roger Sayle  <roger@eyesopen.com>
2935
2936         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
2937
2938 2004-07-19  Jeff Law  <law@redhat.com>
2939
2940         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
2941         (get_eq_expr_value): Use it.  Simplify slightly.
2942
2943 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
2944
2945         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
2946         (umulsidi3_32bit_r4000): Likewise.
2947
2948 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
2949
2950         * vec.h: Propagate location information properly.
2951         (VEC_T_iterate): Add result pointer parameter.
2952         (VEC_T_space): New.
2953         (VEC_T_reserve): Use it.
2954
2955 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
2956
2957         * Makefile.in (c-format.o): Depend on c-format.h.
2958         * c-format.h: New file.
2959         (struct format_char_info): Add CHAIN member.
2960         * c-format.c: Move some types and constants to c-format.h.
2961         (format_type_error): Set to -1.
2962         (struct function_format_info): Use an int for format_type.
2963         (decode_format_type): Return an int.  Return format_type_error
2964         on error.
2965         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
2966         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
2967         (scan_char_table, time_char_table, monetary_char_table): Initialize
2968         CHAIN to NULL.
2969         (n_format_types): New variable.
2970         (check_format_info_main): Handle CHAIN in format_char_info.
2971         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
2972         TARGET_N_FORMAT_TYPES.
2973         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
2974         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
2975         * config/sol2-c.c: New file.
2976         * config/t-sol2: New file.
2977         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
2978         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
2979         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
2980
2981         * doc/extend.texi (Target Format Checks): New section.
2982         (Function Attributes): Mention it.
2983         * doc/invoke.texi: Mention target format checks.
2984         * doc/sourcebuild.texi: Mention target format checks.
2985         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
2986         TARGET_FORMAT_TYPES.
2987
2988 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2989
2990         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
2991         added.
2992         * config/s390/s390.c (regclass_map initializer): Register 35 added to
2993         ADDR_REGS.
2994         (load_multiple_operation, store_multiple_operation): Removed
2995         pointless sanity check.
2996         (s390_decompose_address): Added check for return_address_pointer_rtx.
2997         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
2998         (s390_return_address_offset): New function.
2999         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
3000         (FRAME_REGNO_P): Added check for register 35.
3001         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
3002         REG_ALLOC_ORDER): Appended entry for register 35.
3003         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
3004         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
3005         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
3006         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
3007         is eliminable using stack pointer or hard frame pointer.
3008         (REGISTER_NAMES): Added name for register 35.
3009         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
3010         pointless sanity check.
3011
3012 2004-07-19  Roger Sayle  <roger@eyesopen.com>
3013
3014         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
3015         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
3016         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
3017         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
3018         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
3019         (fold_relational_const): Tidy up handling of floating point
3020         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
3021         transformation; fold_relational_const assumes constant operands.
3022
3023 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
3024
3025         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
3026         directory.
3027
3028 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
3029
3030         * c-tree.h (struct c_expr): Define.
3031         (C_SET_EXP_ORIGINAL_CODE): Remove.
3032         (parser_build_binary_op, build_compound_expr): Update prototypes.
3033         * c-parse.in (%union): Add exprtype.
3034         (FUNC_NAME): Mark as ttype.
3035         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
3036         exprtype.
3037         (expr): Update.  Define directly in terms of expr_no_commas
3038         instead of using nonnull_exprlist.
3039         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
3040         offsetof_member_designator, typespec_nonreserved_nonattr, init,
3041         initval, designator, component_declarator,
3042         component_notype_declarator, enumerator, array_declarator,
3043         condition, exexpr, switch_statement, stmt_nocomp, stmt,
3044         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
3045         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
3046         where appropriate.
3047         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
3048         * c-common.c (c_common_truthvalue_conversion): Don't check
3049         C_EXP_ORIGINAL_CODE.
3050         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
3051         Don't use C_EXP_ORIGINAL_CODE.
3052         (default_conversion, default_function_array_conversion): Don't use
3053         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
3054         (internal_build_compound_expr): Merge into build_compound_expr.
3055         (build_compound_expr): Take two operands instead of a TREE_LIST.
3056         * objc/objc-act.c (get_super_receiver): Update calls to
3057         build_compound_expr.
3058
3059 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
3060
3061         * config/sh/sh.c (sh_use_dfa_interface): Remove.
3062         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
3063         hook_int_void_1.
3064         * config/sh/sh.md: Extract pipeline descriptions
3065         into separate files.
3066         * config/sh/sh1.md: New file, extracted from sh.md.
3067         * config/sh/sh4.md: New file, extracted from sh.md.
3068         * config/sh/shmedia.md: New file, extracted from sh.md
3069         and rewritten using new-style pipeline description.
3070
3071 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
3072
3073         * config/pa/pa.md: Delete the two remaining define_peephole
3074         patterns.
3075
3076 2004-07-18  Steven Bosscher  <stevenb@suse.de>
3077             Joseph S. Myers  <jsm@polyomino.org.uk>
3078
3079         * c-common.c (c_common_truthvalue_conversion): Don't warn if
3080         TREE_NO_WARNING is set.
3081
3082 2004-07-18  Roger Sayle  <roger@eyesopen.com>
3083
3084         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
3085         simplify_builtin_strncmp): Delete.
3086         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
3087         Change argument to accept an arglist instead of an "exp".  Assume
3088         that the return type is always integer_type_node.  Copy missing
3089         transformations from their now obsolete simplify_builtin_*
3090         equivalents.
3091         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
3092         fold_builtin_strcmp and fold_builtin_strncmp.
3093         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
3094         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
3095         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
3096
3097 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
3098
3099         * Makefile.in (tree-alias-common.o): Update dependencies.
3100
3101 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
3102
3103         * cfgloop.c (flow_loop_nested_p): Fix comment.
3104
3105 2004-07-17  Jason Merrill  <jason@redhat.com>
3106
3107         PR c++/16115
3108         * stor-layout.c (relayout_decl): New fn.
3109         * tree.h: Declare it.
3110         (DECL_BY_REFERENCE): New macro.
3111
3112 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
3113
3114         * libgcc2.c (__enable_execute_stack): New symbol.
3115         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
3116         and declare __enable_execute_stack.
3117         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
3118         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
3119         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
3120         ENABLE_EXECUTE_STACK.
3121         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
3122         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
3123         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
3124         ENABLE_EXECUTE_STACK.
3125         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3126         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
3127         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
3128         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
3129         ENABLE_EXECUTE_STACK.
3130         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3131         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3132         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3133         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3134         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
3135         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
3136         (sparc64_initialize_trampoline): Likewise.
3137         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
3138
3139 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
3140
3141         * langhooks.h (builtin_function): New langhook.
3142         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
3143         (LANG_HOOKS_INITIALIZER): Update.
3144         * tree.h (builtin_function): Remove.
3145         * doc/tm.texi: Update.
3146         * c-tree.h (builtin_function): Declare.
3147         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
3148         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
3149         config/ia64/ia64.c, config/iq2000/iq2000.c,
3150         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
3151         config/stormy16/stormy16.c: All callers of builtin_function
3152         changed.
3153
3154 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
3155
3156         PR target/16556
3157         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
3158         Remove white space after the backslash.
3159
3160 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
3161
3162         PR rtl-optimization/16294
3163         * resource.c (return_insn_p): New predicate.
3164         (mark_target_live_regs): Use it.  Special-case return insns.
3165         (init_resource_info): Use it.  Don't scan the epilogue past
3166         a return.
3167
3168 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3169
3170         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
3171         destroy dominance information.
3172         * passes.c (rest_of_handle_loop2):  Free dominance information.
3173         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
3174         jump threading.
3175         (thread_jumps): Update dominance information and remove unreachable
3176         blocks.
3177         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
3178         information and remove the unreachable block.
3179
3180 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
3181
3182         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
3183
3184 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
3185
3186         * doc/sourcebuild.texi: Remove libf2c entry.
3187
3188 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
3189
3190         * config/i386/i386.md (movv16qi_internal): Fix typo.
3191
3192 2004-07-17  Steven Bosscher  <stevenb@suse.de>
3193
3194         * final.c (final_scan_insn): Fix broken commit from previous
3195         patch.
3196
3197 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
3198
3199         * c-typeck.c (parser_build_binary_op): Condition warnings for
3200         X<=Y<=Z on -Wparentheses instead of -Wextra.
3201         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
3202         supported for C only.
3203
3204 2004-07-17  Steven Bosscher  <stevenb@suse.de>
3205
3206         * cfgcleanup.c (try_simplify_condjump): Don't remove line
3207         notes to avoid unreachable code warnings.
3208         * toplev.c (backend_init): Don't emit line notes for
3209         unreachable code warnings.
3210
3211         * combine.c (distribute_notes): Don't distribute a
3212         REG_VTABLE_REF note.
3213         * final.c (final_scan_insn): Don't handle it.
3214         * rtl.c (reg_note_name): Remove it.
3215         * rtl.h (enum reg_node): Dito.
3216
3217         * emit-rtl.c (force_line_numbers, restore_line_number_status):
3218         Remove.
3219         * rtl.h (force_line_numbers, restore_line_number_status):
3220         Remove prototypes.
3221
3222         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
3223         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
3224         (using_eh_for_cleanups): Also moved here.
3225
3226         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
3227         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
3228         to expand_start_case and add_case_node.
3229         * stmt.c (struct nesting): Cleanup unused fields condition_code,
3230         last_unconditional_cleanup, nominal_type, printname, and
3231         line_number_status.
3232         (struct fixup_goto): Remove.
3233         (struct stmt_status): Remove x_goto_fixup_chain field.
3234         (goto_fixup_chain): Remove.
3235         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
3236         pushcase, pushcase_range): Remove.
3237         (expand_start_bindings_and_block): Don't set unused fields in
3238         the nesting stack.
3239         (expand_start_case, add_case_node): Cleanup unused formal arguments.
3240         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
3241         instead of emit_jump_if_reachable.
3242         (emit_case_nodes): Likewise.
3243         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
3244         static.
3245         (update_eh_label): Work around left-over exception handing regions.
3246         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
3247         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
3248         (pass_cleanup_cfg_post_optimizing): New pass.
3249         (init_tree_optimization_passes): Run the new pass after all
3250         optimizations.
3251         * tree.h (pushcase, pushcase_range): Remove prototypes.
3252         (expand_start_case, add_case_node): Update prototypes.
3253
3254 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
3255
3256         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
3257
3258 2004-07-16  Richard Henderson  <rth@redhat.com>
3259
3260         * builtins.c (std_expand_builtin_va_arg): Remove.
3261         (expand_builtin_va_arg): Remove.
3262         * expr.h: Don't declare them.
3263         * gimplify.c (mark_decls_volatile_r): Remove.
3264         (copy_if_shared_r): Don't call it.
3265         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
3266         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
3267         * gimple-low.c (lower_stmt): Likewise.
3268         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
3269         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
3270         * tree-ssa-operands.c (get_expr_operands): Likewise.
3271         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
3272         EXPAND_BUILTIN_VA_ARG.
3273         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
3274         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
3275         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
3276         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
3277
3278 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
3279
3280         * tree-ssa-pre.c (insert_aux): Break out if we hit
3281         a critical edge.
3282
3283 2004-07-16  Richard Henderson  <rth@redhat.com>
3284
3285         * basic-block.h (remove_fake_exit_edges): Declare.
3286         * cfganal.c (remove_fake_predecessors): Rename from
3287         remove_fake_successors; iterate over predecessors.
3288         (remove_fake_exit_edges): New.
3289         * cfgcleanup.c (try_optimize_cfg): Use it.
3290         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
3291         * predict.c (estimate_probability): Likewise.
3292         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
3293         * tree-cfg.c (make_edges): Likewise.
3294         * tree-ssa-pre.c (fini_pre): Likewise.
3295         * profile.c (instrument_edges): Don't remove_fake_edges.
3296         (branch_prob): Do it earlier here.
3297
3298 2004-07-16  Richard Henderson  <rth@redhat.com>
3299
3300         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
3301         switchification wrt CONSTRUCTOR.  Document the reason.
3302
3303 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
3304
3305         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
3306         that prevented descriptive __mf_check source location strings.
3307
3308 2004-07-16  Richard Henderson  <rth@redhat.com>
3309
3310         * tree-def (WITH_SIZE_EXPR): New.
3311         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
3312         * expr.c (expand_expr_real_1): Likewise.
3313         * gimplify.c (maybe_with_size_expr): New.
3314         (gimplify_arg, gimplify_modify_expr): Use it.
3315         (gimplify_modify_expr_to_memcpy): Take size parameter.
3316         (gimplify_modify_expr_to_memset): Likewise.
3317         (gimplify_expr): Handle WITH_SIZE_EXPR.
3318         * tree-alias-common.c (find_func_aliases): Likewise.
3319         * tree-eh.c (tree_could_trap_p): Likewise.
3320         (tree_could_throw_p): Likewise.
3321         * tree-gimple.c (is_gimple_lvalue): Likewise.
3322         (get_call_expr_in): Likewise.
3323         * tree-inline.c (estimate_num_insns_1): Likewise.
3324         (expand_calls_inline): Likewise.
3325         * tree-nested.c (convert_call_expr): Likewise.
3326         * tree-pretty-print.c (dump_generic_node): Likewise.
3327         * tree-sra.c (sra_walk_expr): Likewise.
3328         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
3329         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
3330         * tree-ssa-operands.c (get_expr_operands): Likewise.
3331         * tree-tailcall.c (find_tail_calls): Likewise.
3332
3333         * calls.c (expand_call): Reset old_stack_allocated after
3334         calling emit_stack_restore.
3335
3336 2004-07-16  Richard Henderson  <rth@redhat.com>
3337
3338         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
3339         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
3340         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
3341         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
3342         copy_res_decl_for_inlining.
3343
3344         * tree-inline.c (declare_return_variable): New modify_dest argument.
3345         Use it as the return value, when possible or manditory.  Handle
3346         TREE_ADDRESSABLE types.
3347         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
3348         replacement of CALL_EXPR.
3349
3350 2004-07-16  Richard Henderson  <rth@redhat.com>
3351
3352         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
3353         * gimple-low.c (expand_var_p): Don't check it.
3354         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
3355         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
3356         * tree-ssa-operands.c (add_stmt_operand): Likewise.
3357         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
3358         (find_referenced_vars): Don't call them.
3359         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
3360
3361 2004-07-16  Richard Henderson  <rth@redhat.com>
3362
3363         * function.c (pass_by_reference): True for all variable sized types.
3364
3365 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
3366
3367         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
3368         * tree-pretty-print.c: Include tree-chrec.h.
3369         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
3370         and POLYNOMIAL_CHREC nodes.
3371
3372 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
3373
3374         * builtins.c (expand_builtin_stpcpy): Do not create temporary
3375         reg with VOIDmode.
3376
3377 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
3378
3379         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
3380
3381 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
3382
3383         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
3384         to BASE_REGNUM.
3385         * config/s390/s390.c: Likewise.
3386         * config/s390/s390.h: Likewise.
3387
3388 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3389
3390         * config/mips/mips.md (addsi3, adddi3): Remove special handling
3391         of $sp adds.  Remove REGNO checks from mips16 patterns.
3392
3393 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3394
3395         * config/mips/mips.md: Delete outdated comment.
3396
3397 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3398
3399         * config/mips/mips.c (get_float_compare_codes): Delete.
3400         (mips_emit_compare): New function, mostly extracted from
3401         get_float_compare_codes and gen_conditional_branch.
3402         (gen_conditional_branch, gen_conditional_move): Use it.
3403
3404 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
3405
3406         * genautomata.c (add_vect): Speedup by using integers as
3407         bit-vectors for walking through the comb_vect and finding
3408         a match.
3409
3410 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3411
3412         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
3413         operand is an uns_arith_operand; use subtraction otherwise.
3414         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
3415         not just arith_operands.
3416
3417 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3418
3419         * config/mips/mips-protos.h (gen_int_relational): Delete.
3420         (mips_emit_scc): Declare.
3421         * config/mips/mips.c (internal_test): Delete.
3422         (sle_operand, sleu_operand): New functions.
3423         (map_test_to_internal_test, gen_int_relational): Delete.
3424         (mips_emit_binary, mips_relational_operand_ok_p)
3425         (mips_emit_int_relational, mips_zero_if_equal)
3426         (mips_emit_scc): New functions.
3427         (gen_conditional_branch): Rework to use mips_emit_int_relational.
3428         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
3429         sleu_operand.
3430         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
3431         (sltu, sleu): Use mips_emit_scc.
3432         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
3433         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
3434         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
3435
3436 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3437
3438         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
3439
3440 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3441
3442         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
3443         (*sne_[sd]i): Likewise sne_[sd]i_zero.
3444         (*sgt_[sd]i): ...and sgt_[sd]i.
3445         (*slt_[sd]i): ...and slt_[sd]i.
3446         (*sgtu_[sd]i): ...and sgtu_[sd]i.
3447         (*sltu_[sd]i): ...and sltu_[sd]i.
3448         (*sleu_[sd]i): ...and sleu_[sd]i_const.
3449         Name previously unnamed mips16 patterns.  Formatting fixes.
3450
3451 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3452
3453         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
3454         (branch_type): Delete.
3455         (gen_conditional_branch, gen_conditional_move)
3456         (mips_gen_conditional_trap): Update after name change.  Get the
3457         comparison mode from cmp_operands[0].
3458         * config/mips/mips.h (cmp_type, branch_type): Delete.
3459         (cmp_operands): Renamed from branch_cmp.
3460         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
3461         name change.  Don't set branch_type.
3462         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
3463         mode class of cmp_operands[0] rather than branch_type.  Update after
3464         name change.
3465
3466 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3467
3468         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
3469         of 0...255 to 0 when inside a SET.
3470
3471 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
3472
3473         * config/mips/mips.md: Remove mips16 define_peepholes.
3474
3475 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
3476
3477         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
3478         (fini_pre): Remove fake edges.
3479
3480 2004-07-15  Richard Henderson  <rth@redhat.com>
3481
3482         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
3483         (get_indirect_ref_operands, get_call_expr_operands): ... these.
3484
3485 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
3486
3487         * vec.h (VEC_address): New function.
3488
3489 2004-07-14  Jason Merrill  <jason@redhat.com>
3490
3491         PR middle-end/15885
3492         * gimplify.c (gimplify_arg): New fn, split out from...
3493         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
3494
3495 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
3496
3497         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
3498         generate code which is generated by pushqi1 now
3499         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
3500
3501 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
3502
3503         * combine.c (simplify_set): match the mode of the constant 0 with
3504         the tested operand to match the compare behaviour and the
3505         simplify_relational_operation() expectation.
3506
3507 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
3508
3509         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
3510         ("bordered"): Same.
3511
3512 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
3513
3514         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
3515         unconditionally.
3516         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
3517
3518 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
3519
3520         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
3521         calls in mips16 code.
3522
3523 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
3524
3525         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
3526         the destination of the li as well as for the neg.
3527
3528 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
3529
3530         g++/15861
3531         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
3532         * cgraph.h: Update declaration.
3533         * c-decl.c (build_cdtor): Update call with default priority.
3534         * coverage.c (create_coverage): Ditto.
3535         * tree-mudflap.c (mf_init_fndecl): New tree.
3536         (mudflap_init): Set it.
3537         (mudflap_register_call): Arrange to call __mf_init before the first
3538         __mf_register call.
3539         (mudflap_finish_file): Mark the mudflap static initializer as extra
3540         high priority, to beat all C++ static constructors.
3541
3542 2004-07-15  Jeff Law  <law@redhat.com>
3543
3544         * loop.c (check_insn_for_givs): Restore check for code labels that was
3545         accidentally deleted by a recent checkin.
3546
3547 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
3548
3549         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
3550         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
3551
3552 2004-07-14  Richard Henderson  <rth@redhat.com>
3553
3554         * print-tree.c (print_node): Fix casts last change.
3555
3556 2004-07-15  Paul Brook  <paul@codesourcery.com>
3557
3558         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
3559         to TARGET_UNWIND_INFO.
3560         * except.c (output_function_exception_table): Ditto.
3561         * except.h: Ditto.
3562         * opts.c (decode_options): Ditto.
3563         * passes.c (rest_of_handle_final): Ditto.
3564         * final.c (final_start_function): Ditto.
3565         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
3566         target hook.
3567         * targhooks.h (default_unwind_emit): Declare.
3568         * targhooks.c (default_unwind_emit): New function.
3569         * target-def.h: Define and use TARGET_UNWIND_EMIT.
3570         * target.h (struct gcc_target): Add unwind_emit.
3571         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
3572         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
3573         Remove IA64_UNWIND_EMIT.
3574         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
3575
3576 2004-07-14  Richard Henderson  <rth@redhat.com>
3577
3578         * print-tree.c (print_node): Handle SSA_NAME.
3579
3580 2004-07-14  James E Wilson  <wilson@specifixinc.com>
3581
3582         PR target/16325
3583         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
3584         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
3585
3586 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
3587
3588         * expr.c (expand_assignment): Reenable bitfield += optimizations.
3589         Use alias set 0 for memory, do proper mode calculations and adjust
3590         address for memories.
3591
3592 2004-07-14  Per Bothner  <per@bothner.com>
3593
3594         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
3595         structure with extra column field.
3596         * tree.c (expand_location):  Also fill in column field.
3597         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
3598         gets confused by the two conditionally-compiled definitions.
3599
3600 2004-07-14  Eric Christopher  <echristo@redhat.com>
3601
3602         * calls.c (expand_call): Fix typo in comment.
3603
3604 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
3605
3606         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
3607         comparision of TFmode.
3608
3609 2004-07-14  Richard Henderson  <rth@redhat.com>
3610
3611         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
3612         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
3613         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
3614         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3615         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
3616         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3617         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3618         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
3619         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
3620
3621 2004-07-14  Mike Stump  <mrs@apple.com>
3622
3623         * config/darwin.h (WINT_TYPE): Define to be int to match
3624         system header files.
3625
3626 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
3627
3628         * config/xtensa/xtensa.c (function_arg_advance): Check for args
3629         that must be passed in the stack.
3630         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
3631         arguments if the size is not a constant.
3632
3633 2004-07-14  Per Bothner  <per@bothner.com>
3634
3635         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
3636         instead of EXPR_LOCUS in a boolean context, which is always true
3637         if --enable-mapped-location.
3638         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
3639
3640 2004-07-14  Richard Henderson  <rth@redhat.com>
3641
3642         * dominance.c (struct dom_info): Add fake_exit_edge.
3643         (init_dom_info): Allocate it.
3644         (free_dom_info): Free it.
3645         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
3646         in two passes.
3647         (calc_idoms): Honor fake_exit_edge.
3648
3649 2004-07-13  Jason Merrill  <jason@redhat.com>
3650
3651         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
3652         (rhs_test_for): New fn.
3653         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
3654         * tree-gimple.h: Declare them.
3655         * gimplify.c (gimplify_modify_expr): Use the new fns.
3656
3657 2004-07-14  Richard Henderson  <rth@redhat.com>
3658
3659         * config/arm/arm-protos.h (arm_va_arg): Remove.
3660         * config/arm/arm.c (arm_va_arg): Remove.
3661         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
3662         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
3663
3664 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3665
3666         * pa.c (fix_range): New function to mark a range(s) of registers as
3667         fixed registers.
3668         (override_options): Call fix_range if the -mfixed-range option string
3669         is not empty.
3670         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
3671         * doc/invoke.texi (-mfixed-range): Document new option.
3672
3673 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
3674
3675         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
3676         for TARGET_64BIT.
3677         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
3678
3679 2004-07-14  Roger Sayle  <roger@eyesopen.com>
3680
3681         * expmed.c (expand_sdiv_pow2): New function to expand signed division
3682         by a positive power of two, split out from expand_divmod.  Provide
3683         an alternate implementation when shifts are expensive.  Lower the
3684         threshold for using a branchless implementation to BRANCH_COST >= 2.
3685         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
3686
3687 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
3688
3689         * tree-dfa.c (make_rename_temp): *Really* work just
3690         like create_tmp_var if called while outside SSA form.
3691
3692 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
3693
3694         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
3695         for division by zero.
3696         ("umodsi3"): Likewise.
3697
3698 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
3699
3700         * config/mips/mips.c (mips_output_move): When generating mips16 code,
3701         force loads of negative constants to be split.
3702         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
3703         Generalize SImode li/neg splitter to cope with other modes.
3704
3705 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
3706
3707         * expmed.c: Remove more references to QUEUED in the comments.
3708         * expr.c: Likewise.
3709
3710 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
3711
3712         Revert:
3713         2004-07-13  Richard Henderson  <rth@redhat.com>
3714         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
3715         correctly.
3716
3717 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
3718
3719         * tree-dfa.c (make_rename_temp): Work just like
3720         create_tmp_var if called while outside SSA form.
3721
3722 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
3723
3724         * expr.c (enqueue_insn, finish_expr_for_function,
3725         protect_from_queue, queued_subexp_p, mark_queue,
3726         emit_insns_enqueued_after_mark, emit_queue,
3727         expand_increment): Remove.
3728         (store_constructor): Expand increment as an assignment.
3729         (expand_expr_real_1 <case PREINCREMENT_EXPR,
3730         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
3731         case POSTDECREMENT_EXPR>): Abort.
3732         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
3733         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
3734         protect_from_queue, emit_queue, queued_subexp_p): Remove.
3735         * function.h (pending_chain, x_pending_chain): Remove.
3736         * rtl.def (QUEUED): Remove.
3737
3738         * emit-rtl.c (copy_insn_1, copy_most_rtx,
3739         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
3740         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
3741         encode_units_mask): Likewise.
3742         * local-alloc.c (equiv_init_varies_p): Likewise.
3743         * rtl.c (copy_rtx): Likewise.
3744         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
3745         * simplify-rtx.c (simplify_gen_subreg): Likewise.
3746         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
3747
3748         * builtins.c (expand_builtin, expand_builtin_apply,
3749         expand_builtin_mathfn, expand_builtin_mathfn_2,
3750         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
3751         Remove calls to emit_queue and protect_from_queue.
3752         * calls.c (expand_call, precompute_arguments,
3753         precompute_register_parameters, rtx_for_function_call,
3754         store_one_arg): Likewise.
3755         * dojump.c (do_compare_and_jump, do_jump): Likewise.
3756         * explow.c (memory_address): Likewise.
3757         * expmed.c (clear_by_pieces_1, clear_storage,
3758         clear_storage_via_libcall, emit_group_load,
3759         emit_group_store, emit_store_flag,
3760         expand_expr_real_1, store_by_pieces,
3761         store_constructor, store_expr, try_casesi,
3762         try_tablejump): Likewise.
3763         * function.c (expand_pending_sizes): Likewise.
3764         * optabs.c (emit_cmp_and_jump_insns,
3765         emit_conditional_add, emit_conditional_move,
3766         expand_fix, expand_float, prepare_cmp_insn): Likewise.
3767         * stmt.c (emit_case_bit_tests,
3768         expand_asm_expr, expand_computed_goto,
3769         expand_decl_init, expand_end_case_type,
3770         expand_end_stmt_expr, expand_expr_stmt_value,
3771         expand_return, expand_start_case,
3772         optimize_tail_recursion): Likewise.
3773         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
3774         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
3775
3776 2004-07-14  Ben Elliston  <bje@au.ibm.com>
3777
3778         * vec.h: Comment fix.
3779
3780 2004-07-13  Richard Henderson  <rth@redhat.com>
3781
3782         * target.h (struct gcc_target): Add calls.pass_by_reference.
3783         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
3784         * function.c (pass_by_reference): Use the hook.
3785         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
3786         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
3787         (hook_pass_by_reference_must_pass_in_stack): New.
3788         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
3789         (alpha_pass_by_reference): New.
3790         (TARGET_PASS_BY_REFERENCE): New.
3791         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3792         * config/arc/arc.c (arc_pass_by_reference): New.
3793         (TARGET_PASS_BY_REFERENCE): New.
3794         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3795         (FUNCTION_ARG_CALLEE_COPIES): True.
3796         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
3797         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
3798         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
3799         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3800         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3801         * config/cris/cris.c (cris_pass_by_reference): New.
3802         (TARGET_PASS_BY_REFERENCE): New.
3803         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
3804         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
3805         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3806         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
3807         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3808         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
3809         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
3810         (frv_function_arg_pass_by_reference): Remove.
3811         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3812         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
3813         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
3814         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
3815         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3816         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
3817         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
3818         (ia64_pass_by_reference): Rename from
3819         ia64_function_arg_pass_by_reference.
3820         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3821         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3822         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
3823         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
3824         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
3825         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3826         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3827         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
3828         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
3829         (m32r_pass_by_reference): Adjust prototype.  Make static.
3830         Handle mode sizes correctly.
3831         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3832         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
3833         (m68hc11_function_arg_pass_by_reference): Remove.
3834         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3835         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3836         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
3837         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3838         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
3839         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
3840         (mips_va_arg): Use pass_by_reference.
3841         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
3842         Handle mode sizes correctly.
3843         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3844         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3845         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
3846         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
3847         (mmix_pass_by_reference): Rename from
3848         mmix_function_arg_pass_by_reference.
3849         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3850         (FUNCTION_ARG_CALLEE_COPIES): True.
3851         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
3852         (mn10300_pass_by_reference): New.
3853         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3854         (FUNCTION_ARG_CALLEE_COPIES): True.
3855         * config/pa/pa.c (pa_pass_by_reference): New.
3856         (TARGET_PASS_BY_REFERENCE): New.
3857         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3858         (FUNCTION_ARG_CALLEE_COPIES): True.
3859         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
3860         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
3861         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
3862         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3863         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
3864         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
3865         (s390_pass_by_reference): Rename from
3866         s390_function_arg_pass_by_reference.
3867         (s390_function_arg_advance): Don't query pass-by-ref.
3868         (s390_function_arg): Likewise.
3869         (s390_gimplify_va_arg): Use pass_by_reference.
3870         (s390_call_saved_register_used): Likewise.
3871         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3872         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
3873         (shcompact_byref, sh_pass_by_reference): New.
3874         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3875         (SHCOMPACT_BYREF): Remove.
3876         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
3877         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
3878         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
3879         (sparc_gimplify_va_arg): Use pass_by_reference.
3880         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3881         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3882         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
3883         (v850_pass_by_reference): New.
3884         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3885         (FUNCTION_ARG_CALLEE_COPIES): True.
3886         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
3887         FUNCTION_ARG_PASS_BY_REFERENCE docs.
3888
3889 2004-07-14  Richard Henderson  <rth@redhat.com>
3890             Richard Sandiford  <rsandifo@redhat.com>
3891
3892         * config/mips/mips-protos.h (mips_va_arg): Delete.
3893         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
3894         * config/mips/mips.c: Include tree-gimple.h.
3895         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3896         (mips_arg_info): Remove special handling of must_pass_in_stck args.
3897         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
3898         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
3899
3900 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
3901
3902         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
3903         arguments for COND_EXPR in big-endian adjustment code.
3904
3905 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3906
3907         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
3908         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
3909         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
3910         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
3911
3912 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
3913
3914         PR tree-optimization/16443
3915         * tree-ssa-alias.c: Add more description for
3916         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
3917         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
3918         clobbering of call-clobbered and addressable variables.  If
3919         there are any before aliases have been computed, add them.
3920
3921 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
3922
3923         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
3924         verification.
3925
3926 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
3927
3928         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
3929         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
3930         to the same type.
3931
3932 2004-07-13  Per Bothner  <per@bothner.com>
3933
3934         * collect2.c (main):  Handle --no-demangle and --demangle flags.
3935
3936 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
3937
3938         * Makefile.in (OBJS-common): Add tree-data-ref.o.
3939         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
3940         (tree-data-ref.o): New rule.
3941         * lambda.h: New file.
3942         * tree-data-ref.c: New file.
3943         * tree-data-ref.h: New file.
3944         * tree.c (int_cst_value, tree_fold_gcd): New functions.
3945         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
3946
3947 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3948
3949         PR target/13926
3950         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
3951         * config/sparc/sparc.c (output_ubranch): New function.
3952         * config/sparc/sparc.md (jump pattern): Use it.
3953
3954 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3955
3956         PR target/16494
3957         * config/sparc/sparc.c (output_cbranch): Properly guard
3958         the code handling far branches with TARGET_V9.
3959         * config/sparc/sparc.md (length attribute): Document the
3960         side-effect of having a length greater or equal to 3.
3961
3962 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3963             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
3964
3965         PR target/15186
3966         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
3967         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
3968
3969 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3970             Martin Sebor  <sebor@roguewave.com>
3971
3972         PR target/12602
3973         * doc/invoke.texi (SPARC options): Document -threads
3974         and -pthreads on Solaris.
3975
3976 2004-07-13  Richard Henderson  <rth@redhat.com>
3977
3978         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
3979         by reference.
3980         (ind_gimplify_va_arg_expr): Remove.
3981         * tree.h (ind_gimplify_va_arg_expr): Remove.
3982         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
3983         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
3984         argsp to be null.
3985
3986         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
3987         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
3988         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
3989         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
3990         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
3991
3992 2004-07-13  Richard Henderson  <rth@redhat.com>
3993
3994         * function.c (pass_by_reference): New.
3995         (assign_parm_find_data_types): Use it.
3996         * calls.c (initialize_argument_information): Likewise.
3997         (emit_library_call_value_1): Likewise.
3998         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3999         * function.h (pass_by_reference): Declare.
4000
4001 2004-07-13  Richard Henderson  <rth@redhat.com>
4002
4003         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
4004         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
4005         * expr.h (MUST_PASS_IN_STACK): Remove.
4006         * system.h (MUST_PASS_IN_STACK): Poison.
4007         * tree.h (must_pass_in_stack_var_size): Declare.
4008         (must_pass_in_stack_var_size_or_pad): Declare.
4009         * calls.c (must_pass_in_stack_var_size): New.
4010         (must_pass_in_stack_var_size_or_pad): Rename from
4011         default_must_pass_in_stack.
4012         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
4013         (TARGET_MUST_PASS_IN_STACK): New.
4014         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
4015         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
4016         (TARGET_MUST_PASS_IN_STACK): New.
4017         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
4018         * config/frv/frv.c (frv_must_pass_in_stack): New.
4019         (TARGET_MUST_PASS_IN_STACK): New.
4020         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
4021         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
4022         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
4023         (ix86_must_pass_in_stack): Make static.
4024         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
4025         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
4026         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
4027         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
4028         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
4029         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
4030         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
4031         (mcore_must_pass_on_stack): Remove.
4032         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
4033         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
4034         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
4035         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
4036         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
4037         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
4038         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
4039         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
4040         (TARGET_MUST_PASS_IN_STACK): New.
4041         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
4042         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
4043         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
4044         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
4045         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
4046         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
4047         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
4048         MUST_PASS_IN_STACK.
4049
4050         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
4051         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
4052         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
4053         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
4054         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
4055         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
4056         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
4057         config/xtensa/xtensa.c: Use target hook.
4058
4059 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
4060
4061         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
4062         * configure: Rebuilt.
4063
4064 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
4065
4066         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
4067         * config/mips/mips.h (mips_reg_names): Don't declare.
4068         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
4069         (TARGET_NAME_REGS): Delete.
4070         (TARGET_SWITCHES): Remove -mrnames.
4071         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
4072         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
4073         in REGISTER_NAMES.
4074         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
4075         (override_options): Remove handling of TARGET_NAME_REGS.
4076
4077 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
4078
4079         * config/mips/mips.h (TARGET_*): Boolify.
4080
4081 2004-07-12  Nick Clifton  <nickc@redhat.com>
4082
4083         * config.gcc: Add sh-*-symbianelf target.
4084         * config/sh/sh.c: Add new target macros:
4085         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
4086         TARGET_CXX_IMPORT_EXPORT_CLASS.
4087         (sh_file_start): Create a definition of the .directive section.
4088         (sh_attribute): Add dllimport and dllexport attributes.
4089         * config/sh/symbian-pre.h: New file.
4090         * config/sh/symbian-post.h: New file.
4091         * config/sh/symbian.c: New file. Contains Symbian specific
4092         functions.
4093         * config/sh/sh-protos.h: Add prototypes for new functions
4094         provided by symbian.c.
4095         * config/sh/t-symbian: New file.
4096         * doc/extend.texi: Document support for dllimport and dllexport
4097         attributes by the sh-symbianelf target.
4098
4099 2004-07-12  James E Wilson  <wilson@specifixinc.com>
4100
4101         * Makefile.in (AR): Use @AR@ not ar.
4102         (NM): New.
4103         (AR_FOR_TARGET): Use $(AR) not ar for native.
4104         (NM_FOR_TARGET): Use $(NM) not nm for native.
4105         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
4106         * configure: Regenerate.
4107
4108 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
4109
4110         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
4111         special case.
4112         (ashldi3_sp64): Likewise.
4113
4114 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4115
4116         PR target/16477
4117         * pa.c (function_arg): Update comment.
4118         * pa.h (BLOCK_REG_PADDING): Define.
4119
4120 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4121
4122         PR tree-optimization/16461
4123         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
4124         arguments of phi nodes.
4125
4126 2004-07-12  Devang Patel  <dpatel@apple.com>
4127
4128         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
4129
4130 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
4131
4132         * function.c (expand_function_start): Ensure r_save is in Pmode.
4133         * calls.c (prepare_call_address): Ensure static_chain_value is
4134         in Pmode.
4135         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
4136         r_save_area are in Pmode.
4137         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
4138         fnaddr, and static_chain are in Pmode.
4139
4140 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
4141
4142         PR target/16445
4143         * config/ia64/ia64.c (bundling): Don't count ignored insns.
4144
4145 2004-07-12  Richard Henderson  <rth@redhat.com>
4146
4147         * target.h (struct gcc_target): Move gimplify_va_arg_expr
4148         next to build_builtin_va_list.
4149         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
4150         * builtins.c (gimplify_va_arg_expr): Likewise.
4151         * gimplify.c (copy_if_shared_r): Likewise.
4152
4153 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
4154
4155         * passes.c (rest_of_decl_compilation): Don't defer call of
4156         assemble_variable if its DECL_RTL is already set.
4157
4158 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
4159
4160         * cfgloop.h (struct loop): Add nb_iterations field.
4161         (current_loops): Declare.
4162         * tree-chrec.c (chrec_not_analyzed_yet,
4163         chrec_dont_know, chrec_known, count_ev_in_wider_type,
4164         chrec_contains_symbols_defined_in_loop): Remove the temporary
4165         hooks.
4166         * tree-flow-inline.h (loop_containing_stmt): New function.
4167         * tree-scalar-evolution.c: Add implementation.
4168         * tree-scalar-evolution.h: Add declarations.
4169
4170 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
4171
4172         PR rtl-optimization/15921
4173         * Makefile.in (global.o): Add recog.h.
4174
4175         * global.c (recog.h): Add the include-clause.
4176         (bb_info): New member earlyclobber.
4177         (allocate_bb_info, free_bb_info): Initialize/finish the new
4178         member.
4179         (earlyclobber_regclass, earlyclobber_regclass_length): The new
4180         global variables.
4181         (check_earlyclobber, regclass_intersect,
4182         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
4183         New functions.
4184         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
4185         (make_accurate_live_analysis): Modify pavin.
4186
4187 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
4188
4189         * tree-cfg.c (find_taken_edge): Statically compute the truth
4190         value of a predicate comparing an SSA_NAME to itself.
4191
4192 2004-07-12  Roger Sayle  <roger@eyesopen.com>
4193
4194         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
4195         rs6000 doesn't have shift-and-add or shift-and-sub instructions
4196         by returning the cost of a multiplication plus an addition.
4197
4198 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
4199
4200         PR tree-optimization/14107
4201         * gimplify.c (gimplify_return_expr): Accept a
4202         RETURN_EXPR with an error argument.
4203         * tree-optimize.c (init_tree_optimization_passes):
4204         Run pass_warn_function_return at -O0.
4205
4206 2004-07-12  Roger Sayle  <roger@eyesopen.com>
4207
4208         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
4209         index entry.
4210
4211 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
4212
4213         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
4214         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4215         * config/mips/3000.md: Add copyright notice.  Remove automota and
4216         function units; use generic ones instead.  Only define reservations
4217         for things that are different from generic.md.  Extend each clause
4218         to include r3900.
4219         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
4220         * config/mips/mips.md: Include them. Remove define_function_units.
4221         (alu, imuldiv): New automata and units.
4222
4223 2004-07-12  Ben Elliston  <bje@au.ibm.com>
4224
4225         * doc/invoke.texi (Optimize Options): Document -frename-registers
4226         not being enabled by default at -O3.
4227
4228 2004-07-11  Roger Sayle  <roger@eyesopen.com>
4229
4230         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
4231         floating point additions, to keep real immediate constant positive.
4232         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
4233         into X + C, and leave positive real constants as X - C.
4234
4235 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4236
4237         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
4238
4239 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4240
4241         PR tree-optimization/15654
4242         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
4243
4244 2004-07-11  Roger Sayle  <roger@eyesopen.com>
4245
4246         * builtins.c (fold_builtin_fputs): Don't bother converting the
4247         return type to integer_type_node, as we've already checked that
4248         the result will be ignored.
4249
4250         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
4251         that signed addition, subtraction, multiplication, division,
4252         remainder, negation and absolute value may potentially trap.
4253
4254         * fold-const.c (fold_ignored_result): New function to strip
4255         non-side-effecting tree nodes from an expression whose result
4256         is ignored.
4257         (fold_convert): Call fold_ignored_result when casting a value
4258         to VOID_TYPE.
4259         (omit_one_operand):  Call fold_ignored_result on the "omitted"
4260         operand when building a COMPOUND_EXPR.
4261         (pedantic_omit_one_operand): Likewise.
4262         * tree.h (fold_ignored_result): Prototype here.
4263         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
4264         when we're going to ignore the result.
4265
4266 2004-07-11  Richard Henderson  <rth@redhat.com>
4267
4268         PR tree-opt/16383
4269         * tree-ssa-ccp.c (fold_stmt_r): Split out...
4270         * tree.c (fields_compatible_p, find_compatible_field): ... new.
4271         * tree.h (fields_compatible_p, find_compatible_field): Declare.
4272         * tree-sra.c (sra_hash_tree): Hash fields by offset.
4273         (sra_elt_eq): Use fields_compatible_p.
4274         (generate_one_element_ref): Use find_compatible_field.
4275
4276 2004-07-11  Richard Henderson  <rth@redhat.com>
4277
4278         PR tree-opt/16422
4279         * tree-sra.c (generate_one_element_init): New.
4280         (generate_element_init): Use it.
4281         (scalarize_init): Push/pop gimplify context around it.
4282         (find_new_referenced_vars_1, find_new_referenced_vars): New.
4283         * gimplify.c (gimplify_expr): Allow SSA_NAME.
4284
4285 2004-07-11  Roger Sayle  <roger@eyesopen.com>
4286
4287         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
4288         combine.c's combine_insn_cost.
4289         * rtl.h (insn_rtx_cost): Prototype here.
4290         * combine.c (combine_insn_cost): Delete function.
4291         (combine_validate_cost): Update callers of combine_insn_cost to
4292         call insn_rtx_cost instead.
4293         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
4294         requesting the rtx_cost of call and/or jump instructions.
4295
4296         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
4297         rtx_cost directly.  Don't request/use the cost of call or jump
4298         instructions.  Return -1 if the cost of any instruction can't be
4299         determined (or the BB contains a function call).
4300         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
4301         -1 (i.e. can't determine the cost of any instruction or the basic
4302         block contains a subroutine call).
4303         (find_if_case_2): Likewise.
4304
4305 2004-07-11  Roger Sayle  <roger@eyesopen.com>
4306
4307         * rs6000.c (struct processor_costs): Change semantics of fields to
4308         include the COST_N_INSNS scaling, and update all initializers.
4309         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
4310         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
4311         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
4312         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
4313
4314 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
4315
4316         * LANGUAGES: Remove obsolete information.
4317
4318 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
4319
4320         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
4321         SIGBUS signal frames, the PSW address points *to* the faulting
4322         instruction, not after it.
4323
4324 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
4325
4326         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
4327         added to TLS symbol addresses.
4328
4329 2004-07-11  Richard Henderson  <rth@redhat.com>
4330
4331         * expmed.c (init_expmed): Use stack-local structures for
4332         temporary rtl.  Don't recognize shifts.
4333
4334 2004-07-11  Richard Henderson  <rth@redhat.com>
4335
4336         * expr.c (store_expr): Don't fiddle subreg promotion for types
4337         with precision smaller than the mode.
4338
4339 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
4340
4341         * tree.h (all_types_permanent): Remove.
4342
4343 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
4344
4345         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
4346         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
4347         * langhooks.c (lhd_clear_binding_stack): Remove.
4348         * langhooks-def.h (lhd_clear_binding_stack,
4349         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
4350         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
4351         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
4352         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
4353         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
4354         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
4355         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
4356         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
4357         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
4358         * tree.h (poplevel): Don't declare.
4359         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
4360         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
4361         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
4362         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
4363         Remove.
4364
4365 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
4366
4367         PR tree-optimization/16437
4368         * c-common.c (shorten_compare): Don't mark result of conversion to
4369         narrower signed type as overflowing.
4370         * fold-const.c (decode_field_reference): Determine whether
4371         signedness comes from outer type using precision rather than size.
4372
4373 2004-07-11  Phil Edwards  <phil@codesourcery.com>
4374
4375         * configure.ac:  Alphabetize --enable-checking list, add
4376         missing valgrind entry.
4377         * configure:  Regenerate.
4378
4379 2004-07-11  Phil Edwards  <phil@codesourcery.com>
4380
4381         * doc/install.texi (Testing):  Fix syntax in "make check" example.
4382
4383 2004-07-10  James E Wilson  <wilson@specifixinc.com>
4384
4385         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
4386
4387 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4388
4389         PR rtl-optimization/16001
4390         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
4391         niter_expr.
4392
4393 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
4394
4395         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
4396
4397 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
4398             James Morrison  <phython@gcc.gnu.org>
4399
4400         * doc/contrib.texi (Contributors): Add gfortran contributors and
4401         fix a couple of typos.
4402
4403 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4404
4405         PR rtl-optimization/15387
4406         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
4407         to incoming args space correctly.
4408
4409 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4410
4411         * pa.c (output_indirect_call): Only use %r2 as the link register in
4412         indirect calls with the long PA 2.0 pc-relative branch.
4413
4414 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
4415
4416         * config/i386/i386.c (override_options): Pick a 64-bit CPU
4417         for the default tuning if TARGET_64BIT.
4418
4419 2004-07-10  Richard Henderson  <rth@redhat.com>
4420
4421         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
4422         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
4423
4424 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
4425
4426         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
4427         * expmed.c (store_bit_field, extract_bit_field): Remove last
4428         argument.
4429         * builtins.c (expand_builtin_signbit): Adjust callers.
4430         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
4431         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
4432         * ifcvt.c (noce_emit_move_insn): Likewise.
4433         * stmt.c (expand_return): Likewise.
4434         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
4435         store_field, expand_expr_real_1): Likewise.
4436
4437 2004-07-10  Richard Henderson  <rth@redhat.com>
4438
4439         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
4440
4441 2004-07-09  Mike Stump  <mrs@apple.com>
4442
4443         * config/darwin.c (no_dead_strip): Add.
4444         (HAVE_DEAD_STRIP): Add.
4445         (darwin_emit_unwind_label): Ensure that we don't dead code strip
4446         the .eh label.
4447
4448 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4449
4450         * tree-ssa-loop-im.c: New file.
4451         * Makefile.in (tree-ssa-loop-im.o): Add.
4452         * cfgloop.c (superloop_at_depth): New function.
4453         * cfgloop.h (superloop_at_depth): Declare.
4454         * common.opt (ftree-lim): New flag.
4455         * expr.c (array_ref_up_bound): New function.
4456         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
4457         * timevar.def (TV_LIM): New timevar.
4458         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
4459         computing immediate uses of a phi node.
4460         * tree-flow.h (struct tree_ann_common_d): Add aux field.
4461         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
4462         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
4463         * tree-pass.h (pass_lim): Declare.
4464         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
4465         functions.
4466         (pass_lim): New pass structure.
4467         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
4468         * tree.c (in_array_bounds_p): New function.
4469         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
4470         (in_array_bounds_p, array_ref_up_bound): Declare.
4471         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
4472         * doc/passes.texi (tree-ssa-loop-im.c): Document.
4473
4474 2004-07-09  Richard Henderson  <rth@redhat.com>
4475
4476         * builtins.c (expand_builtin_stpcpy): Don't modify len.
4477
4478         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
4479         with prejudice.
4480
4481 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
4482
4483         * flags.h: Delete redundant prototypes that are being generated
4484         in options.h from common.opt.
4485         * common.opt: Add in the expository comments formerly in flags.h.
4486
4487 2004-07-09  Jan Beulich  <jbeulich@novell.com>
4488
4489         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
4490         available for use only when TARGET_MMX/_SSE is set, and check for
4491         variable argument function if any register count is non-zero.
4492         (function_arg): Correctly suppress repeated warnings for passing SSE
4493         vectors are arguments without SSE enabled.
4494         (ix86_function_arg_boundary): Without SSE enabled, the use of what
4495         would be SSE register modes does no longer influence the alignment.
4496
4497 2004-07-09  Richard Henderson  <rth@redhat.com>
4498
4499         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
4500         Always align upward to arg boundary.  Use size_in_bytes/round_up.
4501         Maintain type-correctness of constants.
4502         * stor-layout.c (round_up, round_down): Special-case powers of 2.
4503
4504 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
4505
4506         * config/sparc/sparc.c (*_costs): Scale instruction costs
4507         by COSTS_N_INSNS.
4508         (sparc_rtx_costs): Adjust as appropriate.
4509
4510 2004-07-09  Jan Beulich  <jbeulich@novell.com>
4511
4512         * config/i386/mm3dnow.h: New.
4513         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
4514
4515 2004-07-09  Richard Henderson  <rth@redhat.com>
4516
4517         * simplify-rtx.c (simplify_const_relational_operation): Only
4518         look at bounds of scalar integers.
4519
4520 2004-07-09  Jan Beulich  <jbeulich@novell.com>
4521
4522         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
4523
4524 2004-07-09  Andrew Pinski  <apinski@apple.com>
4525
4526         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
4527         always referenced.
4528         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
4529         UOBJC_METACLASS_decl.
4530
4531 2004-07-09  James E Wilson  <wilson@specifixinc.com>
4532
4533         PR target/16364
4534         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
4535         do return a parallel if hfa_mode == XFmode and mode == TImode.
4536
4537 2004-07-09  Jan Beulich  <jbeulich@novell.com>
4538
4539         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
4540         permissible for unary plus.
4541
4542 2004-07-09  Jan Beulich  <jbeulich@novell.com>
4543
4544         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
4545         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
4546         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
4547         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
4548         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
4549         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
4550         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
4551         (BUILTIN_xxxIMAX): New.
4552         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
4553         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
4554         BUILT_IN_PARITYIMAX.
4555
4556 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
4557
4558         * config/sparc/sparc.h (processor_costs): Define.
4559         (sparc_costs): Declare.
4560         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
4561         hypersparc_costs, sparclet_costs, ultrasparc_costs,
4562         ultrasparc3_costs): New.
4563         (sparc_override_options): Set sparc_costs as appropriate.
4564         (sparc_rtx_costs): Use sparc_costs instead of messy
4565         conditionals.
4566
4567 2004-07-09  Steven Bosscher  <stevenb@suse.de>
4568
4569         * doc/md.texi (Processor pipeline description): Mention that
4570         the old pipeline description is deprecated.
4571
4572         * config/rs6000/7450.md (automaton ppc7450): Split up, move
4573         mciu_7450 function unit to...
4574         (automaton ppc7450mciu): ...new automaton.
4575
4576         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
4577         (schedule_block): Don't consider inserting bubbles.
4578         (sched_init): Don't initialize DFA bubbles.
4579         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
4580         TARGET_SCHED_DFA_BUBBLE): Remove.
4581         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
4582         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
4583         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
4584
4585         * stmt.c (conditional_context): Remove prototype.
4586         * tree.h (conditional_context): Remove.
4587         * tree-cfg.c (pre_insert_on_edge): Remove.
4588
4589         * c-common.h (c_expand_asm_operands): Remove prototype.
4590         * c-typeck.c (c_expand_asm_operands): Remove.
4591
4592 2004-07-09  Jan Beulich  <jbeulich@novell.com>
4593
4594         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
4595         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
4596         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
4597         and V8QI are class SSE. All sufficiently small remaining vector modes
4598         must be passed in one or two integer registers.
4599         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
4600         returned in memory.
4601         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
4602         __builtin_ia32_pmuludq128 have non-uniform argument and return types
4603         and must thus be handled explicitly.
4604         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
4605         MMX and XMM regs.
4606         (movv8qi_internal, movv4hi_internal, movv2si_internal,
4607         movv2sf_internal): Permit moving between MMX and XMM registers (since
4608         MMX areguments and return values are passed in XMM registers).
4609         (sse2_umulsidi3): Correct type and mode.
4610
4611 2004-07-09  Richard Henderson  <rth@redhat.com>
4612
4613         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
4614
4615 2004-07-09  Eric Christopher  <echristo@redhat.com>
4616
4617         * config/rs6000/40x.md: Split into two automatons.
4618
4619 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
4620             Andrew Pinski  <apinski@apple.com>
4621
4622         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
4623         on when we have more than one input file.
4624         (c_common_parse_file): Restore loop over all input files.
4625         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
4626
4627         * c-decl.c (set_type_context): New function.
4628         (pop_scope): Use it to set context of types.  When we
4629         encounter a TYPE_DECL, set the context of the attached type too.
4630         (pop_file_scope): Don't call cpp_undef_all here.
4631         (diagnose_mismatched_decls): Do not complain about a second
4632         definition of an 'extern inline' function if it's not in the
4633         same translation unit.  Do not complain about inline
4634         declaration after use if the use was in a different
4635         translation unit.
4636         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
4637         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
4638         the external scope.
4639         (pushdecl_top_level): Likewise.
4640         (grokdeclarator): Clarify what is going on with setting
4641         DECL_EXTERNAL on function types, a little.
4642         (c_write_global_declarations): Don't do anything if
4643         -fsyntax-only or errors have been encountered.
4644
4645 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
4646
4647         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
4648
4649 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4650
4651         PR target/16459
4652         * pa.c (output_indirect_call): Use %r2 as the link register when
4653         calling $$dyncall with a pc-relative branch.
4654
4655 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
4656
4657         * doc/install.texi (Binaries): Mention OpenPKG.
4658
4659 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
4660
4661         Fix PR tree-optimization/15555
4662         * tree-dfa.c (dump_variable): If the variable is a pointer
4663         SSA_NAME, also dump its points-to information.
4664         * tree-flow.h (struct ptr_info_def): Add field
4665         is_dereferenced.
4666         (dump_points_to_info_for): Declare.
4667         (debug_points_to_info_for): Declare.
4668         * tree-optimize.c (init_tree_optimization_passes): Add a
4669         second alias analysis pass after DOM2.
4670         Move pass_del_pta to a later spot.
4671         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
4672         create a name tags when we find a dereferenced pointer.  Just
4673         mark the pointer dereferenced.
4674         (collect_points_to_info_for): Move code to clear points-to
4675         information to create_name_tags.
4676         (create_name_tags): New function.
4677         (compute_flow_sensitive_aliasing): Call it.
4678         (setup_pointers_and_addressables): Mark type tags for renaming
4679         here instead of ...
4680         (create_memory_tag): ... here.
4681         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
4682         (dump_points_to_info_for): Declare extern.
4683         (debug_points_to_info_for): New function.
4684
4685 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
4686
4687         * config/arc/arc.md: Switch to DFA-based scheduler description.
4688         * config/arc/arc.c: Switch to DFA-based scheduler description.
4689
4690 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
4691
4692         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
4693         pointer.
4694
4695 2004-07-09  Richard Henderson  <rth@redhat.com>
4696
4697         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
4698         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4699         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
4700         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
4701
4702         * config/v850/v850-protos.h (v850_va_arg): Remove.
4703         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4704         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
4705         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
4706         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
4707         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
4708
4709 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
4710
4711         PR target/12133
4712         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
4713         and DImode to use +/-4k offset.
4714
4715 2004-07-09  Richard Henderson  <rth@redhat.com>
4716
4717         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
4718         Remove.
4719         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4720         (xstormy16_gimplify_va_arg_expr): Rewrite from
4721         xstormy16_expand_builtin_va_arg.
4722         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
4723
4724         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
4725         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
4726
4727         * config/sh/sh-protos.h (sh_va_arg): Remove.
4728         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4729         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
4730         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
4731
4732         * config/pa/pa-protos.h (hppa_va_arg): Remove.
4733         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4734         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
4735         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
4736
4737         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
4738         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4739         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
4740         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
4741
4742 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4743
4744         * config/sparc/sparc.md (return): Rewrite length formula.
4745         * config/sparc/sparc.c (output_return): Pass 1 as 5th
4746         argument to final_scan_insn when in a delay slot.
4747         (output_sibcall): Likewise.
4748
4749 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
4750
4751         * arm.c (arm_cpp_interwork): New variable.
4752         (arm_override_options): Set it if TARGET_INTERWORK was on the command
4753         line.
4754         * arm.h (arm_cpp_interwork): Declare it.
4755         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
4756         __THUMB_INTERWORK__ in the preprocessor.
4757
4758 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
4759
4760         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
4761
4762 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4763
4764         PR target/16416
4765         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
4766         Override default settings to account for -m32 and -m64.
4767
4768 2004-07-08  Randolph Chung  <tausq@debian.org>
4769
4770         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
4771
4772 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
4773
4774         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
4775         before comparing it as such.
4776
4777 2004-07-08  Richard Henderson  <rth@redhat.com>
4778
4779         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
4780         temporary.  Use bit arithmetic to align.
4781
4782 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
4783
4784         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
4785         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
4786         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
4787         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
4788         add_labels_and_missing_jumps, find_jump_block,
4789         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
4790         Likewise.
4791         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
4792         link_btr_uses, move_btr_def): Likewise.
4793         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
4794         expand_builtin_expect_jump): Likewise.
4795         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
4796         * calls.c (expand_call, emit_library_call_value_1): Likewise.
4797         * cfganal.c (forwarder_block_p): Likewise.
4798         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
4799         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
4800         find_bb_boundaries): Likewise.
4801         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4802         merge_blocks_move_predecessor_nojumps,
4803         merge_blocks_move_successor_nojumps, insns_match_p,
4804         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
4805         try_optimize_cfg): Likewise.
4806         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
4807         * cfglayout.c (skip_insns_after_block, label_for_bb,
4808         record_effective_endpoints, insn_locators_initialize,
4809         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
4810         * cfgmainloop.c (create_loop_notes): Likewise.
4811         * cfgrtl.c (delete_insn, delete_insn_chain,
4812         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
4813         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
4814         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
4815         redirect_branch_edge, force_nonfallthru_and_redirect,
4816         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
4817         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
4818         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
4819         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
4820         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
4821         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
4822         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
4823         * combine.c (combine_instructions, can_combine_p, try_combine,
4824         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
4825         distribute_notes, distribute_links, insn_cuid): Likewise.
4826         * cse.c (fold_rtx, cse_insn, cse_around_loop,
4827         invalidate_skipped_block, cse_set_around_loop,
4828         cse_end_of_basic_block, cse_main, cse_basic_block,
4829         cse_condition_code_reg): Likewise.
4830         * cselib.c (cselib_process_insn): Likewise.
4831         * ddg.c (create_ddg): Likewise.
4832         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
4833         Likewise.
4834         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
4835         gen_label_die, dwarf2out_var_location): Likewise.
4836         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
4837         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
4838         last_call_insn, active_insn_p, next_label, prev_label,
4839         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
4840         add_insn_before, remove_insn, add_function_usage_to,
4841         reorder_insns, find_line_note, remove_unnecessary_notes,
4842         emit_insn_after_1, classify_insn): Likewise.
4843         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
4844         connect_post_landing_pads, sjlj_mark_call_sites,
4845         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
4846         can_throw_internal, can_throw_external, set_nothrow_function_flags,
4847         convert_to_eh_region_ranges): Likewise.
4848         * explow.c (optimize_save_area_alloca): Likewise.
4849         * expr.c (expand_expr_real): Likewise.
4850         * final.c (insn_current_reference_address, compute_alignments,
4851         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
4852         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
4853         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
4854         propagate_block_delete_insn, propagate_one_insn,
4855         init_propagate_block_info, propagate_block, libcall_dead_p,
4856         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
4857         Likewise.
4858         * function.c (instantiate_virtual_regs, reorder_blocks_1,
4859         expand_function_start, expand_function_end, contains,
4860         thread_prologue_and_epilogue_insns,
4861         reposition_prologue_and_epilogue_notes): Likewise.
4862         * gcse.c (constprop_register, bypass_conditional_jumps,
4863         insert_insn_end_bb, gcse_after_reload): Likewise.
4864         * genemit.c (gen_expand, gen_split): Likewise.
4865         * genpeep.c (gen_peephole, main): Likewise.
4866         * global.c (build_insn_chain): Likewise.
4867         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
4868         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
4869         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
4870         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
4871         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
4872         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
4873         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
4874         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
4875         dead_or_predicable): Likewise.
4876         * integrate.c (try_constants): Likewise.
4877         * jump.c (rebuild_jump_labels, cleanup_barriers,
4878         purge_line_number_notes, init_label_info, mark_all_labels,
4879         squeeze_notes, get_label_before, get_label_after,
4880         reversed_comparison_code_parts, simplejump_p, pc_set,
4881         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
4882         delete_barrier, delete_prior_computation, delete_computation,
4883         delete_related_insns, delete_for_peephole, redirect_jump):
4884         Likewise.
4885         * lcm.c (optimize_mode_switching): Likewise.
4886         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
4887         Likewise.
4888         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
4889         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
4890         * loop-iv.c (simplify_using_assignment): Likewise.
4891         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
4892         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
4893         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
4894         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
4895         check_insn_for_givs, check_final_value, update_giv_derive,
4896         basic_induction_var, product_cheap_p, check_dbra_loop,
4897         loop_insn_first_p, last_use_this_basic_block,
4898         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
4899         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
4900         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
4901         sms_schedule_by_order): Likewise.
4902         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
4903         * postreload.c (reload_cse_simplify_operands, reload_combine,
4904         reload_cse_move2add): Likewise.
4905         * predict.c (can_predict_insn_p, estimate_probability,
4906         expected_value_to_br_prob, process_note_predictions): Likewise.
4907         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
4908         * profile.c (branch_prob): Likewise.
4909         * ra-build.c (live_out_1, livethrough_conflicts_bb,
4910         detect_webs_set_in_cond_jump): Likewise.
4911         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
4912         ra_print_rtl_with_bb): Likewise.
4913         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
4914         * recog.c (next_insn_tests_no_inequality, find_single_use,
4915         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
4916         * reg-stack.c (next_flags_user, record_label_references,
4917         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
4918         compensate_edge, convert_regs_1): Likewise.
4919         * regclass.c (scan_one_insn): Likewise.
4920         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
4921         regmove_optimize, fixup_match_1, single_set_for_csa,
4922         combine_stack_adjustments_for_block): Likewise.
4923         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
4924         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
4925         find_equiv_reg): Likewise.
4926         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
4927         reload_as_needed, emit_input_reload_insns, do_output_reload,
4928         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
4929         Likewise.
4930         * reorg.c (find_end_label, emit_delay_sequence,
4931         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
4932         get_jump_flags, rare_destination, mostly_true_jump,
4933         try_merge_delay_insns, redundant_insn, own_thread_p,
4934         fill_simple_delay_slots, fill_slots_from_thread,
4935         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
4936         dbr_schedule): Likewise.
4937         * resource.c (find_basic_block, next_insn_no_annul,
4938         find_dead_or_set_registers, mark_target_live_regs): Likewise.
4939         * rtl.h (RTX_PREV): Likewise.
4940         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
4941         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
4942         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
4943         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
4944         tablejump_p, computed_jump_p, insns_safe_to_move_p,
4945         find_first_parameter_load, can_hoist_insn_p): Likewise.
4946         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
4947         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
4948         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
4949         schedule_ebbs): Likewise.
4950         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
4951         is_conditionally_protected, can_schedule_ready_p,
4952         add_branch_dependences, debug_dependencies): Likewise.
4953         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
4954         Likewise.
4955         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
4956         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
4957         set_dominates_use, ujump_to_loop_cont): Likewise.
4958         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
4959         * varasm.c (output_constant_pool_1): Likewise.
4960
4961 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4962
4963         * tree-scalar-evolution.c: New file.
4964         * tree-scalar-evolution.h: New file.
4965         * tree-ssa-loop-niter.c: New file.
4966         * Makefile.in (SCEV_H): New.
4967         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
4968         * cfgloop.h (struct loop): Add bounds field.
4969         * tree-flow.h (struct tree_niter_desc): New type.
4970         (number_of_iterations_cond, number_of_iterations_exit,
4971         loop_niter_by_eval, find_loop_niter_by_eval,
4972         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
4973         free_numbers_of_iterations_estimates): Declare.
4974         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
4975         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
4976         * doc/invoke.texi (max-iterations-to-track): Document.
4977
4978 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4979
4980         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
4981         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
4982         (MODE_AFTER): Add cast appropriately.
4983         * config/sh/sh.md (movdi splitter): Likewise.
4984         (casesi_worker_2): Add const qualifier appropriately.
4985         (eh_return): Remove unused variable.
4986         (insv): Initialize v;
4987
4988 2004-07-08  Richard Henderson  <rth@redhat.com>
4989
4990         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
4991         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4992         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
4993         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
4994         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
4995
4996         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
4997         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4998         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
4999         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
5000
5001         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
5002         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
5003         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
5004         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
5005
5006         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
5007         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
5008         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
5009         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
5010
5011         * config/i860/i860-protos.h (i860_va_arg): Remove.
5012         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
5013         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
5014         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
5015
5016 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
5017
5018         * system.h: Prototype getpagesize if missing.
5019         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
5020         * configure: Regenerate.
5021         * config.in: Regenerate.
5022
5023 2004-07-08  Richard Henderson  <rth@redhat.com>
5024
5025         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
5026         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
5027         (fr30_gimplify_va_arg_expr): New.
5028         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
5029         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
5030
5031 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
5032
5033         PR target/16414
5034         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
5035         of asm_noperands result.
5036
5037 2004-07-08  Richard Henderson  <rth@redhat.com>
5038
5039         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
5040         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
5041         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
5042         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
5043
5044 2004-07-08  Richard Henderson  <rth@redhat.com>
5045
5046         * builtins.c (ind_gimplify_va_arg_expr): New.
5047         * tree.h (ind_gimplify_va_arg_expr): Declare.
5048         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
5049
5050 2004-07-08  Jan Beulich  <jbeulich@novell.com>
5051
5052         * expmed.c (extract_bit_field): Correct condition to use vec_extract
5053         patterns also on vector elements other than the first one.
5054         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
5055         break statements.
5056
5057 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
5058
5059         * config/rs6000/darwin-ldouble.c: Correct reference
5060         to the Linnainmaa paper.
5061
5062 2004-07-08  Richard Henderson  <rth@redhat.com>
5063
5064         * config/arc/arc-protos.h (arc_va_arg): Remove.
5065         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
5066         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
5067         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
5068
5069         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
5070         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
5071         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
5072         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
5073
5074 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5075
5076         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
5077
5078 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
5079
5080         * c-decl.c (static_ctors, static_dtors): Make static.
5081         (pop_file_scope): Call c_common_write_pch and
5082         cgraph_finalize_compilation_unit here.
5083         (build_cdtor): Moved here from c-objc-common.c; simplify.
5084         (c_write_global_declarations_1): Clarify comment.
5085         (c_write_global_declarations): Close the external scope before
5086         doing anything else.  Call build_cdtor, cgraph_optimize, and
5087         mudflap_finish_file here.
5088         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
5089         Clarify comment.
5090         * c-objc-common.c: No need to include cgraph.h.
5091         (build_cdtor): Moved to c-decl.c.
5092         (c_objc_common_finish_file): Delete.
5093         * c-tree.h: Update to match.
5094         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
5095         (generate_static_references): Set TREE_USED before calling finish_decl.
5096         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
5097         on the static_instances_decl.
5098
5099 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
5100
5101         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
5102         decls when there is only one input translation unit.
5103         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
5104         change of 2004-07-05; do not treat declarations with
5105         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
5106         * opts.c (cur_in_fname): Delete.
5107         * opts.h: Likewise.
5108         * tree.c: Revert changes of 2004-07-05; no special treatment
5109         for TRANSLATION_UNIT_DECLs.
5110         * Makefile.in (tree.o): Update dependencies.
5111
5112 2004-07-08  Roger Sayle  <roger@eyesopen.com>
5113
5114         * builtins.c (fold_builtin_strcpy): Merge functionality from
5115         simplify_builtin_strcpy.  Add additional len argument.  No longer
5116         static.  Remove function prototype.
5117         (fold_builtin_strncpy): Likewise integrate functionality from
5118         simplify_builtin_strncpy.  Add additional slen argument.  No
5119         longer static.  Remove function prototype.
5120         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
5121         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
5122         types of "ignore" and "unlocked" parameters to bool.
5123         (fold_builtin_1):  Add additional ignore argument.  Call renamed
5124         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
5125         builtins.  Update arguments to fold_builtin_strncpy and
5126         fold_builtin_strcpy.  Add function prototype.
5127         (fold_builtin): Add additional Boolean ignore argument to pass
5128         to fold_builtin_1.
5129         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
5130         and fold_builtin_strncpy instead of simplify_builtin_fputs,
5131         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
5132
5133         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
5134         simplify_builtin_strncpy): Delete function prototypes.
5135         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
5136         fold_builtin_strncpy): Add function prototypes here.
5137         (fold_builtin): Update function prototype with new "bool ignore".
5138
5139         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
5140         (ccp_fold_builtin):  Update call to fold_builtin.  Call
5141         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
5142         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
5143         simplify_builtin_strncpy respectively.
5144         * fold-const.c (fold): Update call to fold_builtin.
5145
5146 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
5147
5148         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
5149         to strcpy.
5150
5151         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
5152         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
5153         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
5154         * calls.c: Remove ifdefs of macros above.
5155         * functions.c: Likewise.
5156         * expr.c: Likewise.
5157
5158 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5159
5160         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
5161         (arch attribute): Delete.
5162         (current_function_calls_alloca attribute): Rename into calls_alloca.
5163         (calls_eh_return): New attribute.
5164         (leaf_function): Likewise.
5165         (length attribute): Fix formula for sibcalls.
5166         (return insn): Correctly compute the 'length' attribute.
5167         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
5168
5169 2004-07-08  Richard Henderson  <rth@redhat.com>
5170
5171         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
5172         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
5173         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
5174         * tree-eh.c (lower_eh_constructs_1): Likewise.
5175         * tree-sra.c (sra_walk_modify_expr): Likewise.
5176         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5177         (eliminate_unnecessary_stmts): Likewise.
5178         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
5179         * tree-tailcall.c (optimize_tail_call): Likewise.
5180         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
5181
5182 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
5183             Jakub Jelinek  <jakub@redhat.com>
5184
5185         * config/i386/i386.c (override_options): Enable
5186         SSE prefetches with -mtune, as long as we are
5187         compiling for i686 or higher.  All i686 processors
5188         accept SSE prefetches as NOPS, some i586's don't.
5189
5190 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5191
5192         PR target/10567
5193         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
5194
5195 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
5196
5197         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
5198         the handling of clobbering ASM_EXPRs.
5199
5200 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5201
5202         PR target/16430
5203         * config/sparc/sparc.c (function_value): In 64-bit mode,
5204         return the aggregates larger than 16 bytes like unions.
5205
5206 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5207
5208         PR target/16199
5209         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
5210         'temp' is zero, generate new pseudos as needed and emit the
5211         sequence of insns in single-assignment form.  Resync comments
5212         with code.
5213         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
5214         function before reload.
5215
5216 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
5217
5218         * vec.c (vec_assert_fail): Remove duplicate 'function'.
5219
5220         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
5221
5222         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
5223         Allocation is signed.
5224         (VEC_reserve): Return flag, allocation is signed.
5225
5226 2004-07-08  Richard Henderson  <rth@redhat.com>
5227
5228         * tree-ssa-ccp.c (fold_stmt): Get type directly from
5229         OBJ_TYPE_REF_OBJECT.
5230
5231 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
5232             Neil Booth  <neil@daikokuya.co.uk>
5233
5234         PR c/2511
5235         PR c/3325
5236         * c-decl.c (finish_struct): Ensure bit-fields are given the
5237         correct type.
5238         * c-common.c (c_common_signed_or_unsigned_type): For C, require
5239         the precision to match as well as the mode.
5240         * expr.c (reduce_to_bit_field_precision): New function.
5241         (expand_expr_real_1): Reduce expressions of bit-field type to
5242         proper precision.
5243         * langhooks.h (reduce_bit_field_operations): New hook.
5244         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5245         Define.
5246         * c-lang.c, objc/objc-lang.c
5247         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
5248         * objc/objc-act.c (check_ivars): Convert types to bit-field types
5249         before checking.
5250         * tree.c (build_nonstandard_integer_type): New function.
5251         * tree.h (build_nonstandard_integer_type): New prototype.
5252         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
5253         conversions between integer and boolean types as useless.
5254
5255 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
5256
5257         * c-common.c (c_common_nodes_and_builtins): Do not
5258         create __builtin_ptrdiff_t and __builtin_size_t.
5259
5260 2004-07-08  Andrew Pinski  <apinski@apple.com>
5261
5262         * Makefile.in (libbackend.o): Add -combine to the gcc
5263         command line.
5264
5265 2004-07-08  Nick Clifton  <nickc@redhat.com>
5266
5267         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
5268         Set to -Os.
5269
5270 2004-07-08  Richard Henderson  <rth@redhat.com>
5271
5272         * except.c (expand_eh_region_start, expand_eh_region_end,
5273         expand_eh_handler, expand_eh_region_end_cleanup,
5274         expand_start_all_catch, expand_start_catch, expand_end_catch,
5275         expand_end_all_catch, expand_eh_region_end_allowed,
5276         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
5277         expand_eh_region_end_fixup): Remove.
5278         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
5279         cleanups, outer_cleanups, label_chain, exception_region.
5280         (struct goto_fixup): Remove stack_level, cleanup_list_list.
5281         (struct label_chain): Remove.
5282         (struct stmt_status): Remove x_stack_block_stack.
5283         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
5284         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
5285         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
5286         end_cleanup_deferral, last_cleanup_this_contour,
5287         containing_blocks_have_cleanups_or_stack_level,
5288         any_pending_cleanups): Remove.
5289         (expand_null_return_1): Take no arguments.
5290         (expand_label, expand_naked_return, expand_return,
5291         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
5292         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
5293         expand_end_case_type): Don't use any of them.
5294         * calls.c (expand_call): Likewise.
5295         * dojump.c (do_jump): Likewise.
5296         * function.c (expand_function_end): Likewise.
5297         * expr.c (store_expr, expand_expr_real_1): Likewise.
5298         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
5299         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
5300         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
5301         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
5302         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
5303         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
5304         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
5305         for WITH_CLEANUP_EXPR.
5306         (gimple_push_cleanup): Likewise.
5307         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
5308         * print-tree.c (print_node): Likewise.
5309         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
5310         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
5311         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
5312         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
5313         (GOTO_SUBROUTINE_EXPR): Remove.
5314         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
5315         (DECL_TOO_LATE): Remove.
5316         * except.h, tree.h: Update decls.
5317
5318 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
5319
5320         * explow.c (optimize_save_area_alloca): Do not accept parameters.
5321         * passes.c (rest_of_handle_final): Handle symout.
5322         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
5323         Push timevar here.
5324         (rest_of_handle_sched): Break out SMS.  Remove ifs for
5325         flag_schedule_insns and flag_modulo_sched.
5326         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
5327         collect at the end.
5328         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
5329         (rest_of_handle_partition_blocks, rest_of_handle_sms,
5330         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
5331         rest_of_handle_mode_switching, rest_of_handle_jump,
5332         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
5333         rest_of_handle_jump2, rest_of_handle_postreload,
5334         rest_of_handle_flow2, rest_of_clean_state,
5335         rest_of_handle_shorten_branches,
5336         rest_of_handle_prologue_epilogue,
5337         rest_of_handle_branch_target_load_optimize): New.
5338         (rest_of_compilation): Call the above.  Remove ggc_collect
5339         calls moved to rest_of_handle_*.
5340         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
5341
5342         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
5343         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
5344         * except.h (set_nothrow_function_flags): Update comment.
5345         * function.c (current_function_nothrow): Remove.
5346         * output.h (current_function_nothrow): Remove.
5347         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
5348         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
5349
5350 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5351
5352         PR bootstrap/16326
5353         * reorg.c: Revert 2004-06-30 change.
5354         (find_end_label): If HAVE_epilogue and !HAVE_return,
5355         return 0 instead of creating a label at the end of the insn chain.
5356         (optimize_skip): Account for the failure mode of find_end_label.
5357         (fill_simple_delay_slots): Likewise.
5358         (fill_slots_from_thread): Likewise.
5359         (relax_delay_slots): Likewise.
5360
5361 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
5362
5363         * tree-flow.h (addressable_vars): Declare.
5364         * tree-ssa-alias.c (addressable_vars): Define.
5365         (setup_pointers_and_addressables): Add addressable variables
5366         to addressable_vars.
5367         * tree-ssa-operands.c (get_stmt_operands): Move
5368         handling of ASM_EXPRs ...
5369         (get_asm_expr_operands): ... here.
5370         When the ASM_EXPR clobbers memory, also clobber addressable
5371         variables.
5372         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
5373         (delete_tree_ssa): Reset addressable_vars.
5374
5375 2004-07-07  Jan Beulich  <jbeulich@novell.com>
5376             Richard Henderson  <rth@redhat.com>
5377
5378         * varasm.c (assemble_variable): Use assemble_zeros for
5379         zero-initialized variables.
5380         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
5381         for SECCAT_BSS and SECCAT_TBSS.
5382
5383 2004-07-07  Jan Beulich  <jbeulich@novell.com>
5384
5385         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
5386
5387         * expmed.c (emit_store_flag): Also special-case double-word
5388         (in-)equality comparison against -1.
5389
5390         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
5391         passing arguments the containers for which are registers.
5392
5393         * calls.c (emit_library_call_value_1): Use mode of function parameter
5394         rather than that of argument since constants have none.
5395
5396 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
5397
5398         Introduce H8SX support.
5399         * expr.c (expand_strcpy): Renamed and moved to...
5400         * builtins.c (expand_movstr): ... here.  Tweak.
5401         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
5402         computed or has side effects.
5403         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
5404         unused, or if mempcpy fails.  Adjust the return value in the
5405         latter case.  Use movstr if everything else fails.
5406         * doc/md.texi (movstr): Document.
5407         (movmemM, clrmemM): Fix explanation of memory block operands.
5408         * config/h8300/h8300.md (stpcpy): Renamed to...
5409         (movstr): ... this.  Adjust.
5410         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
5411         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
5412         movmem* and clrstr* to clrmem*.
5413         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
5414         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
5415         GENERAL_REGS, always.
5416         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
5417         getting the stack pointer as addr.
5418         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
5419         from general_operand_dst.
5420         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
5421         variant of...
5422         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
5423         instead of requiring it to match only before reload.
5424         (stpcpy_internal_normal): New, normal-mode variant of...
5425         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
5426         `D' instead of requiring it to match only before reload.
5427         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
5428         mode argument.
5429         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
5430         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
5431         h8300_get_index.
5432         * config/h8300/h8300.md (attr type): Add call.
5433         (attr can_delay): If type is call, set it no.
5434         (call, call_value): Set type to call.
5435         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
5436         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
5437         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
5438         * tree.c (get_narrower): Don't narrow integral types into
5439         non-integral types.
5440         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
5441         frame_size *before* the first use.
5442         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
5443         on input.
5444         (peephole2): Don't widen instructions that push SP.  Move
5445         decrement of SP to the end of all stm-generating peepholes.
5446         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
5447         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
5448         and OR to set it to all ones.
5449         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
5450         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
5451         (call, call_value): Set can_delay to "no".
5452         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
5453         * config/h8300/h8300.md (extzv): Make subreg check more robust.
5454         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
5455         * config/h8300/h8300.md (*brabit): Remove.
5456         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
5457         zero_extract.  Use bit_memory_operand as the predicate for
5458         operand 1 and 'WU' as the constraint.  Check the difference
5459         between the base length and the final one when deciding which
5460         type of branch to use.
5461         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
5462         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
5463         Use convert_move to extend the result for TARGET_H8300SX.  Check
5464         for QImode memory references.  Optimize the case where the
5465         destination is a paradoxical subreg.
5466         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
5467         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
5468         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
5469         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
5470         * config/h8300/h8300.md: Include mova.md
5471         (length_table): Add mova and mova_zero.
5472         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
5473         after all constant addresses for '%R', '%X', '%T' and '%S'.
5474         (h8300_mova_length): New function.
5475         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
5476         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
5477         dependencies for s-config, etc.
5478         * config/h8300/gemova.sh: New file.
5479         * config/h8300/mova.md: Generated.
5480         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
5481         * config/h8300/h8300.c (h8300_bitfield_length): New.
5482         (nibble_operand): Adjust.
5483         (h8300_binary_length): Handle conditional binary op.
5484         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
5485         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
5486         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
5487         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
5488         constraints.  WU is introduced as a variant of U that requires a
5489         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
5490         * config/h8300/h8300.md (attr type): Added bitbranch.
5491         (attr length_table): Added bitfield and bitbranch.
5492         (attr length): Compute bitbranch length.
5493         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
5494         least-significant bit of a byte.
5495         (brabit, brabc, brabs): New.
5496         (insv, extzv): Emit bfst and bfld on H8300SX.
5497         (bfld, bfst, seq, sne): New.
5498         (bstzhireg, cmpstz, bstz, bistz): New.
5499         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
5500         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
5501         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
5502         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
5503         (h8sx_unary_memory_operator): New function.
5504         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
5505         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
5506         * config/h8300/h8300.md: Add peepholes to combine reloads and
5507         arithmetic insns.
5508         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
5509         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
5510         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
5511         (and?i, ior?i, xor?i): Likewise.
5512         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
5513         * config/h8300/h8300.c: Move enums and prototypes to head of file.
5514         Various whitespace fixes.
5515         (h8300_constant_length): New function, split out from...
5516         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
5517         (h8300_classify_operand): Use IN_RANGE.
5518         (h8300_classify_operand): Use h8300_constant_length.
5519         (h8300_short_move_mem_p): Tighten size check.
5520         (h8sx_mergeable_memrefs_p): Tighten equality check.
5521         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
5522         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
5523         for -msx.
5524         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
5525         * config/h8300/crtn.asm: Likewise.
5526         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
5527         if __H8300SX__ is defined.
5528         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
5529         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
5530         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
5531         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
5532         addresses as mode-dependent.
5533         * config/h8300/h8300.c (print_operand_address): Update call to
5534         h8300_get_index.
5535         (h8300_get_index): Take a mode argument.  Rework to fix an
5536         earlier misunderstanding.
5537         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
5538         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
5539         into a register if TARGET_H8300SX.
5540         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
5541         TARGET_H8300SX.  Also disable related define_splits.
5542         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
5543         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
5544         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
5545         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
5546         * config/h8300/h8300.h (OK_FOR_Z): New macro.
5547         (EXTRA_CONSTRAINT_STR): Check it.
5548         * config/h8300/h8300.c (h8300_classify_operand): Accept null
5549         class arguments.
5550         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
5551         * config/h8300/h8300.md (length_table): Add mov_imm4.
5552         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
5553         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
5554         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
5555         be a label.
5556         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
5557         * config/h8300/h8300.c (h8300_reorg): New function.
5558         (TARGET_MACHINE_DEPENDENT_REORG): Define.
5559         * config/h8300/h8300.md (length): Subtract the length of the
5560         delay slot from (pc) when checking the range of forward branches.
5561         (delay_slot, can_delay): New attributes.
5562         (define_delay): Add bra/s handling.
5563         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
5564         (jump): Add delayed-branch handling.
5565         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
5566         * expr.c (expand_strcpy): New function.
5567         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
5568         (expand_builtin_stpcpy): Likewise.
5569         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
5570         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
5571         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
5572         handling to improve register allocation for -fno-omit-frame-pointer.
5573         (h8sx_split_movmd): Delete, moving er6 handling into...
5574         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
5575         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
5576         (movmd): Add calls to copy_rtx.
5577         (movmd_internal): In the second alternative, allow the initial and
5578         final destination registers to be different .  Update the splitter
5579         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
5580         instead of h8sx_split_movmd.
5581         (stpcpy, movsd): New expanders.
5582         (movsd_internal): New define_insn.
5583         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
5584         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
5585         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
5586         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
5587         and DESTINATION_REGS.
5588         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
5589         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
5590         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
5591         (h8300_move_ratio): Declare.
5592         (MOVE_RATIO): Use it.
5593         * config/h8300/h8300.c (h8300_move_ratio): New variable.
5594         (h8300_init_once): Initialize it.
5595         (h8300_reg_class_from_letter): New function.
5596         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
5597         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
5598         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
5599         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
5600         (movstrsi, movmd): New expanders.
5601         (movmd_internal): New insn.
5602         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
5603         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
5604         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
5605         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
5606         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
5607         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
5608         * config/h8300/h8300.c (nibble_operand): Fix warning.
5609         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
5610         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
5611         (movsf_h8300h): Disable for TARGET_H8300SX.
5612         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
5613         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
5614         h8300_stm_parallel and h8300_return_parallel.
5615         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
5616         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
5617         h8300_stm_parallel, h8300_return_parallel): New functions.
5618         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
5619         if TARGET_H8300SX.  Use h8300_push_pop.
5620         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
5621         and final pop when generating h8sx code.  Always emit some form
5622         of return insn.
5623         * config/h8300/h8300.md: Don't enforce register alignment in
5624         stm peepholes if TARGET_H8300SX.
5625         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
5626         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
5627         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
5628         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
5629         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
5630         (MULTILIB_DIRNAMES): Add a directory for it.
5631         (MULTILIB_MATCHES): Delete.
5632         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
5633         * final.c (walk_alter_subreg): Handle addresses with subregs
5634         inside a ZERO_EXTEND or AND.
5635         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
5636         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
5637         if TARGET_H8300SX.
5638         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
5639         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
5640         @(dd,Rn.w) and @(dd,ERn.L).
5641         (h8300_displacement_size): Take the whole address as argument.
5642         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
5643         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
5644         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
5645         (h8sx_mergeable_memrefs_p): Declare.
5646         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
5647         (HAVE_PRE_INCREMENT): Likewise.
5648         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
5649         addresses for TARGET_H8300SX,
5650         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
5651         and POST_DEC.
5652         (movb_length_table, movl_length_table): New tables.
5653         (movw_length_table): Define to movb_length_table.
5654         (h8300_displacement_size): New, split out from...
5655         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
5656         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
5657         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
5658         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
5659         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
5660         (compute_plussi_length, compute_plussi_cc): Update accordingly.
5661         (h8sx_unary_shift_operator): Get the mode from the operator.
5662         (binary_shift_operator): Likewise.
5663         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
5664         a memory reference, check whether the reference is offsettable.
5665         (length_table): Add movb, movw and movl.
5666         (movqi): Add new h8sx pattern.  Don't force one operand to be a
5667         register when generating h8sx code.
5668         (movhi, movsi, movsf): Likewise.
5669         (movstrictqi): Use the length_table attribute.
5670         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
5671         (addqi3): Split into a define_expand and define_insn.  Don't accept
5672         memory operands in the expander.  Use h8300_operands_match_p to
5673         check for matching operands in the define_insn.
5674         (subqi3, negqi2, one_cmplqi2): Likewise.
5675         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
5676         in any patterns that are unused in h8sx code.  In the h8sx patterns,
5677         use h8300_operands_match_p to check whether operands match.
5678         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
5679         one_cmpl[hs]i3): Likewise.
5680         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
5681         in the expander.
5682         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
5683         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
5684         (h8300_insn_length_from_table): Add a second parameter.
5685         (output_h8sx_shift): Declare.
5686         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
5687         (EXTRA_CONSTRAINT): Replace with...
5688         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
5689         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
5690         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
5691         and h8sx_binary_shift_operator.
5692         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
5693         for TARGET_H8300SX.
5694         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
5695         (bit_memory_operand, fix_bit_operand): Likewise.
5696         (h8300_length_table_for_insn): Remove.
5697         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
5698         instructions.
5699         (h8300_short_immediate_length, h8300_binary_length): New functions.
5700         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
5701         (output_plussi): Use sub to add negative constants.
5702         (compute_plussi_length): Adjust accordingly.
5703         (h8sx_single_shift_type): New enum.
5704         (h8sx_single_shift, h8sx_unary_shift_operator,
5705         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
5706         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
5707         single h8sx instruction.  Return false in this case.
5708         * config/h8300/h8300.md (length_table): Add short_immediate.
5709         (length): Pass the operand array to h8300_insn_length_from_table.
5710         (adjust_length): Assume "no" for insns with a length_table attribute.
5711         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
5712         (*addhi3_h8300hs): Don't use for h8sx.
5713         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
5714         and sub.w #xx:3.
5715         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
5716         1's predicate to nonimmediate_operand.  Only skip default expansion
5717         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
5718         for single h8sx shift instructions.
5719         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
5720         * config/h8300/h8300.c (nibble_operand): Split out of...
5721         (reg_or_nibble_operand): ... this.
5722         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
5723         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
5724         umulhisi3): Introduce expand, and introduce separate insns for
5725         sign- or zero-extended REG and already-extended CONST_INT.
5726         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
5727         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
5728         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
5729         (subhi3): Likewise.  Don't accept immediates for operand 1.
5730         Remove the early clobber from second alternative of the h8300s pattern.
5731         (subsi3): Generalize for h8sx.  Force operand 2 into a register
5732         on plain h8300 targets.
5733         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
5734         (subsi3_h8300h): Generalize for h8sx.
5735         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
5736         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
5737         * config/h8300/h8300.c (reg_or_nibble_operand): New.
5738         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
5739         (TARGET_H8300SXMUL): New.
5740         (CONST_OK_FOR_P): New.
5741         (CONST_OK_FOR_LETTER_P): Adjust.
5742         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
5743         umulhisi3): Accept 4-bit immediate on H8SX.
5744         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
5745         (udivsi3, divhi3, udivsi3, divsi3): New.
5746         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
5747         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
5748         * config/h8300/h8300.h (OK_FOR_Q): New macro.
5749         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
5750         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
5751         Add ADDRESSOF to the bit_operand entry.
5752         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
5753         (h8300_src_operand): Likewise.
5754         (bit_operand): Check nonimmediate_operand rather than general_operand.
5755         Accept any nonimmediate_operand in h8sx code.
5756         (h8300_and_costs): Initialize operands[1].
5757         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
5758         (h8300_operand_class): New enum.
5759         (h8300_length_table): New typedef.
5760         (addb_length_table, addw_length_table, addl_length_table,
5761         logicl_length_table): New tables.
5762         (logicb_length_table, logicw_length_table): New macros.
5763         (h8300_classify_operand, h8300_length_from_table,
5764         h8300_length_table_for_insn, h8300_unary_length,
5765         h8300_insn_length_from_table): New functions.
5766         (output_plussi): Only use adds and subs for register destinations.
5767         Disable redundant clause.
5768         (compute_plussi_cc): Likewise.
5769         (compute_plussi_length): Likewise.  Use h8300_length_from_table
5770         to work out the length of an insn.
5771         (output_logical_op): Only use narrower immediate instructions
5772         if the destination is a register.
5773         (compute_logical_op_cc): Likewise.
5774         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
5775         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
5776         * config/h8300/h8300.md (length_table): New attribute.
5777         (length): When an instruction has a length_table attribute, use
5778         h8300_insn_length_from_table to calculate its default length.
5779         (cmpqi): Use h8300_dst_operand for the first operand and
5780         h8300_src_operand for the second.
5781         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
5782         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
5783         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
5784         iorsi3, xorhi3, xorsi3): Likewise.
5785         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
5786         so that it allows any combination of operands for TARGET_H8300SX.
5787         (iorqi3, xorqi3): Likewise.
5788         (cmpqi): Use the length_table attribute.
5789         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
5790         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
5791         (cmpqi): Add 'Q' constraint.
5792         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
5793         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
5794         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
5795         * config/h8300/h8300.h (MASK_H8300SX): New macro.
5796         (TARGET_H8300S): True for both -ms and -msx.
5797         (TARGET_H8300SX): New macro.
5798         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
5799         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
5800         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
5801         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
5802         [Temporary change.]
5803         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
5804         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
5805         16-bit pointers and 32-bit ints.
5806         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
5807         CONST_DOUBLE with mode no wider than SImode.
5808         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
5809         output operand.
5810         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
5811         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
5812         or SUBREG thereof.
5813         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
5814         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
5815         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
5816
5817 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
5818
5819         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
5820
5821 2004-07-07  Per Bothner  <per@bothner.com>
5822
5823         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
5824
5825 2004-07-07  Mike Stump  <mrs@apple.com>
5826
5827         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
5828         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
5829         (machopic_finish): Likewise.
5830
5831 2004-07-07  Richard Henderson  <rth@redhat.com>
5832
5833         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
5834         through any value-preserving cast.
5835
5836 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
5837
5838         * function.c (assign_parm_find_data_types): Call
5839         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
5840
5841 2004-07-07  Steven Bosscher  <stevenb@suse.de>
5842
5843         * tree-cfg.c (group_case_labels): Remove case labels that have
5844         the same target as the default case.
5845
5846 2004-07-07  Steven Bosscher  <stevenb@suse.de>
5847
5848         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
5849         regardless of DECL_LANG_SPECIFIC being present or not.
5850         * tree.h (DECL_NUM_STMTS): Purge.
5851
5852 2004-07-07  Andrew Pinski  <apinski@apple.com>
5853
5854         * configure: Regenerate with the right autoconf.
5855
5856 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
5857
5858         * ifcvt.c (total_bb_rtx_cost): New function.
5859         (find_if_case_1): Compare rtx_cost of basic block to cost of
5860         BRANCH_COST insns.
5861         (find_if_case_2): Same.
5862
5863 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5864
5865         PR target/10567
5866         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
5867         (output_return): Likewise.
5868         (output_sibcall): Abort if !flag_delayed_branch.
5869         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
5870         (emit_and_preserve): New function.
5871         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
5872         indirect jump to the thunked-to function if !flag_delayed_branch.
5873         * config/sparc/sparc.md (delayed_branch): New attribute.
5874         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
5875         attribute to compute the length of the insn.
5876         (goto_handler_and_restore): Likewise.
5877
5878 2004-07-07  Andrew Pinski  <apinski@apple.com>
5879
5880         PR tree-optimization/15777
5881         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
5882
5883         * expr.c (expand_expr_real_1): Fix formating.
5884         BUFFER_REF and IN_EXPR are dead.
5885         * fold-const.c (non_lvalue): BUFFER_REF is dead.
5886         * tree-inline.c (estimate_num_insns_1): Likewise.
5887         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
5888         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
5889         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
5890
5891 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
5892
5893         * collect2.c (dump_file): Don't call cplus_demangle if
5894         HAVE_LD_DEMANGLE is defined.
5895         (main): Pass "--demangle" to ld if no_demangle is not 0 and
5896         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
5897         if HAVE_LD_DEMANGLE is defined.
5898
5899         * configure.ac (--with-demangler-in-ld): Added
5900         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
5901         --with-demangler-in-ld is used.
5902         * config.in: Regenerated.
5903         * configure: Likewise.
5904
5905 2004-07-07  Roger Sayle  <roger@eyesopen.com>
5906
5907         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
5908         for simple floating point operations "fp", double precision
5909         multiplication "dmul", and single and double precision division
5910         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
5911         (ppc630_cost): New table split from ppc620_cost, to distinguish
5912         differences in floating point latencies.
5913         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
5914         (rs6000_rtx_costs): Add support for single and double precision
5915         floating point addition, subtraction, multiplication, division,
5916         fused-multiply-add, fused-multiply-sub, negation, absolute value
5917         and negative absolute value.  Tweak MEM case to use prefered idiom.
5918
5919 2004-07-07  Richard Henderson  <rth@redhat.com>
5920
5921         * tree-flow-inline.h (may_propagate_copy): Move...
5922         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
5923         attempt to copy between types requiring conversion.
5924         * tree-flow.h (may_propagate_copy): Update decl.
5925         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
5926
5927 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
5928
5929         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
5930         from -mtune= option.
5931
5932 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
5933
5934         * builtins.c: Rename movstr*, except for movstrict*, to
5935         movmem* and clrstr* to clrmem*.
5936         * expr.c: Likewise.
5937         * expr.h: Likewise.
5938         * genopinit.c: Likewise.
5939         * integrate.c: Likewise.
5940         * local-alloc.c: Likewise.
5941         * optabs.c: Likewise.
5942         * optabs.h: Likewise.
5943         * config/alpha/alpha.h: Likewise.
5944         * config/alpha/alpha.md: Likewise.
5945         * config/arm/arm-protos.h: Likewise.
5946         * config/arm/arm.c: Likewise.
5947         * config/arm/arm.md: Likewise.
5948         * config/avr/avr.md: Likewise.
5949         * config/c4x/c4x.c: Likewise.
5950         * config/c4x/c4x.md: Likewise.
5951         * config/frv/frv.md: Likewise.
5952         * config/i386/i386-protos.h: Likewise.
5953         * config/i386/i386.c: Likewise.
5954         * config/i386/i386.h: Likewise.
5955         * config/i386/i386.md: Likewise.
5956         * config/i860/i860.c: Likewise.
5957         * config/i860/i860.md: Likewise.
5958         * config/ip2k/ip2k.md: Likewise.
5959         * config/ip2k/libgcc.S: Likewise.
5960         * config/ip2k/t-ip2k: Likewise.
5961         * config/m32r/m32r.c: Likewise.
5962         * config/m32r/m32r.md: Likewise.
5963         * config/mcore/mcore.md: Likewise.
5964         * config/mips/mips.c: Likewise.
5965         * config/mips/mips.md: Likewise.
5966         * config/ns32k/ns32k.c: Likewise.
5967         * config/ns32k/ns32k.h: Likewise.
5968         * config/ns32k/ns32k.md: Likewise.
5969         * config/pa/pa.c: Likewise.
5970         * config/pa/pa.md: Likewise.
5971         * config/pdp11/pdp11.h: Likewise.
5972         * config/pdp11/pdp11.md: Likewise.
5973         * config/rs6000/rs6000.c: Likewise.
5974         * config/rs6000/rs6000.md: Likewise.
5975         * config/s390/s390-protos.h: Likewise.
5976         * config/s390/s390.c: Likewise.
5977         * config/s390/s390.md: Likewise.
5978         * config/sh/lib1funcs.asm: Likewise.
5979         * config/sh/sh.c: Likewise.
5980         * config/sh/sh.md: Likewise.
5981         * config/sh/t-sh: Likewise.
5982         * config/sparc/sparc.h: Likewise.
5983         * config/vax/vax.md: Likewise.
5984         * config/xtensa/xtensa.c: Likewise.
5985         * config/xtensa/xtensa.md: Likewise.
5986         * doc/invoke.texi: Likewise.
5987         * doc/md.texi: Likewise.
5988         * doc/rtl.texi: Likewise.
5989
5990 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
5991
5992         PR target/16407
5993         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
5994         * config/mips/mips.c (mips_declare_common_object): New function,
5995         mostly split out from...
5996         (mips_output_aligned_decl_common): ...here.
5997         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
5998         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
5999         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
6000         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
6001
6002 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6003
6004         PR c/16392
6005         * function.c (assign_parms): Fix typo from previous change.
6006
6007 2004-07-07  Jason Merrill  <jason@redhat.com>
6008
6009         PR c++/15815
6010         * doc/extend.texi (C++ Interface): Correct information and
6011         discourage use.
6012
6013 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
6014
6015         PR target/16130
6016         PR target/16142
6017         PR target/16143
6018         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
6019         insn.
6020
6021 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
6022
6023         PR target/1679.
6024         * config/m32r/m32r.c (m32r_function_symbol): New function:
6025         Generate a symbol name RTX with the correct m32r specific flags
6026         set.
6027         (block_move_call): Use new function to generate correct symbol.
6028         * config/m32r/m32r-protos.h: Add prototype for new funcion.
6029         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
6030         function.
6031
6032 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
6033
6034         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
6035         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
6036         TYPE_BINFO_BASETYPE): Remove.
6037         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
6038         to ...
6039         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
6040         here.
6041         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
6042         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
6043         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
6044         (struct tree_binfo): Rename base_types to base_binfos.
6045         * alias.c (record_component_aliases): Adjust BINFO macros.
6046         * dbxout.c (dbxout_type): Likewise.
6047         * dwarf2out.c (gen_member_die): Likewise.
6048         * sdbout.c (sdbout_one_type): Likewise.
6049         * tree-dump.c (deque_and_dump): Likewise.
6050         * config/i386/i386.c (classify_argument,
6051         contains_128bit_aligned_vector_p): Likewise.
6052
6053 2004-07-07  Nick Clifton  <nickc@redhat.com>
6054
6055         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
6056         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
6057
6058 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
6059
6060         * vec.h: Fix the example use.
6061
6062 2004-07-06  Richard Henderson  <rth@redhat.com>
6063
6064         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
6065         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
6066         * tree-inline.c (copy_body_r, setup_one_parameter,
6067         initialize_inlined_parameters, expand_call_inline,
6068         declare_inline_vars): Don't check it.
6069         (expand_calls_inline): Remove old version, rename new version
6070         from gimple_expand_calls_inline.
6071         * tree-optimize.c (execute_gimple): Remove.
6072         (pass_gimple): Don't run anything.
6073
6074 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
6075
6076         * doc/sourcebuild.texi: Use semicolons instead of commas in
6077         section title.
6078
6079 2004-07-06  Richard Henderson  <rth@redhat.com>
6080
6081         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
6082         (sra_walk_modify_expr, scan_init): Likewise.
6083         (generate_element_zero): Check visited before scanning children.
6084         (generate_element_init): Set visited on error.
6085         (scalarize_init): Handle generate_element_init failure similar
6086         to use_block_copy.
6087
6088 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
6089
6090         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
6091         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
6092
6093 2004-07-06  Richard Henderson  <rth@redhat.com>
6094
6095         * config/i386/i386.c (legitimize_pic_address): Make static.
6096         (legitimize_address): Handle CONST with TLS operand.
6097         (ix86_expand_move): Don't call legitimize_pic_address directly.
6098         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
6099
6100 2004-07-06  Roger Sayle  <roger@eyesopen.com>
6101
6102         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
6103         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
6104         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
6105         is currently executed unconditionally, i.e. not in "else_bb".
6106
6107 2004-07-06  Steven Bosscher  <stevenb@suse.de>
6108
6109         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
6110         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6111         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
6112         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6113         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
6114         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6115         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
6116         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6117         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
6118         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6119         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
6120         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6121         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
6122         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6123         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
6124         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6125
6126 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
6127
6128         * dojump.c (do_jump): REFERENCE_EXPR is dead.
6129         * expr.c (expand_expr_real_1): Ditto.
6130         * tree-inline.c (estimate_num_insns_1): Ditto.
6131         * tree-pretty-print.c (dump_generic_node): Ditto.
6132         (op_symbol): Ditto.
6133         * tree.def: Ditto.
6134
6135 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
6136
6137         * tree-ssa-pre.c (reference_node_pool): New pool.
6138         (find_or_generate_expression): Class 'r' is okay too.
6139         (create_value_expr_from): Ditto.
6140         (add_to_sets): LHS should not include vuses.
6141         (eliminate): Ditto.
6142         (compute_avail): Reverse ordering of tests.
6143         Valuize INDIRECT_REF as well.
6144
6145 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
6146
6147         PR rtl-optimization/16380
6148         * loop.c (check_dbra_loop): Sink comparison instructions if they
6149         do something other than set cc0.
6150
6151 2004-07-06  James E Wilson  <wilson@specifixinc.com>
6152
6153         * doc/interface.texi (longjmp and automatic variables): Delete
6154         paragraph recommending taking the address of a variable.
6155
6156 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
6157
6158         * vec.h (VEC_embedded_alloc): Remove.
6159         (VEC_embedded_size, VEC_embedded_init): New.
6160         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
6161         MEM_STAT_INFO.
6162         (VEC_truncate): New.
6163         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
6164         (vec_embedded_alloc): Remove.
6165         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
6166         (vec_embedded_alloc): Remove.
6167
6168 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
6169
6170         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
6171         (gt-langhooks.h): Remove.
6172
6173 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
6174
6175         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
6176
6177 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
6178
6179         * config/sparc/sparc.c (get_pc_symbol): Rename into
6180         add_pc_to_pic_symbol.
6181         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
6182         (load_pic_register): Account for previous changes.
6183         Use reg_names.  Don't create the label twice.
6184         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
6185         UNSPEC_LOAD_PCREL_SYM.
6186         (get_pc): Rename into load_pcrel_sym.  Add predicate to
6187         operands.  Remove condition.
6188
6189 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
6190
6191         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
6192         RECORD, UNION & QUAL_UNION is actually a binfo.
6193
6194         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
6195         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
6196         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
6197         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
6198         * dwarf2out.c (add_data_member_location_attribute): Likewise.
6199         (gen_inheritance_die): Likewise.
6200         * tree-dump.c (deque_and_dump): Likewise.
6201         * doc/c-tree.texi (Binfos): Add under reconstruction note.
6202
6203 2004-07-06  Steven Bosscher  <stevenb@suse.de>
6204
6205         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
6206         Define.
6207         * config/mcore/mcore.md: Model memory latency with a simple DFA
6208         pipeline description instead of a define_function_unit.
6209
6210 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6211
6212         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
6213         * langhooks.h (var_mod_type_p): Likewise.
6214         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
6215         * expr.c (count_type_elements): Properly handle return from
6216         array_type_nelts and properly test for overflow.
6217         * gimplify.c (gimplify_init_constructor): Properly handle return
6218         from array_type_nelts.
6219         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
6220         * integrate.c (copy_decl_for_inlining): Correct comments.
6221         * tree-inline.c (remap_decl): Update comments, remove dead code,
6222         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
6223         (remap_type): Only remap if variably modified by vars in function
6224         being inlined.
6225         (copy_body_r): Use compatible_type langhooks to see when can fold.
6226         (setup_one_parameter): Don't remap type.
6227         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
6228         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
6229         compute TREE_INVARIANT for decl case.
6230         (find_var_from_fn): New function.
6231         (variably_modified_type_p): Add arg and call new function.
6232         * tree.h (variably_modified_type_p): Add extra arg.
6233
6234 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6235
6236         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
6237         (goto_handler_and_restore_v9): Delete disabled insn.
6238         (goto_handler_and_restore_v9_sp64): Likewise.
6239
6240 2004-07-05  Roger Sayle  <roger@eyesopen.com>
6241
6242         * calls.c (load_register_parameters): Call expand_shift instead
6243         of expand_binop with ashl_optab (or other shift optab) directly.
6244         * expr.c (emit_group_load, emit_group_store): Likewise.
6245         * function.c (assign_parm_setup_block): Likewise.
6246         * stmt.c (shift_return_value): Likewise.
6247
6248 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
6249
6250         * expr.c (expand_assignment): Disable the bitfield += optimizations.
6251
6252 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
6253
6254         * doc/sourcebuild.texi: Revert previous patch.
6255
6256 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
6257
6258         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
6259         TARGET_MEM_FUNCTIONS.
6260         * system.h: Poison TARGET_MEM_FUNCTIONS.
6261         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
6262         bcmp_libfunc, bzero_libfunc): Remove.
6263         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
6264         bzero_libfunc.
6265         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
6266         * doc/standards.texi: Don't mention calling BSD string functions.
6267         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
6268         * config/vax/t-memfuncs: New.
6269         * config/memcmp.c, config/memcpy.c, config/memmove.c,
6270         config/memset.c: New.
6271         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
6272         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
6273         vax/t-memfuncs.
6274         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
6275         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
6276         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
6277         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
6278         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
6279         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
6280         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
6281         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
6282         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
6283         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
6284
6285 2004-07-05  Richard Henderson  <rth@redhat.com>
6286
6287         * function.c (assign_parm_setup_reg): Properly rename variables in
6288         FUNCTION_ARG_CALLEE_COPIES section.
6289
6290 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
6291
6292         * tree-mudflap.c: Include cgraph.h.
6293         (mf_init_extern_trees): Rename to mudflap_init.  Export.
6294         Rewrite to create synthetic declarations instead of looking
6295         up declarations from mf-runtime.h.
6296         (mf_make_builtin, mf_make_cache_struct_type): New functions.
6297         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
6298         Correct commentary.
6299         (execute_mudflap_function_decls, mudflap_register_call):
6300         Don't call mf_init_extern_trees.
6301         (mudflap_finish_file): Use cgraph_build_static_cdtor.
6302
6303         * tree-mudflap.h: Update prototypes.
6304         * c-mudflap.c: Delete file.
6305         * c-common.c: Include tree-mudflap.h.
6306         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
6307         * Makefile.in: Remove all references to c-mudflap.o.
6308         Update dependencies.
6309
6310 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6311
6312         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
6313         displacements with the spatial-locality cache-control completer.
6314
6315 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
6316
6317         * langhooks.c: Don't include gt-langhooks.h.
6318         (var_labelno): Delete.
6319         (lhd_set_decl_assembler_name): Do not append a distinguishing
6320         number to file-scope internal-linkage declarations for the first
6321         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
6322         the declaration itself (if at block scope), or its containing
6323         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
6324         number.
6325
6326         * opts.c (cur_in_fname): New global.
6327         * opts.h: Declare it.
6328         * tree.c: Include opts.h.
6329         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
6330         DECL_UID equal to cur_in_fname.
6331         (copy_node_stat): Do not change DECL_UID when copying a
6332         TRANSLATION_UNIT_DECL.
6333         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
6334         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
6335
6336         * c-decl.c (c_static_assembler_name): Delete.
6337         * c-tree.h (c_static_assembler_name): Delete prototype.
6338         * c-lang.c, objc/objc-lang.c: Don't override
6339         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
6340
6341         * Makefile.in (tree.o): Update dependencies.
6342         (GTFILES): Remove langhooks.c.
6343
6344 2004-07-05  Roger Sayle  <roger@eyesopen.com>
6345
6346         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
6347         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
6348         Normalize "X % C" as "X % -C" for signed modulus and negative C.
6349         Optimize "X % -Y" as "X % Y" for signed modulus.
6350         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
6351         into "((unsigned) X % Y) == 0".
6352
6353 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
6354
6355         * sourcebuild.texi (Config Fragments): Use @comma{} in
6356         cross-reference to section title.
6357
6358 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6359
6360         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
6361         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
6362         (gimplify_target_expr, gimplify_expr): Likewise.
6363         (copy_if_shared_r): No longer need special case for BIND_EXPR.
6364         (unshare_body, unvisit_body): Only look at nested if BODY_P is
6365         whole function.
6366         (gimplify_compound_lval): See if we can strip any useless conversion.
6367         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
6368         from RHS, not LHS.
6369         (gimplify_modify_expr_to_memset): Likewise.
6370         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
6371         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
6372         (declare_inline_vars): Likewise.
6373         (walk_type_fields): New function.
6374         (walk_tree): Use it.
6375         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
6376
6377         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
6378         (sra_walk_modify_expr): Allow init function to fail.
6379         (scan_init): Now returns bool.
6380         (generate_element_init): If can't understand INIT, return false.
6381         (scalarize_init): Return false if generate_element_init does.
6382
6383         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
6384         print bounds.
6385
6386         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
6387         bounds if bounds aren't constant.
6388
6389         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
6390
6391         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
6392         to type hooks; remove bogus PARAMS.
6393
6394 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
6395
6396         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
6397         * dwarf2out.c (add_data_member_location_attribute): Check for
6398         TREE_BINFO.
6399         * tree.c (tree_node_kinds): Add "binfos".
6400         (binfo_lang_slots): New.
6401         (make_node_stat): Add TREE_BINFO.
6402         (make_tree_binfo_stat): New.
6403         (tree_node_structure): Add TREE_BINFO.
6404         * tree.def (TREE_BINFO): New.
6405         * tree.h (REC_OR_UNION_CHECK): Rename to ...
6406         (RECORD_OR_UNION_CHECK): ... here.
6407         (NOT_RECORD_OR_UNION_CHECK): New.
6408         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
6409         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
6410         RECORD_OR_UNION_CHECK.
6411         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
6412         (TYPE_LANG_SLOT_1): New.
6413         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
6414         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
6415         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
6416         (BINFO_ELTS): Remove.
6417         (BINFO_LANG_SLOT): New.
6418         (struct tree_binfo): New.
6419         (binfo_lang_slots): Declare.
6420         (enum tree_node_structure_enum): Add TS_BINFO.
6421         (union tree_node): Add binfo.
6422         (make_tree_binfo_stat): Declare.
6423         (make_tree_binfo): New.
6424         (enum tree_node_kind): Add binfo_kind.
6425
6426         * objc/objc-act.c (start_class, objc_declare_protocols,
6427         start_protocols): Use TYPE_LANG_SLOT_1.
6428         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
6429         to ...
6430         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
6431         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
6432         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
6433         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
6434
6435 2004-07-05  Steven Bosscher  <stevenb@suse.de>
6436
6437         * rtl.h (struct rtx_def): Remove the integrated flag.
6438         Use the return_val flag for MEM_SCALAR_P.
6439         Reshuffle and update flags in CLEAR_RTX_FLAGS.
6440
6441 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
6442
6443         PR target/16357
6444         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
6445         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
6446         move_by_pieces.
6447
6448 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
6449
6450         * var-tracking.c: Fix some comments.
6451         (frame_stack_adjust): New.
6452         (vt_stack_adjustments): Init stack_adjust of entry block to
6453         minus stack adjustment of function prologue.
6454         (adjust_stack_reference): Do not adjust if adjustment == 0.
6455         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
6456         (emit_notes_in_bb): Likewise.
6457         (vt_add_function_parameters): Do not adjust locations of
6458         function arguments.
6459         (vt_initialize): Compute the stack adjustment of function
6460         prologue and offset the initial "location" of frame_base_decl
6461         from the stack pointer after prologue.
6462
6463 2004-07-04  Richard Henderson  <rth@redhat.com>
6464
6465         * function.c (struct assign_parm_data_all): New.
6466         (struct assign_parm_data_one): New.
6467         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
6468         assign_parm_find_data_types, assign_parms_setup_varargs,
6469         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
6470         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
6471         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
6472         assign_parm_setup_block, assign_parm_setup_reg,
6473         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
6474         (assign_parms): ... here.
6475
6476 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
6477
6478         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
6479         now are bitmap_set_t's.
6480         (bitmap_insert_into_set): No point in inserting the value if
6481         it's invariant.
6482         (bitmap_set_contains): New function.
6483         (bitmap_set_replace_value): Add comment on why we do it
6484         this way.
6485         (set_contains): Removed.
6486         (bitmap_set_subtract_from_value_set): New name of
6487         set_subtract now that it's arguments are two different
6488         types of sets.
6489         Update callers.
6490         (bitmap_find_leader): Change algorithm used.
6491         (find_or_generate_expression): Update use of functions for new
6492         bitmap sets.
6493         (create_expression_by_pieces): Ditto.
6494         (insert_aux): Ditto.
6495         (insert): Ditto.
6496         (add_to_sets): Ditto.
6497         (init_pre): Ditto.
6498         (execute_pre): Ditto.
6499         (compute_avail): Ditto.
6500         Also ignore virtual phis.
6501
6502 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
6503
6504         * combine.c (simplify_comparison): Fix comment typo.
6505
6506 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6507
6508         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
6509         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
6510         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
6511         (output_restore): Change parameter from 'insn' to 'pat'.
6512         (output_return): Adjust call to output_restore.
6513         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
6514         Adjust call to output_restore.
6515
6516 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
6517
6518         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
6519         and assert system is bsd.
6520
6521 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
6522
6523         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
6524         (TARGET_SWITCHES): Remove -mdebugc.
6525         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
6526         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
6527         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
6528         (sle_[sd]i_reg): Delete.
6529
6530 2004-07-04  Steven Bosscher  <stevenb@suse.de>
6531
6532         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
6533         Define.
6534         * config/iq2000/iq2000.md: Translate old pipeline description to an
6535         equivalent new one.
6536
6537 2004-07-04  Roger Sayle  <roger@eyesopen.com>
6538
6539         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
6540         Ensure the replacement rhs is valid gimple before performing
6541         the substitution.  Return false if these sanity checks fail.
6542         (fold_stmt): Only set changed to true, if set_rhs returns true.
6543         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
6544         succeeds.
6545
6546 2004-07-04  Richard Henderson  <rth@redhat.com>
6547
6548         PR c/16348
6549         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
6550
6551 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
6552
6553         * configure.ac (ranlib_flags): New variable.
6554         * Makefile.in (RANLIB_FLAGS): New variable.
6555         (libbackend.a): Use it.
6556         * configure: Regenerated.
6557
6558 2004-07-04  Roger Sayle  <roger@eyesopen.com>
6559
6560         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
6561         a "sign mask" instead of using ashr_optab directly.
6562
6563 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
6564
6565         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
6566         * doc/cppopts.texi: Clarify processing of command-line defines.
6567
6568 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
6569
6570         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
6571
6572 2004-07-04  Richard Henderson  <rth@redhat.com>
6573
6574         * rtl.def (ADDRESSOF): Remove.
6575         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
6576         (find_base_term, memrefs_conflict_p): Likewise.
6577         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
6578         (fold_rtx, cse_insn, set_live_p): Likewise.
6579         * dwarf2out.c (mem_loc_descriptor): Likewise.
6580         (add_location_or_const_value_attribute): Likewise.
6581         * emit-rtl.c (copy_insn_1): Likewise.
6582         * explow.c (memory_address): Likewise.
6583         * expmed.c (store_split_bit_field): Likewise.
6584         * expr.c (expand_expr_real_1): Likewise.
6585         * function.c (instantiate_decl
6586         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
6587         * genrecog.c (preds, validate_pattern): Likewise.
6588         * integrate.c (copy_rtx_and_substitute): Likewise.
6589         * recog.c (general_operand, register_operand): Likewise.
6590         (memory_address_p): Likwise.
6591         * reload1.c (eliminate_regs, elimination_effects): Likewise.
6592         * rtl.c (copy_rtx): Likewise.
6593         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
6594         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
6595         * rtlhooks.c (gen_lowpart_general): Likewise.
6596         * stmt.c (expand_asm_operands): Likewise.
6597         * web.c (entry_register, replace_ref, web_main): Likewise.
6598         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
6599         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
6600         * config/arm/arm.c (thumb_rtx_costs): Likewise.
6601         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
6602         * config/frv/frv.c (move_destination_operand, move_source_operand,
6603         condexec_dest_operand, condexec_source_operand,
6604         condexec_memory_operand): Likewise.
6605         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
6606         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
6607         (destination_xfmode_operand): Likewise.
6608         * config/mips/mips.h (PREDICATE_CODES): Likewise.
6609         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
6610         * config/s390/s390.c (general_s_operand): Likewise.
6611         * config/s390/s390.md (mov*): Likewise.
6612         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
6613
6614         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
6615         * expr.c (expand_expr_real_1): Likewise.
6616         * stmt.c (expand_decl): Likewise.
6617         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
6618
6619         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
6620         postponed_insns, put_var_into_stack, put_reg_into_stack,
6621         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
6622         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
6623         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
6624         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
6625         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
6626         purge_bitfield_addressof_replacements, purge_addressof_replacements,
6627         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
6628         struct insns_for_mem_walk_info, insns_for_mem_walk,
6629         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
6630         setjmp_protect_args): Remove.
6631         (push_function_context_to): Don't handle var_refs_queue.
6632         (pop_function_context_from, free_after_compilation): Likewise.
6633         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
6634         (assign_parms, allocate_struct_function): Likewise.
6635         (use_register_for_decl): New.
6636         (expand_function_end): Don't setjmp_protect.
6637         * function.h (struct emit_status): Update commentary.
6638         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
6639         (max_parm_reg, parm_reg_stack_loc): Remove.
6640         * passes.c (DFI_addressof): Remove.
6641         (dump_file_info): Remove addressof.
6642         (rest_of_handle_addressof): Remove.
6643         (rest_of_compilation): Don't call it.
6644         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
6645         * stmt.c (expand_decl): Use use_register_for_decl.
6646         * tree.h: Update decls.
6647         * web.c (mark_addressof): Remove.
6648         * doc/invoke.texi (-dF): Remove.
6649
6650 2004-07-03  Richard Henderson  <rth@redhat.com>
6651
6652         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
6653         instead of gen_mem_addressof.
6654         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
6655         TImode output register.
6656
6657 2004-07-03  Richard Henderson  <rth@redhat.com>
6658
6659         PR tree-optimization/16341
6660         * tree-sra.c (sra_walk_function): Increment to next stmt before
6661         processing the current stmt.
6662         (sra_insert_after): Always use BSI_SAME_STMT.
6663
6664 2004-07-03  Richard Henderson  <rth@redhat.com>
6665
6666         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
6667         fp plus with minus.
6668
6669 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
6670
6671         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
6672         with tree_int_cst_equal.
6673
6674 2004-07-03  Andreas Schwab  <schwab@suse.de>
6675
6676         * config/ia64/ia64.md: Define new attribute "empty".
6677         (prologue_use, nop_x, insn_group_barrier): Set it.
6678
6679         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
6680         skip over "empty" insns.
6681
6682 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6683
6684         * tree-inline.c (initialize_inlined_parameters): Pass proper function
6685         context to gimplify_body.
6686         (walk_tree): Don't walk into types twice.
6687         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
6688
6689         * tree-sra.c (generate_element_init): Remove any useless conversions.
6690
6691         * gimplify.c (gimplify_conversion): Remove stripping useless
6692         conversions from here.
6693         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
6694         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
6695         Unshare before substituting PLACEHOLDER_EXPR.
6696         (gimplify_modify_expr_to_memset): Likewise.
6697         Pass address of TO to memset, not TO itself.
6698         (gimplify_init_constructor): Make copy of OBJECT so we have it each
6699         time we make an expression (to match a PLACEHOLDER_EXPR).
6700
6701         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
6702         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
6703         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
6704         * tree-ssa-dom.c (local_fold): Likewise.
6705
6706         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
6707         * langhooks.h (strct lang_hooks): New field type_max_size.
6708         * function.c (assign_temp): Call it.
6709
6710 2004-07-03  Steven Bosscher  <stevenb@suse.de>
6711
6712         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
6713         * config/sh/sh.md: Convert the SH1 pipeline description to
6714         a DFA model.
6715
6716 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
6717
6718         * c-decl.c (struct c_binding): Remove contour field; add
6719         depth, invisible, nested fields.
6720         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
6721         (B_IN_EXTERNAL_SCOPE): New convenience macros.
6722         (bind): Add invisible and nested arguments. Initialize
6723         new fields of struct c_binding; adjust loop scanning for
6724         insertion point.
6725         (free_binding_and_advance): Clear structure with memset.
6726         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
6727         in file scope, even if it's in external scope too.
6728         (pushdecl): Adjust to match.  Create invisible file-scope
6729         declarations for block-scope forward declarations of static functions.
6730         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
6731         (undeclared_variable, lookup_label, declare_label, define_label)
6732         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
6733         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
6734         (store_parm_decls_oldstyle): Adjust to match.
6735         (diagnose_mismatched_decls): Correct handling of linkage clashes.
6736         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
6737
6738         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
6739         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
6740
6741 2004-07-02  Richard Henderson  <rth@redhat.com>
6742
6743         * c-decl.c (grokdeclarator): Don't frob current_function_decl
6744         around variable_size.
6745         (set_decl_nonlocal): Remove.
6746         (store_parm_decls): Add stmts for pending sizes.
6747         * calls.c (calls_function, calls_function_1): Remove.
6748         (precompute_arguments): Don't call it.
6749         * cfgexpand.c (set_save_expr_context): Remove.
6750         (tree_expand_cfg): Don't call it.
6751         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
6752         (dwarf2out_finish): Likewise.
6753         * expr.c (emit_block_move): Adjust addresses to BLKmode.
6754         (store_constructor): Don't pre-evaluate SAVE_EXPR.
6755         (safe_from_p): Don't queue SAVE_EXPRs.
6756         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
6757         or build plain VAR_DECLs.
6758         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
6759         (fold): Likewise.
6760         (fold_checksum_tree): Don't special-case SAVE_EXPR.
6761         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
6762         (put_var_into_stack): Don't handle SAVE_EXPR.
6763         (gen_mem_addressof): Likewise.
6764         * function.h (struct function): Remove x_save_expr_regs.
6765         (save_expr_regs): Remove.
6766         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
6767         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
6768         * stor-layout.c (variable_size): Don't set it.
6769         (force_type_save_exprs, force_type_save_exprs_1): Remove.
6770         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
6771         all callers.  Don't set SAVE_EXPR_CONTEXT.
6772         * tree-inline.h (remap_save_expr): Update decl.
6773         * tree.c (save_expr): Update build size.
6774         (first_rtl_op): Don't handle SAVE_EXPR.
6775         (unsave_expr_1, contains_placeholder_p): Likewise.
6776         (decl_function_context): Likewise.
6777         * tree.def (SAVE_EXPR): Remove args 1 and 2.
6778         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
6779         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
6780
6781 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
6782
6783         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
6784         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
6785         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
6786         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
6787         some first-person references and patronizing comments.  Based on
6788         printed manual.
6789         * doc/invoke.texi: Don't reference fortran@gnu.org.
6790         * doc/trouble.texi (Warning when a non-void function value is
6791         ignored): Rewrite.  From Russ Allbery and Chris Devers.
6792
6793 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
6794
6795         * tree-ssa-pre.c (bitmap_set_t): New.
6796         (bb_value_sets): avail_out is now a bitmap_set_t.
6797         (bitmap_find_leader): New function.
6798         (bitmap_value_insert_into_set): Ditto.
6799         (bitmap_set_copy): Ditto.
6800         (bitmap_value_replace_in_set): Ditto.
6801         (bitmap_set_contains_value): Ditto.
6802         (bitmap_set_new): Ditto.
6803         (bitmap_set_pool): New pool.
6804         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
6805         (insert_aux): Ditto.
6806         (add_to_sets): Ditto.
6807         (compute_avail): Ditto
6808         (eliminate): Ditto.
6809         (init_pre): Ditto.
6810         (fini_pre): Ditto.
6811         (execute_pre): Ditto.
6812
6813 2004-07-02  Roger Sayle  <roger@eyesopen.com>
6814
6815         * config/rs6000/rs6000.c (struct processor_costs): New structure
6816         used to hold instruction latencies/sizes for processor types.
6817         (rs6000_cost): New global variable pointing to current CPU's costs.
6818         (rs6000_override_options): Initialize rs6000_cost to point to the
6819         appropriate cost table based upon rs6000_cpu and optimize_size.
6820         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
6821         timings inline.
6822
6823 2004-07-02  Richard Henderson  <rth@redhat.com>
6824
6825         * expmed.c (make_tree): Don't use SET_DECL_RTL.
6826
6827 2004-07-02  Steven Bosscher  <stevenb@suse.de>
6828
6829         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
6830
6831 2004-07-01  Richard Henderson  <rth@redhat.com>
6832
6833         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
6834         (alpha_gp_save_rtx): Use assign_stack_local instead of
6835         gen_mem_addressof.
6836
6837 2004-07-01  Richard Henderson  <rth@redhat.com>
6838
6839         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
6840         (alpha_rtx_cost_data): Update to match.
6841         (alpha_rtx_cost_size): New.
6842         (alpha_rtx_costs): Honor optimize_size.
6843
6844 2004-07-01  Richard Henderson  <rth@redhat.com>
6845
6846         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
6847         * cfgexpand.c (tree_expand_cfg): Do it here.
6848         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
6849         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
6850         * config/mips/mips.c (mips_output_mi_thunk): And here.
6851         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
6852         * config/sh/sh.c (sh_output_mi_thunk): And here.
6853         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
6854
6855 2004-07-01  Richard Henderson  <rth@redhat.com>
6856
6857         * tree.def (RTL_EXPR): Remove.
6858         * c-typeck.c (lvalue_p): Don't handle it.
6859         * expr.c (safe_from_p): Likewise.
6860         (expand_expr_real_1): Likewise.
6861         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
6862         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
6863         * gengtype.c (adjust_field_tree_exp): Likewise.
6864         * stmt.c (warn_if_unused_value): Likewise.
6865         * tree-gimple.c (recalculate_side_effects): Likewise.
6866         * tree-pretty-print.c (dump_generic_node): Likewise.
6867         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
6868         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
6869         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
6870
6871         * stmt.c (struct stmt_status): Remove x_last_expr_type,
6872         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
6873         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
6874         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
6875         all the bits that tracked last_expr.
6876         (expand_end_bindings): Don't track last_expr.
6877         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
6878         (clear_last_expr): Remove.
6879         (expand_asm): Don't call it.
6880         (expand_asm_operands, expand_end_cond): Likewise.
6881         (expand_naked_return, expand_null_return_1): Likewise.
6882         * c-typeck.c (c_begin_compound_stmt): Likewise.
6883         * cfgexpand.c (expand_block): Use expand_expr_stmt.
6884         * expr.c (expand_expr_real_1): Likewise.
6885         * tree.h: Update prototypes.
6886
6887         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
6888         (struct emit_status): Remove sequence_rtl_expr.
6889         (struct function): Remove x_rtl_expr_chain.
6890         (seq_rtl_expr, rtl_expr_chain): Remove.
6891         * function.c (struct temp_slot): Remove rtl_expr.
6892         (assign_stack_temp_for_type): Don't set it.
6893         (free_temp_slots, pop_temp_slots): Don't check it.
6894         (free_after_compilation): Don't clear x_rtl_expr_chain.
6895         (fixup_var_refs): Don't search it.
6896         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
6897         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
6898         or seq_rtl_expr.
6899         (push_topmost_sequence): Likewise.
6900         (end_sequence, init_emit): Likewise.
6901         (start_sequence_for_rtl_expr): Remove.
6902         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
6903         * rtl.h (preserve_rtl_expr_result): Remove.
6904
6905 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
6906
6907         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
6908         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
6909         typos.
6910
6911 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
6912
6913         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
6914         (STANDARD_STARTFILE_PREFIX_2): Define.
6915         (standard_startfile_prefix_1): Initialize to
6916         STANDARD_STARTFILE_PREFIX_1.
6917         (standard_startfile_prefix_2): Initialize to
6918         STANDARD_STARTFILE_PREFIX_2.
6919         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
6920         (STANDARD_STARTFILE_PREFIX_1): Define.
6921         (STANDARD_STARTFILE_PREFIX_2): Define.
6922         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
6923         (STANDARD_STARTFILE_PREFIX_2): Document.
6924
6925 2004-07-01  Richard Henderson  <rth@redhat.com>
6926
6927         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
6928         in order to disable scalarization.  Instead set a flag and wait
6929         for a candidate decl.
6930
6931 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
6932
6933         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
6934         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
6935         Use terminology "testsuite" and "enumerated".
6936
6937 2004-07-01  Richard Henderson  <rth@redhat.com>
6938
6939         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
6940         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
6941         (initial_return_save): Likewise.
6942         (flush_queued_reg_saves): Remap register numbers.
6943         (dwarf2out_return_reg): Likewise.
6944
6945 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6946
6947         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
6948
6949         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
6950         access functions for lower bound and element size and only output
6951         if lower bound nonzero or element size not same as that of type.
6952         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
6953
6954 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
6955
6956         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
6957
6958 2004-07-01  Per Bothner  <per@bothner.com>
6959
6960         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
6961
6962 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
6963
6964         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
6965         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
6966         first operand.  Don't optimize if the bitfield is volatile.
6967
6968 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
6969
6970         * c-pretty-print.c (pp_c_postfix_expression): Handle
6971         floating-point comparison operators.
6972         (pp_c_expression): Pass floating-point comparison
6973         operators to pp_c_postfix_expression.
6974
6975 2004-07-01  Roger Sayle  <roger@eyesopen.com>
6976
6977         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
6978         rtx_cost instead of "had_mult" to determine whether the transformed
6979         expression is cheaper than the original.
6980
6981 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
6982
6983         * alias.c (get_alias_set, canon_rtx, get_addr,
6984         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
6985         Use MEM_P.
6986         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
6987         expand_builtin): Likewise.
6988         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
6989         Likewise.
6990         * combine.c (can_combine_p, combinable_i3pat, try_combine,
6991         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
6992         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
6993         record_dead_and_set_regs_1, get_last_value_validate,
6994         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
6995         * cse.c (check_dependence, canon_hash, equiv_constant,
6996         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
6997         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
6998         count_reg_usage): Likewise.
6999         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
7000         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
7001         cselib_record_sets): Likewise.
7002         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
7003         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
7004         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
7005         * df.c (df_uses_record): Likewise.
7006         * dojump (do_jump): Likewise.
7007         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
7008         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
7009         decl_start_label): Likewise.
7010         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
7011         operand_subword, change_address_1, make_safe_from): Likewise.
7012         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
7013         stabilize, force_not_mem): Likewise.
7014         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
7015         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
7016         * expr.c (convert_move, convert_modes, emit_block_move,
7017         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
7018         emit_move_insn_1, expand_assignment, store_expr,
7019         store_constructor_field, store_constructor, store_field,
7020         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
7021         Likewise.
7022         * final.c (cleanup_subreg_operands, alter_subreg,
7023         get_mem_expr_from_op): Likewise.
7024         * flow.c (notice_stack_pointer_modification_1,
7025         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
7026         Likewise.
7027         * function.c (mark_temp_addr_taken, preserve_temp_slots,
7028         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
7029         optimize_bit_field, flush_addressof, purge_addressof_1,
7030         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
7031         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
7032         keep_stack_depressed): Likewise.
7033         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
7034         noce_process_if_block, find_memory): Likewise.
7035         * integrate.c (subst_constants, allocate_initial_values): Likewise.
7036         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
7037         update_equiv_regs): Likewise.
7038         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
7039         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
7040         * optabs.c (expand_abs, emit_unop_insn): Likewise.
7041         * passes.c (rest_of_handle_final): Likewise.
7042         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
7043         move2add_note_store): Likewise.
7044         * ra-build.c (detect_remat_webs): Likewise.
7045         * ra-debug.c (dump_static_insn_cost): Likewise.
7046         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
7047         * recog.c (validate_change, apply_change_group, cancel_changes,
7048         validate_replace_rtx_1, general_operand, register_operand,
7049         nonmemory_operand, push_operand, pop_operand, memory_operand,
7050         indirect_operand, asm_operand_ok, offsettable_memref_p,
7051         offsettable_nonstrict_memref_p, constrain_operands,
7052         store_data_bypass_p): Likewise.
7053         * reg-stack.c (subst_stack_regs_pat): Likewise.
7054         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
7055         copy_cost, reg_scan_mark_refs): Likewise.
7056         * regmove.c (optimize_reg_copy_3, stack_memref_p,
7057         combine_stack_adjustments_for_block): Likewise.
7058         * regrename.c (copyprop_hardreg_forward_1): Likewise.
7059         * reload.c (can_reload_into, push_reload, decompose, immune_p,
7060         find_reloads, find_reloads_address, find_reloads_address_1,
7061         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
7062         find_equiv_reg): Likewise.
7063         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
7064         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
7065         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
7066         delete_address_reloads): Likewise.
7067         * resource.c (mark_referenced_resources): Likewise.
7068         * rtlanal.c (get_jump_table_offset, count_occurrences,
7069         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
7070         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
7071         num_sign_bit_copies1): Likewise.
7072         * rtlhooks.c (gen_lowpart_general): Likewise.
7073         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
7074         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
7075         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
7076         sdbout_global_decl): Likewise.
7077         * simplify-rtx.c (simplify_subreg): Likewise.
7078         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
7079         expand_anon_union_decl, expand_end_case_type): Likewise.
7080         * unroll.c (calculate_giv_inc): Likewise.
7081         * var-tracking.c (stack_adjust_offset_pre_post,
7082         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
7083         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
7084         vt_add_function_parameters): Likewise.
7085         * varasm.c (make_var_volatile, notice_global_symbol,
7086         assemble_external, decode_addr_const, mark_weak,
7087         default_encode_section_info): Likewise.
7088
7089 2004-07-01  Steven Bosscher  <stevenb@suse.de>
7090
7091         * stmt.c (check_seenlabel): Remove.
7092         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
7093
7094 2004-07-01  Richard Henderson  <rth@redhat.com>
7095
7096         * function.h (struct function): Remove x_function_call_count.
7097         (function_call_count): Remove.
7098         * calls.c (expand_call): Don't set it.
7099         * integrate.c (copy_rtx_and_substitute): Likewise.
7100
7101         * function.h (struct function): Remove x_cleanup_label.
7102         (cleanup_label): Remove.
7103         * stmt.c (expand_value_return): Don't use it.
7104         * function.c (free_after_compilation): Don't set it.
7105         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
7106         * cfgexpand.c (tree_expand_cfg): Update call.
7107         * tree.h (expand_function_start): Update decl.
7108
7109 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
7110
7111         PR c/1027
7112         * c-lang.c (c_initialize_diagnostics): Move from here ...
7113         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
7114         (c_tree_printer): Use pretty-printer to format %T.
7115         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
7116         before '*' if not C++.
7117         (pp_c_direct_abstract_declarator): Don't try to print array upper
7118         bound for flexible array members.
7119         * c-tree.h: Include "diagnostic.h".
7120         (c_initialize_diagnostics): Declare.
7121         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
7122         * c-format.c (format_type_warning): New function.  Improve
7123         diagnostics for incorrect format argument types.
7124         (check_format_types): Use it.  Add two parameters.  Use the
7125         TYPE_MAIN_VARIANT of wanted_type.
7126         (check_format_info_main): Pass new parameters to
7127         check_format_types.
7128         (struct format_wanted_type): Update comment.
7129
7130 2004-07-01  Nick Clifton  <nickc@redhat.com>
7131
7132         * target.h (struct gcc_target): Add new field to struct cxx:
7133         import_export_class.
7134         * target-def.h (TARGET_CXX): Initialise the new field.
7135         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
7136         the new field.
7137         * doc/tm.texi: Document the new target hook.
7138
7139 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
7140
7141         * builtins.c (fold_builtin_classify): Fix typo.
7142
7143 2004-07-01  Richard Henderson  <rth@redhat.com>
7144
7145         * function.c (identify_blocks, identify_blocks_1): Remove.
7146         * function.h (identify_blocks): Remove.
7147         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
7148
7149 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
7150
7151         * builtins.c (fold_builtin_classify): New.
7152         (fold_builtin_unordered_cmp): Fix commentary.
7153         (fold_builtin): Use it.
7154         * builtins.def: Define builtins for isnan,
7155         isnanf, isnanl, finite, finitef, finitel,
7156         isinf, isinff, isinfl.
7157
7158 2004-07-01  Richard Henderson  <rth@redhat.com>
7159
7160         * function.h (struct function): Remove dont_emit_block_notes.
7161         * gimple-low.c (lower_function_body): Don't set it.
7162         * cfgexpand.c (expand_block): Don't check it.
7163         * cfglayout.c (insn_locators_initialize): Likewise.
7164         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
7165         * passes.c (rest_of_compilation): Likewise.
7166         * stmt.c (expand_start_bindings_and_block): Likewise.
7167         (expand_end_bindings): Likewise.
7168
7169 2004-07-01  Richard Henderson  <rth@redhat.com>
7170
7171         * cgraph.h (cgraph_build_static_cdtor): Declare.
7172         * cgraphunit.c (cgraph_build_static_cdtor): New.
7173         * c-objc-common.c (build_cdtor): Use it.
7174         * coverage.c (create_coverage): Likewise.
7175         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
7176         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
7177
7178 See ChangeLog.11 for earlier changes.