OSDN Git Service

PR tree-optimization/17016
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2
3         PR tree-optimization/17016
4         * tree-ssa-loop-niter.c (number_of_iterations_cond,
5         number_of_iterations_exit): Use POINTER_TYPE_P instead
6         of testing for POINTER_TYPE.
7
8 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9
10         * tree-ssa-loop-ivcanon.c: New file.
11         * tree-ssa-loop-manip.c (create_iv): New function.
12         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
13         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
14         * cfgloop.c (mark_single_exit_loops): New function.
15         (verify_loop_structure): Verify single-exit loops.
16         * cfgloop.h (struct loop): Add single_exit field.
17         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
18         (mark_single_exit_loops): Declare.
19         (tree_num_loop_insns): Declare.
20         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
21         (duplicate_loop_to_header_edge): Use it.
22         * common.opt (fivcanon): New flag.
23         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
24         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
25         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
26         (bsi_insert_on_edge_immediate): New function.
27         * tree-flow.h (bsi_insert_on_edge_immediate,
28         canonicalize_induction_variables, tree_unroll_loops_completely,
29         create_iv): Declare.
30         * tree-optimize.c (init_tree_optimization_passes): Add
31         pass_iv_canon and pass_complete_unroll.
32         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
33         * tree-scalar-evolution.c (get_loop_exit_condition,
34         get_exit_conditions_rec, number_of_iterations_in_loop,
35         scev_initialize): Use single_exit information.
36         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
37         missing assumptions.
38         (loop_niter_by_eval):  Return number of iterations as unsigned
39         int.
40         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
41         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
42         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
43         New passes.
44         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
45         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
46         the defining statement is ready.
47         * tree-vectorizer.c (vect_create_iv_simple): Removed.
48         (vect_create_index_for_array_ref, vect_transform_loop_bound):
49         Use create_iv.
50         (vect_transform_loop_bound): Use single_exit information.
51         (vect_analyze_loop_form): Cleanup bogus tests.
52         (vectorize_loops): Do not call flow_loop_scan.
53         * tree.h (may_negate_without_overflow_p): Declare.
54         * fold-const.c (may_negate_without_overflow_p): Split out from ...
55         (negate_expr_p): ... this function.
56         (tree_expr_nonzero_p): Handle overflowed constants correctly.
57         * doc/invoke.texi (-fivcanon): Document.
58         * doc/passes.texi: Document canonical induction variable creation.
59
60 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
61
62         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
63         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
64         using the mode of the operand to decide between them.
65         * config/mips/mips.md (MOVECC): New mode macro.
66         (ccreg): New mode attribute.
67         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
68         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
69         (mov[sd]icc): Redefine using :GPR.
70
71 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
72
73         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
74         (mips_prefetch_cookie): New function.
75         * config/mips/mips.c (print_operand_address): Fix handling of
76         ADDRESS_CONST_INT.
77         (mips_emit_prefetch): Delete.
78         (mips_prefetch_cookie): New function.
79         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
80         mode of QImode for the address_operand.  Use mips_prefetch_cookie
81         to calculate the first "pref" operand.
82         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
83         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
84
85 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
86
87         * arm.md: Include predicates.md.
88         * predicates.md: New file.
89         * arm.c (s_register_operand, arm_hard_register_operand)
90         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
91         (arm_immediate_operand, arm_neg_immediate_operand)
92         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
93         (arm_add_operand, arm_addimm_operand, arm_not_operand)
94         (offsettable_memory_operand, alignable_memory_operand)
95         (arm_reload_memory_operand, arm_float_rhs_operand)
96         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
97         (index_operand, shiftable_operator, logical_binary_operator)
98         (shift_operator, equality_operator, arm_comparison_operator)
99         (minmax_operator, cc_register, dominant_cc_register)
100         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
101         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
102         (const_shift_operand, load_multiple_operation)
103         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
104         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
105         (cirrus_register_operand, cirrus_fp_register)
106         (cirrus_shift_const): Delete, replaced with equivalents in
107         predicates.md.
108         (shift_op): Handle ROTATE.
109         * arm-protos.h: Delete declarations for above.
110         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
111         * t-arm (MD_INCLUDES): Add predicates.md.
112         (s-preds): Depends on MD_INCLUDES.
113
114 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
115
116         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
117         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
118         patterns.  Redefine using :GPR.  Give the match_operator a mode.
119         Use '%2' rather than '%z2' for operand 2.
120
121 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
122
123         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
124         attribute.
125
126 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
127
128         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
129         of internal patterns.
130         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
131         Redefine using :P.
132         (tablejump): Use expand_binop to calculate address.  Adjust names
133         of internal patterns.
134         (tablejump[sd]i): Renamed from tablejump_internal[12].
135         Redefine using :P.
136         (tablejump_mips16[12]): Delete.
137
138 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
139
140         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
141         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
142         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
143         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
144         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
145
146 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
147
148         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
149         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
150         using :GPR.
151         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
152         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
153         (*branch_equality[sd]i_inverted): Likewise
154         branch_equality{,_di}_inverted.
155         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
156         Redefine using :GPR.
157
158 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
159
160         * rtl.def: Reorganize, placing all codes used only in machine
161         descriptions at the end.
162
163         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
164         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
165         rtx_name, rtx_format arrays by direct reference to rtl.def,
166         first undefining GENERATOR_FILE.  Define enum insn_note and
167         note_insn_name array by direct reference to insn-notes.def.
168         (adjust_field_rtx_def): Remove local definition of rtx_name.
169         Use symbolic names for insn notes.
170         * Makefile.in (gengtype.o): Update dependencies.
171
172 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
173
174         * basic-block.h (struct basic_block_def): Reorder fields to
175         eliminate interior padding.  Remove 'partition' field.
176         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
177         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
178         (BB_COPY_PARTITION): New macros.
179         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
180         Replace all references to the 'partition' field of a basic
181         block with new macros.
182
183         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
184         * final.c (final_scan_insn): Don't handle it.
185         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
186         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
187         * sched-rgn.c (sched_is_disabled_for_current_region_p):
188         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
189
190 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
191
192         * c-decl.c (c_init_decl_processing): Adjust
193         build_common_tree_nodes call.
194         * expmed.c (const_mult_add_overflow_p): Use
195         build_distinct_type_copy.
196         * stor-layout.c (early_type_list): Remove.
197         (layout_type): Don't append to early_type_list.
198         (initialize_sizetypes): Add signed_p argument.
199         (set_sizetype): Overwrite the stub type nodes directly.
200         * tree.c (copy_node_stat): Clear a type's value cache here ...
201         (build_distinct_type): ... not here.
202         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
203         * tree.h (initialize_sizetypes): Add signed_p argument.
204         (build_common_tree_nodes): Likewise.
205
206         * objc/objc-act.c (get_static_reference): Use
207         build_variant_type_copy.
208         (get_protocol_reference): Likewise.
209         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
210
211 2004-08-24  Richard Henderson  <rth@redhat.com>
212             Andrew Pinski  <apinski@apple.com>
213
214         * gimplify.c (gimplify_array_ref_to_plus): Delete.
215         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
216         for ARRAY_REF.
217
218         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
219         ARRAY_REF also to get to the STRING_CST.
220
221 2004-08-24  Paul Brook  <paul@codesourcery.com>
222
223         * config/arm/arm.c (arm_override_options): Update error message.
224         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
225         TARGET_HARD_FLOAT_ABI.
226         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
227         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
228
229 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
230
231         PR target/17093
232         * config/m32r.md (movsi_sda): Add SI mode specification to
233         UNSPEC.
234
235 2004-08-24  Nick Clifton  <nickc@redhat.com>
236
237         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
238         of seth_add3_operand.
239
240 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
241
242         * Makefile.in (PROTO_OBJS): Add errors.o.
243         * protoize.c (fancy_abort): Remove.
244         * mips-tfile.c (fancy_abort): Add parameters.
245
246 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
247
248         * doc/trouble.texi (C++ misunderstandings): Fix example code.
249
250 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
251
252         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
253         (host-default.o): Add dependency on HOOKS_H.
254         * config/x-linux: Likewise.
255         * config/x-solaris: Likewise.
256         * config/i386/x-mingw32: Likewise.
257         * config/rs6000/x-darwin: Likewise.
258
259 2004-08-23  James E Wilson  <wilson@specifixinc.com>
260
261         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
262         DEF_REG_NOTE.
263
264 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
265
266         PR c/14492
267         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
268
269 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
270
271         * cfg.c (check_bb_profile): Fix typos.
272         * function.c (assign_parm_is_stack_parm): Likewise.
273         * tree-nested.c: Likewise.
274
275 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
276
277         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
278         Remove TYPECODE.
279         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
280
281 2004-08-23  Eric Christopher  <echristo@redhat.com>
282
283         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
284         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
285         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
286         * target.h: Ditto.
287         * hooks.h: Include machmode.h.
288         (hook_bool_mode_false): Declare.
289         * hooks.c (hook_bool_mode_false): Define.
290         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
291         * stor-layout.c (layout_type): Ditto.
292         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
293         Define to target macro.
294         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
295         * config/arm/arm.c: Ditto. Use.
296         * config/arm/arm.h: Ditto.
297         * config/arm/arm-protos.h: Ditto.
298         * config/i386/i386.c: Ditto.
299         * config/i386/i386.h: Ditto.
300         * config/rs6000/rs6000.c: Ditto.
301         * config/rs6000/rs6000.h: Ditto.
302         * config/sh/sh.c: Ditto.
303         * config/sh/sh.h: Ditto.
304         * config/sh/sh-protos.h: Ditto.
305         * config/sh/sh.md: Use.
306         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
307         to TARGET_VECTOR_MODE_SUPPORTED_P.
308
309 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
310
311         * Makefile.in (BUILD_ERRORS): Set to build-errors.
312         (errors.o): New target for host.
313         (build-errors.o): New target for build.
314         (genobjs): Replace errors.o with build-errors.
315         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
316         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
317         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
318         (fix-header.o): Add errors.h
319         * collect2.c (fancy_abort): Add parameters.
320         * collect2.h (fancy_abort): Don't declare.
321         * errors.h (fancy_abort): Don't declare.
322         * errors.c: Include either bconfig.h or config.h.
323         (fancy_abort): Trim filename.
324         * fix-header.c (v_fatal, fatal): Remove.
325         (progname): Remove definition.
326         (main): Set progname here.
327         * gcc.c (fancy_abort): Add parameters.
328         * gcc.h (fancy_abort): Remove declaration.
329         * gcov.c (fancy_abort): Remove.
330         * rtl.h (fancy_abort): Don't declare.
331         (abort): Don't define.
332         * tree.h (fancy_abort): Don't declare.
333         (abort): Don't define.
334         * system.h (fancy_abort): Declare.
335         (abort): Define to fancy_abort.
336         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
337
338         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
339         (usize_type, ubitsizetype): Remove.
340         * stor-layout.c (set_sizetype): Don't initialize usizetype,
341         ubitsizetype.
342         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
343
344         * tree.h (build_distinct_type_copy): New.
345         (build_type_copy): ... here.  Rename to ...
346         (build_variant_type_copy): ... here.
347         * tree.c (build_qualified_type): Rename build_type_copy call.
348         (build_distinct_type_copy): New, broken out of ...
349         (build_type_copy): ... here.  Rename to ...
350         (build_variant_type_copy): ... here.  Use
351         build_distinct_type_copy.
352         (build_common_tree_nodes_2): Rename build_type_copy call.
353         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
354         call.
355         (handle_packed_attribute, handle_unused_attribute,
356         handle_transparanet_union_attribute, handle_aligned_attribute,
357         handle_deprecated_attribute): Likewise.
358         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
359         Likewise.
360         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
361         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
362         build_distinct_type_copy.
363
364 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
365
366         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
367         attribute.
368
369 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
370
371         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
372         loads and stores.
373         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
374         formerly unnamed patterns.  Redefine using :P for the address.  Remove
375         explicit length attributes.
376
377 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
378
379         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
380         New functions.
381         (single_reachable_address): Use them.
382         (schedule_sm): Add dump.
383         (is_call_clobbered_ref): New function.
384         (determine_lsm_reg): Check whether the reference is call clobbered.
385         Only work for gimple_reg_type values.
386
387 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
388
389         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
390         $31 store insns.  Redefine using :GPR.
391
392 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
393
394         * config/mips/mips.md (P): New mode macro.
395         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
396         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
397         Add mode attributes.
398
399 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
400
401         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
402         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
403         later constants to cover the gap.
404         (load, store): New mode attributes.
405         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
406         Use new unspec constants.
407
408 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
409
410         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
411         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
412         to use register_operand rather than uns_arith_operand as the predicate
413         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
414         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
415         Redefine using :GPR.  Make same predicate change here.  Extend the
416         commutativity of operands 1 and 2 from the SImode version to the
417         DImode one.
418         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
419         but with no predicate changes.
420         (*nor[sd]i3): Redefine using :GPR.
421
422 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
423
424         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
425         noreturn functions.
426
427 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
428
429         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
430         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
431         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
432         rather than "%z2" (with a fake const0_rtx for operand 2).
433         (ffs[sd]i2): Redefine using :GPR.
434         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
435
436 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
437
438         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
439
440 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
441
442         * config/mips/mips.md (any_extend): New code macro.
443         (u, su): New code attributes.
444         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
445         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
446         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
447         (*{s,u}mul_acc_di): Redefine using any_extend.
448         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
449         to reflect real insn names.
450         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
451         with an any_extend template.
452         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
453         Add '*' to name.
454
455 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
456
457         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
458         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
459         (mul[sd]i3_r4000): Redefine using :GPR.
460         (mulsi3_mult3): Don't check TARGET_MAD separately.
461         (muldi3_mult3): Moved after mulsi_mult3.
462
463 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
464
465         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
466         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
467         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
468         (TARGET_GAS, TARGET_MIPS_AS): Delete.
469         (TARGET_GPWORD): Define to true for n32 on IRIX.
470         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
471         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
472         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
473         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
474         (MDEBUG_ASM_SPEC): Delete, folding into...
475         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
476         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
477         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
478         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
479         to define asm_abi_default_spec.
480         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
481         (TARGET_ASM_SELECT_SECTION): Delete.
482         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
483         for non-mips16 code, removing previous workaround for SGI assemblers.
484         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
485         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
486         (override_options): Remove !TARGET_GAS and !have_named_sections code.
487         (print_operand): Fold TARGET_GAS conditionals into asm strings.
488         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
489         ASM_STABS_OP and ASM_STABN_OP.
490         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
491         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
492         (mips_output_function_prologue): Remove !TARGET_GAS code.
493         (mips_select_rtx_section): Remove !have_named_sections code.
494         (mips_select_section): Delete.
495         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
496         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
497         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
498         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
499         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
500         * config/mips/windiss.h (ASM_SPEC): Likewise.
501
502 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
503
504         * read-rtl.c (map_value, mapping, macro_group): New structures.
505         (BELLWETHER_CODE): New macro.
506         (modes, codes, bellwether_codes): New variables.
507         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
508         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
509         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
510         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
511         (add_map_value, initialize_macros): New functions.
512         (def_hash, def_hash_eq_p): Generalize to anything that points to,
513         or starts with, a char * field.
514         (find_macro, read_mapping, check_code_macro): New functions.
515         (read_rtx_1): New, split out from read_rtx.  Handle the new
516         define_{mode,code}_{macro,attr} constructs.  Use find_macro
517         to parse the name of a code or mode.  Use BELLWETHER_CODE to
518         extract the format and to choose a suitable code for rtx_alloc.
519         Modify recursive invocations to use read_rtx_1.
520         (read_rtx): Call initialize_macros.  Apply code and mode macros
521         to the rtx returned by read_rtx_1.  Cache everything after the
522         first macro expansion for subsequent read_rtx calls.
523         * doc/md.texi: Document new .md constructs.
524         * config/mips/mips.md (GPR): New mode macro.
525         (d, si8_di5): New mode attributes.
526         (any_cond): New code macro.
527         (add[sd]i3): Redefine using :GPR.
528         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
529         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
530         previously unnamed MIPS16 patterns.
531         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
532         lines.  Don't match (plus (const_int 0) ...).
533         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
534         Use a define_split to generate the addition.
535         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
536         (subsi3_internal): Delete.
537         (*subsi3_extended): Renamed from subsi3_internal_2.
538         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
539         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
540         using an any_cond template.
541
542 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
543
544         * read-rtl.c (read_rtx): Tidy use of format_ptr.
545
546 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
547
548         * read-rtl.c (string_obstack): New file-scope variable.
549         (read_string, read_quoted_string, read_braced_string)
550         (read_escape): Remove obstack parameter and use string_obstack instead.
551         (read_rtx): Remove function-local rtl_obstack and initialize
552         string_obstack instead.  Update call to read_string.
553
554 2004-08-22  Andrew Pinski  <apinski@apple.com>
555
556         PR c/15262
557         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
558         expression is not constant.
559         (c_finish_return): Do not go through INDIRECT_REF when looking
560         for the inner expression of an ADDR_EXPR for warning about.
561
562 2004-08-22  Richard Henderson  <rth@redhat.com>
563
564         PR 17075
565         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
566         create new blocks and fall through.
567         (expand_gimple_basic_block): Update to match.
568
569 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
570
571         * reload.c (find_reloads_address): Make return value tri-state.
572         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
573         (find_reloads): Assume that reloaded addresses match 'o' or
574         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
575         returned 1 (not -1).  Omit optional reloads for address operands
576         only if find_reloads_address returned 1 (not -1).
577
578         * config/s390/s390.c (legitimize_reload_address): New function.
579         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
580         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
581         legitimize_reload_address.
582
583 2004-08-22  Richard Hendersion  <rth@redhat.com>
584
585         * tree.h (SAVE_EXPR_RESOLVED_P): New.
586         * gimplify.c (gimplify_save_expr): Use it.
587         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
588         on the temporary variable.
589
590 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
591
592         * fold-const.c (rtl_expr_nonnegative_p): Delete.
593         * tree.h (rtl_expr_nonnegative_p): Remove.
594
595 2004-08-22  Steven Bosscher  <stevenb@suse.de>
596
597         * config/i386/ppro.md (ppro_complex_insn): Add missing check
598         for cpu==pentiumpro.
599
600         * combine.c (struct reg_stat): Fix comment typo.
601
602 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
603
604         * c-tree.h (c_sizeof_nowarn): Remove.
605
606 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
607
608         * c-decl.c (set_array_declarator_type): Rename to
609         set_array_declarator_inner.
610         (build_c_parm, build_attrs_declarator, build_function_declarator):
611         New functions.
612         (make_pointer_declarator): Call build_attrs_declarator.
613         * c-tree.h (set_array_declarator_type): Rename to
614         set_array_declarator_inner.
615         (build_c_parm, build_attrs_declarator, build_function_declarator):
616         New prototypes.
617         * c-parse.in (after_type_declarator,
618         parm_declarator_starttypename, parm_declarator_nostarttypename,
619         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
620         firstparm): Use these functions
621
622 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
623
624         * c-decl.c (build_array_declarator, set_array_declarator_type,
625         start_decl, grokdeclarator, grokparms): Change boolean parameters
626         to type bool.
627         * c-tree.h (build_array_declarator, set_array_declarator_type,
628         start_decl): Update prototypes.
629         * c-decl.c, c-parse.in: All callers changed.
630
631 2004-08-21  Mike Stump  <mrs@apple.com>
632
633         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
634         (darwin_fix_and_continue): Likewise.
635         (darwin_fix_and_continue_switch): Likewise.
636         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
637         (darwin_fix_and_continue): Likewise.
638         (darwin_fix_and_continue_switch): Likewise.
639
640 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
641
642         PR  c++/16030
643         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
644         Remove, merging into ...
645         (gen_stdcall_or_fastcall_suffix): New function, returning tree
646         rather than const char*, and accepting additional parameter.
647         Don't add suffix to '*'-prefixed symbols or variadic functions.
648         (i386_pe_encode_section_info): Adjust for call to new function.
649         Call change_decl_assembler_name.
650
651 2004-08-20  Mike Stump  <mrs@apple.com>
652
653         * config/darwin.c (machopic_indirect_data_reference): Mark
654         stubs as defined.
655         * config/386/386.c (darwin_local_data_pic): Add.
656         (legitimate_constant_p): Reorder so that PLUS handling runs
657         before darwin_local_data_pic to match the ordering in
658         legitimate_pic_address_disp_p and so that MINUS runs after
659         darwin_local_data_pic as otherwise the darwin_local_data_pic
660         logic can be skipped, which would be very bad.
661         (legitimate_pic_address_disp_p): Move from from here to
662         darwin_local_data_pic so it can be reused.
663
664 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
665
666         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
667         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
668         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
669         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
670         (RS6000_ABI_NAME): Define as "linux".
671         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
672         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
673         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
674         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
675         * config/rs6000/rs6000.c (dot_symbols): New global var.
676         (rs6000_output_function_entry): New function, modified for
677         !DOT_SYMBOLS..
678         (print_operand <case 'z'>): ..extracted from here.
679         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
680         (rs6000_output_function_epilogue): Likewise.
681         (rs6000_elf_declare_function_name): Likewise.
682         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
683         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
684         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
685         * configure: Regenerate.
686         * config.in: Regenerate.
687
688 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
689
690         * reload.c (find_reloads_address): Fix thinko in previous change.
691
692         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
693         a CONST_INT.
694
695 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
696
697         PR rtl-optimization/17099
698         * combine.c (force_to_mode): Check if inner_mask has any bits set
699         outside of GET_MODE (x) instead of op_mode.
700
701 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
702
703         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
704         fragment.
705         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
706         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
707         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
708         architecture.
709         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
710         configurations.
711         * config/arm/t-symbian: New file.
712
713 2004-08-20  Andrew Pinski  <apinski@apple.com>
714
715         * regrename.c (kill_value_regno): ANSIfy.
716
717 2004-08-20  Dale Johannesen  <dalej@apple.com>
718
719         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
720
721 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
722
723         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
724         (kill_value_regno): New function, derived from kill_value.
725         (kill_value): Update.
726         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
727
728 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
729
730         Fix PR tree-optimization/17111
731         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
732         of non-value_handles.
733         (bitmap_set_contains): All constants are in every set.
734
735 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
736
737         * fold-const.c (round_up, round_down): Use build_int_cst.
738         Optimize common case.
739
740 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
741             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
742
743         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
744         one_only_data_section): Rename to som_readonly_data_section,
745         som_one_only_readonly_data_section and som_one_only_data_section.
746         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
747         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
748         conditional defines.
749         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
750         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
751         string values.
752         (pa_select_section): Use renamed section functions.
753         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
754         SOM_READONLY_DATA_SECTION_FUNCTION,
755         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
756         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
757         Define here ...
758         * config/pa/som.h: ... not here.
759         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
760         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
761         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
762         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
763         (READONLY_DATA_SECTION): Use som_readonly_data_section.
764
765 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
766
767         * fold-const.c (int_const_binop): Don't generate non-overflowing
768         size-types specially.
769         (fold_convert_const): Likewise.
770
771         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
772         clear cache on copied sizetype.
773
774 2004-08-20  Ben Elliston  <bje@au.ibm.com>
775
776         * configure.ac: Don't escape apostrophe in --enable-coverage help.
777         * configure: Regenerate.
778
779 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
780
781         PR 5620
782         * gcc.c (struct stat input_stat): Don't define if
783         HOST_LACKS_INODE_NUMBERS
784         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
785         than stat to determine if temp file is same as input file.
786         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
787         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
788
789 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
790
791         * configure.ac (mips*-*-*): Print an error if not using GAS.
792         * configure: Regenerated.
793         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
794         comments about buggy MIPSpro assemblers.
795         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
796         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
797         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
798         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
799         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
800         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
801         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
802         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
803         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
804         of more general IRIX 6 definitions.
805         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
806         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
807         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
808         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
809         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
810         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
811         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
812         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
813         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
814         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
815         (LINK_SPEC): Move most of definition to iris.h.
816         (SUBTARGET_LINK_SPEC): New macro.
817         (IRIX_STARTFILE_SPEC): Fold into...
818         (STARTFILE_SPEC): ...here.
819         (IRIX_ENDFILE_SPEC): Fold into...
820         (ENDFILE_SPEC): ...here.
821         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
822         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
823         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
824         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
825         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
826         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
827         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
828         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
829         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
830         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
831         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
832         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
833         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
834         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
835         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
836         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
837         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
838         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
839         (TARGET_IRIX6): Define to 1.
840         (DRIVER_SELF_SPECS): Define.
841         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
842         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
843         (SUBTARGET_LINK_SPEC): New macro.
844         (IRIX_STARTFILE_SPEC): Fold into...
845         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
846         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
847         (LIB_SPEC, LIBGCC_SPEC): Use them.
848         (LIB_SPEC): Remove !mabi=* case.
849         (IRIX_ENDFILE_SPEC): Fold into...
850         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
851         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
852         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
853         (TARGET_IRIX6): New macro.
854         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
855         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
856         (LABEL_AFTER_LOC): Delete.
857         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
858         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
859         (mips_build_builtin_va_list): Check TARGET_IRIX6.
860         (override_options): Remove TARGET_SGI_O32_AS-related code.
861         (irix_output_external_libcall): Make static.
862         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
863         LABEL_AFTER_LOC.
864         (mips_file_start): Tidy guard for ABI sections.  Remove use of
865         ABICALLS_ASM_OP; use .abicalls instead.
866         (mips_output_aligned_decl_common, mips_declare_object_name)
867         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
868         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
869         .globl foo .text directives.
870         (irix_asm_named_section_1, irix_asm_named_section)
871         (irix_section_align_entry, irix_section_align_htab)
872         (irix_orig_asm_out_file, irix_section_align_entry_eq)
873         (irix_section_align_entry_hash, irix_asm_output_align)
874         (irix_file_start, irix_section_align_1, copy_file_data)
875         (irix_file_end, irix_section_type_flags): Delete.
876         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
877         Use standard section syntax.  Remove protective "jr $31".
878         (__gcc_fini): Likewise .gcc_fini.
879         * config/mips/irix-crtn.asm: Adjust sections accordingly.
880         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
881         iris5gas.h.
882         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
883         from t-irix-gld.
884         (EXTRA_MULTILIB_PARTS): Define.
885         * config/mips/t-iris6: Remove bogus comment.
886         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
887         * config/mips/iris5gas.h, config/mips/iris5gld.h,
888         config/mips/iris6gas.h, config/mips/iris6gld.h,
889         config/mips/t-iris5-as, config/mips/t-iris5-gas
890         config/mips/t-irix-gld: Delete.
891         * config/mips/iris.h: New file.
892         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
893
894 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
895
896         * postreload.c (reload_cse_move2add): Allow any condjump, but check
897         that the implicit set isn't clobbered in the jump insn.
898
899 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
900
901         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
902         * optabs.c (init_optabs): Don't check it.
903         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
904         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
905
906 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
907
908         * config/s390/s390.md (s390_warn_framesize_string)
909         (s390_warn_dynamic_string, s390_stack_size_string)
910         (s390_stack_guard_string): New global string variables.
911         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
912         (s390_stack_guard): New global variables.
913         (override_options): Added checks for the new options.
914         (s390_emit_prologue): Emit stack check and trap code and perform
915         compile time stack size checking.
916
917         * config/s390/s390.h (TARGET_OPTIONS): Added new options
918         "warn-framesize", "warn-dynamicstack", "stack-size" and
919         "stack-guard".
920
921         * doc/invoke.texi: Added documentation for the new options.
922
923 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
924
925         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
926         to eliminate warning.
927         (linear_search_fdes): Declare p as unsigned.
928         (binary_search_mixed_encoding_fdes): Likewise.
929         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
930         to eliminate warning.
931         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
932         type cast.
933
934 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
935
936         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
937         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
938         instead of one.  Check for strictly legitimate address.
939         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
940         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
941
942 2004-08-19  Eric Christopher  <echristo@redhat.com>
943
944         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
945         * langhooks.h (unsave_expr_now): Ditto.
946         * tree.h (unsave_expr_1): Remove prototype.
947         (lhd_unsave_expr_now): Rename to unsave_expr_now.
948         * tree-inline.c (unsave_expr_1): Move here
949         from tree.c. Make static.
950         (unsave_expr_now): Rename from lhd_unsave_expr_now.
951         * tree-sra.c: Fix up for rename.
952         * tree-ssa-copy.c: Ditto.
953         * tree-eh.c: Ditto.
954         * tree.c (unsave_expr_1): Move to tree-inline.c.
955
956 2004-08-19  Caroline Tice  <ctice@apple.com>
957
958         * config/i386/cygming.h (switch_to_section):  Fix typo (change
959         in_unlikely_text_section to in_unlikely_executed_text).
960
961 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
962
963         * vec.h (VEC_lower_bound): New macro.
964
965 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
966
967         PR target/16446
968         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
969         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
970         treat each ABI separately.  Deal with n32/n64 complex float arguments.
971         (function_arg): Add associated complex handling here.
972
973 2004-08-19  Richard Henderson  <rth@redhat.com>
974
975         * config/arm/arm.c (arm_gen_load_multiple): Use
976         adjust_automodify_address.  Take base memory and offset instead
977         of unchanging/struct/scalar bits.
978         (arm_gen_store_multiple): Likewise.
979         (arm_gen_movmemqi): Use adjust_automodify_address.
980         * config/arm/arm-protos.h: Update decls.
981         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
982         (store_multiple): Similarly.
983
984 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
985
986         * regclass.c (globalize_reg): Update call_really_used_regs.
987
988 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
989
990         * doc/invoke.texi (integer-share-limit): Document.
991
992         * tree.h (TYPE_CACHED_VALUES_P): New.
993         (TYPE_CACHED_VALUES): New.
994         (TYPE_ORIG_SIZE_TYPE): Adjust.
995         * tree.def (INTEGER_CST): Update documentation.
996         * tree.c: Inlcude params.h.
997         (build_int_cst): Cache small values.
998         (build_type_copy): Do not copy the value cache.
999         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
1000         unneeded zeroing.
1001         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
1002         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
1003         cache.
1004         * fold-const.c (force_fit_type): Copy value when setting
1005         overflows.
1006         (int_const_binop): Likewise.
1007         * stor-layout.c: Include params.h
1008         (set_sizetype): Create values cache.
1009         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
1010         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
1011         * params.h (INTEGER_SHARE_LIMIT): New.
1012         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
1013
1014 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
1015
1016         * gimplify.c (gimplify_minimax_expr): Remove.
1017         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
1018
1019 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
1020
1021         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
1022         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
1023
1024 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
1025
1026         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
1027
1028 2004-08-18  Andrew Pinski  <apinski@apple.com>
1029
1030         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
1031
1032 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
1033
1034         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
1035         (__aeabi_ul2f): Likewise.
1036
1037 2004-08-18  Richard Henderson  <rth@redhat.com>
1038
1039         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
1040         move to rtl completely.
1041         (struct meminsnbuf, xtensa_emit_block_move): Remove.
1042         (xtensa_find_mode_for_size): Remove.
1043         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
1044         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
1045
1046 2004-08-18  Richard Henderson  <rth@redhat.com>
1047
1048         * config/mcore/mcore.c (mode_from_align): Remove DImode.
1049         (block_move_sequence): Rewrite to use adjust_address.
1050         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
1051         Return boolean indicating success/failure.
1052         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
1053         * config/mcore/mcore.md (movmemsi): Update to match.
1054
1055 2004-08-18  Mike Stump  <mrs@apple.com>
1056
1057         * doc/invoke.texi (-mfix-and-continue): Add support for
1058         fast turn around debugging.
1059         (-ffix-and-continue): Likewise.
1060         (-mindirect-data): Likewise.
1061         (-findirect-data): Likewise.
1062         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
1063         (indirect_data): Likewise.
1064         (machopic_data_defined_p): Likewise.
1065         (machopic_output_indirection): Likewise.
1066         (darwin_encode_section_info): Likewise.
1067         (darwin_fix_and_continue): Likewise.
1068         (darwin_fix_and_continue_switch): Likewise.
1069         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
1070         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
1071         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
1072         (SUBTARGET_OPTIONS): Likewise.
1073         (darwin_fix_and_continue): Likewise.
1074         (darwin_fix_and_continue_switch): Likewise.
1075         (TARGET_FIX_AND_CONTINUE): Likewise.
1076         * config/rs6000.c (rs6000_emit_prologue): Likewise.
1077
1078 2004-08-19  Steven Bosscher  <stevenb@suse.de>
1079
1080         * basic-block.h (struct edge_def): Remove crossing_edge.
1081         (EDGE_CROSSING): New define.
1082         (EDGE_ALL_FLAGS): Update.
1083         * bb-reorder.c (find_traces_1_round, better_edge_p,
1084         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
1085         find_jump_block, fix_crossing_conditional_branches,
1086         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
1087         Replace all occurences of crossing_edge with an edge flag check
1088         or set/reset.
1089         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1090         try_crossjump_bb): Likewise.
1091         * cfglayout.c (fixup_reorder_chain): Likewise.
1092         * cfgrtl.c (force_nonfallthru_and_redirect,
1093         commit_one_edge_insertion): Likewise.
1094
1095         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
1096         * tree-flow.h (compute_dominance_frontiers): Move prototype...
1097         * basic-block.h:  ...here.
1098         * tree-cfg.c (compute_dominance_frontiers_1,
1099         compute_dominance_frontiers): Move from here...
1100         * cfganal.c: ...to here.  Include timevar.h.
1101
1102 2004-08-18  James E Wilson  <wilson@specifixinc.com>
1103
1104         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
1105         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
1106
1107         * config/mips/mips.md (type): Add frdiv.
1108         (divsf3+1, divsf3+2): Change type to frdiv.
1109         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
1110         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
1111
1112         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
1113         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
1114         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
1115         * config/mips/5000.md (r5k_fdiv_single): Likewise.
1116         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
1117         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
1118         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
1119         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
1120         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
1121         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
1122         Likewise.
1123         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
1124
1125 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
1126
1127         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
1128         get regression tester working again.
1129
1130 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
1131
1132         * insn-notes.def, reg-notes.def: New files.
1133         * rtl.h: Use them to define enum insn_note and enum reg_note.
1134         * rtl.c: Use them to define note_insn_name and reg_note_name.
1135         * Makefile.in (RTL_BASE_H): Update.
1136
1137         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
1138         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
1139
1140 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
1141
1142         * arm.c (arm_size_rtx_costs): New function.
1143         (arm_override_options): Use it if optimizing for space.
1144
1145 2004-08-18  Richard Henderson  <rth@redhat.com>
1146
1147         * emit-rtl.c (gen_const_mem): New.
1148         * rtl.h (gen_const_mem): Declare.
1149         * expr.c (do_tablejump): Use it.
1150         * varasm.c (force_const_mem): Likewise.
1151         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1152         (machopic_legitimize_pic_address): Likewise.
1153         * config/arm/arm.c (legitimize_pic_address): Likewise.
1154         * config/i386/i386.c (legitimize_pic_address): Likewise.
1155         (legitimize_tls_address): Likewise.
1156         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
1157         * config/ia64/ia64.md (load_fptr): Likewise.
1158         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
1159         * config/pa/pa.c (legitimize_pic_address): Likewise.
1160         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
1161         (rs6000_emit_move): Likewise.
1162         * config/s390/s390.c (legitimize_pic_address): Likewise.
1163         (legitimize_tls_address): Likewise.
1164         * config/s390/s390.md (casesi): Likewise.
1165         * config/sh/sh.c (sh_reorg): Likewise.
1166         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
1167         * config/v850/v850.md (casesi): Likewise.
1168
1169         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
1170         * config/sh/sh.c (prepare_move_operands): Remove incorrect
1171         use of MEM_READONLY_P.
1172
1173 2004-08-18  Steven Bosscher  <stevenb@suse.de>
1174
1175         * Makefile.in (OBJS-common): Add postreload-gcse.c.
1176         Add new postreload-gcse.o.
1177         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
1178         (lookup_as_function, insert, rehash_using_reg, use_related_value,
1179         equiv_constant): Use SAFE_HASH instead of safe_hash.
1180         (exp_equiv_p): Export.  Add for_gcse argument when comparing
1181         for GCSE.
1182         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
1183         find_comparison_args, fold_rtx, cse_insn): Update callers.
1184         (hash_rtx): New function derived from old canon_hash and bits
1185         from gcse.c hash_expr_1.
1186         (canon_hash_string): Rename to hash_rtx_string.
1187         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
1188         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
1189         (cselib_lookup): Update this caller.
1190         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
1191         Make static.
1192         (hash_expr): Call hash_rtx.
1193         (ldst_entry): Likewise.
1194         (expr_equiv_p): Call exp_equiv_p.
1195         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
1196         reg_used_on_edge, reg_set_between_after_reload_p,
1197         reg_used_between_after_reload_p, get_avail_load_store_reg,
1198         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
1199         get_bb_avail_insn, hash_scan_set_after_reload,
1200         compute_hash_table_after_reload,
1201         eliminate_partially_redundant_loads, gcse_after_reload,
1202         get_bb_avail_insn, gcse_after_reload_main): Remove.
1203         * postreload-gcse.c: New file, reincarnating most of the above.
1204         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
1205         (gcse_after_reload_main): Update prototype.
1206         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
1207         * passes.c (rest_of_handle_gcse2): Use it.
1208
1209 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
1210
1211         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
1212         (pass_loop_done): Likewise.
1213
1214 2004-08-18  Andrew Pinski  <apinski@apple.com>
1215
1216         * config/rs6000/darwin.md: Delete the altivec patterns which are
1217         handled differently now.
1218         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
1219         (macho_correct_pic_di): Likewise.
1220         (call_indirect_nonlocal_darwin64): Likewise.
1221         Delete the save world/saveFP/saveVec patterns.
1222
1223         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
1224         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1225         * config/rs6000/rs6000.md: Include darwin.md.
1226         (builtin_setjmp_receiver): Add DImode case.
1227         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1228         Darwin bits.
1229
1230 2004-08-18  Matt Austern  <austern@apple.com>
1231
1232         Dead code stripping
1233         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
1234         * darwin.c (darwin_file_end): Mark file as potentially strippable.
1235
1236 2004-08-18  Richard Henderson  <rth@redhat.com>
1237
1238         * alias.c (readonly_fields_p): Remove.
1239         (objects_must_conflict_p): Don't call it.
1240         * tree.h (readonly_fields_p): Remove.
1241         * langhooks.h (struct lang_hooks): Remove honor_readonly.
1242         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
1243
1244 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
1245
1246         * tree-dfa.c (add_referenced_var): Only global variables are
1247         call-clobbered.
1248         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
1249         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
1250         all pointers dereferenced if the statement dereferences them.
1251         (create_name_tags): Do not create memory tags for pointers
1252         that have PT_ANYTHING set.
1253         Also check if PT_VARS is not empty before creating a name tag.
1254         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
1255         variables that share the same alias set with a pointer that
1256         may point anywhere.
1257         (add_may_alias): Add FIXME comment to remove clobbering
1258         aliased variables and tags.
1259         (replace_may_alias): Likewise.
1260         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
1261         (merge_pointed_to_info): If the original variable has not
1262         points-to information, call set_pt_anything.
1263         (add_pointed_to_var): Do not prevent adding a pointed-to
1264         variable if the pointers is PT_ANYTHING.
1265         If the variable is a global, set PT_GLOBAL_MEM.
1266         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
1267         pointer type only come in PTR+OFFSET flavours.
1268         Always call merge_pointed_to_info on PHI arguments that are
1269         SSA_NAMEs.
1270         (get_nmt_for): Mark call-clobbered tags whose pointer points
1271         to global memory.
1272         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
1273         values.
1274         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
1275         FLAGS.
1276         (add_stmt_operand): Abort if the caller tried to add a killing
1277         definition for a memory tag.
1278         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
1279         unnecessary checks.
1280
1281 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
1282
1283         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
1284         from call_used_regs.  Update call_really_used_regs.
1285         (CALL_REALLY_USED_REGISTERS): Define.
1286         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
1287         Replace call_used_regs with call_really_used_regs.
1288         (calc_live_regs, sh_media_register_for_return): Likewise.
1289         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
1290         * sh.md (return_media): Likewise.
1291
1292 2004-08-18  Andrew Pinski  <apinski@apple.com>
1293
1294         * config/darwin.c (machopic_legitimize_pic_address): Only set
1295         MEM_READONLY_P in the non TARGET_TOC case.
1296
1297 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
1298
1299         * rtl.def (NIL): Delete.
1300         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
1301         Tighten the syntax a little.
1302
1303         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
1304         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
1305         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
1306         * config/i386/predicates.md, config/m32r/m32r.h
1307         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
1308         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
1309         * config/sparc/sparc.h, doc/tm.texi:
1310         Replace all occurrences of NIL with UNKNOWN.
1311
1312 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
1313
1314         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
1315         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
1316         sequence inline.  Move drop_through_label code into this
1317         block, being the only place it is used.  Adjust comments.
1318
1319 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
1320
1321         * config/rs6000/altivec.md: Add new patterns for calls to
1322         save_world/rest_world functions.
1323
1324         * config/rs6000/rs6000-protos.h: (save_world_operation,
1325         restore_world_operation) new declarations.
1326
1327         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
1328         field added.
1329         (rs6000_stack_info): Set world_save_p field.
1330         (save_world_operation): New function.
1331         (restore_world_operation): New function.
1332         (compute_save_world_info): New function.
1333         (rs6000_stack_info): Call compute_save_world_info.
1334         (rs6000_emit_prologue): Check for world_save_p and generate
1335         pattern to call save_world for saving all non-volatile and
1336         special registers.
1337         (rs6000_emit_epilogue): Check for world_save_p and generate
1338         pattern to call rest_world to restore saved registers.
1339
1340         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
1341         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
1342         (rs6000_reg_names): New entries added for save_world_operation and
1343         restore_world_operation.
1344
1345 2004-08-18  Caroline Tice  <ctice@apple.com>
1346
1347         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
1348         "-freorder-blocks-and-partition" to the flags used in second
1349         stage of profiledbootstrap.
1350         * bb-reorder.c (push_to_next_round_p): Add new variable,
1351         next_round_is_last; set and use variable to make sure, when
1352         partitioning, that the last trace construction round consists
1353         of all (and only) cold basic blocks.
1354         (rotate_loop): Don't copy blocks that end in a section
1355         crossing jump.
1356         (copy_bb): Correctly initialize "partition" of duplicated bb.
1357         (add_unlikely_executed_notes): Add a comment.
1358         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
1359         to make sure, if function contains hot blocks, that the
1360         successors of ENTRY_BLOCK_PTR are hot; also, only look for
1361         crossing edges if the architecture supports named sections.
1362         (mark_bb_for_unlikely_executed_section): Modify to always
1363         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
1364         the basic block note insn.
1365         (fix_crossing_unconditional_branches): Remove extra space.
1366         (fix_edges_for_rarely_executed_code): Modify to only do
1367         partitioning work if the architecture supports named sections.
1368         (reorder_basic_blocks): Modify to only add
1369         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
1370         supports named sections.
1371         * c-common.c (handle_section_attribute): Initialize new global
1372         variable, user_defined_section_attribute, to true if user has
1373         specified one.
1374         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
1375         forward edges that cross section boundaries.
1376         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
1377         partitioning information if the architecture supports named
1378         sections.
1379         * cfgrtl.c (target.h): Add statement to include this.
1380         (rtl_split_block): Make sure newly created bb gets correct
1381         partition.
1382         (try_redirect_by_replacing_jump): Make sure redirection isn't
1383         attempting to cross section boundaries.
1384         (force_nonfallthru_and_redirect): Only do partition fix up if
1385         architecture supports named sections.
1386         (rtl_split_edge): Make sure newly created bb ends up in
1387         correct partition.
1388         (commit_one_edge_insertion): Remove code that incorrectly
1389         updated basic block partition; Make sure partition fix up only
1390         happens if architecture supports named sections and it's not
1391         already done.
1392         (rtl_verify_flow_info_1): Fix if-condition on test/error
1393         condition that fallthru edges are not allowed to cross section
1394         boundaries.
1395         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
1396         * final.c (final_scan_insn): Remove redundant test from if-statement;
1397         change calls to text_section into calls to function_section; add code
1398         to only to partitioning fix up if architecture supports named
1399         sections.
1400         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
1401         partition.
1402         (if_convert): Add targetm.have_named_sections to test.
1403         * output.h (unlikely_section_label): Extern declaration for new global
1404         variable.
1405         (unlikely_text_section_name): Likewise.
1406         * opts.c (decode_options): If both partitioning and DWARF debugging
1407         are turned on, issue a warning that this doesn't work, and change
1408         partitiong to basic block reordering (without hot/cold partitions).
1409         * passes.c (rest_of_handle_final): Re-set new global variable,
1410         user_defined_section_attribute, to false.
1411         (rest_of_compilation): Change options for calling partitioning
1412         function: Don't call if the user defined the section attribute, and
1413         don't call if DECL_ONE_ONLY is true for the current function.
1414         * predict.c (choose_function_section): Return immediately if we
1415         are doing hot/cold partitioning (i.e. let the basic block partitioning
1416         determine where the function belongs).
1417         * reg-stack.c (emit_swap_insn): Add condition to step over
1418         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1419         * toplev.c (user_defined_section_attribute): New global variable.
1420         * toplev.h (user_defined_section_attribute): Extern declaration
1421         for new global variable.
1422         * varasm.c (unlikely_section_label): New global variable.
1423         (unlikely_text_section_name): New global variable.
1424         (unlikely_text_section): Add code to initialize
1425         unlikely_text_section_name if necessary; modify to use
1426         unlikely_text_section_name and unlikely_section_label; also to use
1427         named_section properly.
1428         (in_unlikely_text_section):  Modify to work correctly with
1429         named_section and to use unlikely_text_section_name.
1430         (named_section):  Add code to work properly with cold section.
1431         (function_section): Clean up if-statement.
1432         * config/darwin.c (darwin_asm_named_section): Return to original
1433         code, removing use of SECTION_FORMAT_STRING.
1434         * config/arm/pe.h (switch_to_section):  Add case for
1435         in_unlikely_executed_text to switch statement.
1436         * config/i386/cygming.h (switch_to_section): Likewise.
1437         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
1438         (SECTION_FORMAT_STRING): Likewise.
1439         * config/mcore/mcore.h (switch_to_section): Likewise.
1440         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
1441         (SECTION_FORMAT_STRING): Remove.
1442
1443 2004-08-18  Roger Sayle  <roger@eyesopen.com>
1444
1445         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
1446         -ffixed-reg safe, by preserving the meanings of zero and one.
1447         (CALL_USED_REGISTERS): Likewise.
1448         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
1449
1450 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1451
1452         * config/sh/sh.c (split_branches): Check the result of
1453         next_active_insn.
1454         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
1455         Call rtl_register_cfg_hooks.
1456
1457 2004-08-18  Richard Henderson  <rth@redhat.com>
1458
1459         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
1460         * alias.c (true_dependence): Update to match new semantics.
1461         (canon_true_dependence, write_dependence_p): Likewise.
1462         (anti_dependence, output_dependence): Update write_dependence_p args.
1463         (unchanging_anti_dependence): Remove.
1464         * calls.c (purge_mem_unchanging_flag): Remove.
1465         (fixup_tail_calls): Don't call it.
1466         (expand_call): Don't add unchanging memory to function usage.
1467         * expr.c (emit_block_move_via_libcall): Likewise.
1468         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
1469         (get_subtarget): Don't use RTX_UNCHANGING_P.
1470         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
1471         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
1472         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
1473         * cse.c (insert): Don't use RTX_UNCHANGING_P.
1474         (cse_insn, canon_hash): Use MEM_READONLY_P.
1475         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
1476         instead of RTX_UNCHANGING_P.
1477         * explow.c (maybe_set_unchanging): Remove.
1478         * expr.h (maybe_set_unchanging): Remove.
1479         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
1480         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
1481         (assign_parm_setup_reg, expand_function_start): Likewise.
1482         * integrate.c (copy_rtx_and_substitute): Likewise.
1483         * ra-rewrite.c (emit_colors): Likewise.
1484         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
1485         (fixup_match_1): Likewise.
1486         * reload1.c (reload, alter_reg): Likewise.
1487         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
1488         not RTX_UNCHANGING_P.
1489         (equiv_init_varies_p): Likewise.
1490         * loop-invariant.c (check_maybe_invariant): Likewise.
1491         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
1492         * loop.c (note_addr_stored): Likewise.
1493         (prescan_loop): Likewise. Don't check function usage for clobbered
1494         unchanging memory.
1495         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
1496         not RTX_UNCHANGING_P.
1497         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
1498         * varasm.c (force_const_mem): Likewise.
1499         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
1500         * web.c (entry_register): Likewise.
1501         * tree-gimple.h (get_base_address): Move decl ...
1502         * tree.h: ... here.
1503         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
1504
1505         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
1506         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
1507         (alpha_set_memflags): Update to match.
1508
1509         * config/darwin.c (machopic_indirect_data_reference): Set
1510         MEM_READONLY_P instead of RTX_UNCHANGING_P.
1511         (machopic_indirect_call_target): Likewise.
1512         (machopic_legitimize_pic_address): Likewise.
1513         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
1514         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
1515         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
1516         * config/frv/frv.md (symGOT2reg): Likewise.
1517         * config/i386/i386.c (legitimize_pic_address,
1518         legitimize_tls_address, ix86_split_to_parts): Likewise.
1519         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
1520         * config/ia64/ia64.md (load_fptr): Likewise.
1521         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
1522         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
1523         * config/mcore/mcore.c (block_move_sequence): Likewise.
1524         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
1525         * config/pa/pa.c (legitimize_pic_address): Likewise.
1526         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
1527         (rs6000_emit_move): Likewise.
1528         * config/s390/s390.c (legitimize_pic_address): Likewise.
1529         (legitimize_tls_address): Likewise.
1530         * config/s390/s390.md (casesi): Likewise.
1531         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
1532         * config/sh/sh.md (symGOT2reg): Likewise.
1533         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
1534         * config/v850/v850.md (casesi): Likewise.
1535
1536         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
1537         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
1538         * config/mips/mips.c (mips_restore_gp): Likewise.
1539         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
1540         * config/sh/sh.c (sh_reorg): Likewise.
1541
1542 2004-08-18  Richard Henderson  <rth@redhat.com>
1543
1544         * tree.h (struct tree_decl): Add gimple_formal_temp.
1545         (DECL_GIMPLE_FORMAL_TEMP_P): New.
1546         * gimplify.c (pop_gimplify_context): Clear it.
1547         (lookup_tmp_var): Set it, if is_formal.
1548         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
1549         Use is_gimple_val for VECTOR.  Simplify return value.
1550         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
1551         (gimplify_expr): Likewise.
1552         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
1553         is_gimple_tmp_rhs for clarity.  Update all callers.
1554         (is_gimple_reg_rhs): Simplify logic.
1555         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
1556         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
1557         (is_gimple_formal_tmp_reg): Similarly.
1558         * tree-gimple.h: Update decls.
1559         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
1560         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
1561         * tree-ssa-live.c (var_union, type_var_init): Likewise.
1562
1563 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
1564
1565         * c4x.c (legitimize_operands): Remove calls to
1566         preserve_subexpressions_p.
1567
1568 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
1569
1570         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
1571         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
1572
1573 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
1574
1575         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
1576         Objective-C++ extensions.
1577         * gengtype.c (get_file_basename): Match entire subdirectory name
1578         ('cp', 'objc', 'objcp') rather than just its suffix.
1579         (get_base_file_bitmap): Allow for files to belong to more than one
1580         language.
1581         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
1582         used by more than one front-end.
1583
1584 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
1585
1586         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
1587         avoid use of preserve_subexpressions_p.
1588
1589 2004-08-17  Richard Henderson  <rth@redhat.com>
1590
1591         PR 17051
1592         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
1593
1594 2004-08-17  DJ Delorie  <dj@redhat.com>
1595
1596         * doc/extend.texi: Document new xstormy16 attribute.
1597
1598         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
1599         (xstormy16_splittable_below100_or_register): New.
1600         (combine_bnp): New.
1601         (xstormy16_reorg): New.
1602         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1603
1604         * config/stormy16/stormy16.md (movqi_internal): Make name public.
1605         (movhi_internal): Likewise.
1606         (cbhranchhi): Likewise.
1607         (cbhranchhi_neg): Likewise.
1608         (andhi3): Only allow splittable below100 operands.
1609         (iorhi3): Likewise.
1610         (peephole2): New and/zero_extend->and peephole.
1611         (peephole2): New load/ior/save->set1 peephole.
1612         (peephole2): New load/and/save->clr1 peephole.
1613         (bclrx, bclrx2, bclr7, bclr15): New.
1614         (bsetx, bsetx2, bset7, bset15): New.
1615
1616         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
1617         liberal about acceptable 'B' masks.
1618
1619         * config/stormy16/stormy16-protos.h
1620         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
1621         xstormy16_below100_operand, xstormy16_below100_or_register,
1622         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
1623         (PREDICATE_CODES): Add new predicates.
1624
1625         * config/stormy16/stormy16.c
1626         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
1627         xstormy16_below100_operand, xstormy16_below100_or_register,
1628         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
1629         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
1630         (xstormy16_legitimate_address_p): Allow below100 symbols.
1631         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
1632         (xstormy16_expand_move): Leave below100 operands as-is.
1633         (xstormy16_encode_section_info): Encode below100 symbols.
1634         (xstormy16_strip_name_encoding): New.
1635         (xstormy16_print_operand): Print 'b' as shift mask.
1636         (xstormy16_attribute_table): Add below100 attributes.
1637         (xstormy16_handle_below100_attribute): New.
1638
1639         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
1640         (XSTORMY16_SECTION_FUNCTION): New.
1641         (EXTRA_SECTION_FUNCTIONS): Define using the above.
1642         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
1643         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
1644         (ASM_OUTPUT_LABELREF): Define.
1645
1646         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
1647         (movhi_internal): Add below100 support.
1648         (andhi3): Add below100 support.
1649         (iorhi3): Add below100 support.
1650         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
1651
1652 2004-08-17  James E Wilson  <wilson@specifixinc.com>
1653
1654         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
1655         of VOIDmode for comparison code mode.
1656         * config/mips/mips.md: For conditional move patterns, use mode of
1657         first compare operand for comparison mode, instead of VOIDmode.
1658
1659         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
1660         normal and -ffast-math code.
1661
1662 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
1663
1664         PR c++/15871
1665         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
1666
1667 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
1668
1669         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
1670
1671 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
1672
1673         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
1674         for non Darwin targets.
1675         (*call_value_nonlocal_darwin64): Likewise.
1676
1677 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
1678
1679         * config/rs6000/rs6000.c (rs6000_function_value): Check for
1680         altivec mode for altivec return register.
1681
1682 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
1683
1684         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
1685         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1686         * config/rs6000/rs6000.md: Include darwin.md.
1687         (builtin_setjmp_receiver): Add DImode case.
1688         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1689         Darwin bits.
1690
1691 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
1692
1693         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
1694         trees.
1695         * tree-vectorizer.h: New File: Same.
1696         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
1697         * common.opt (ftree-vectorize): New flag to enable vectorization.
1698         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
1699         vectorization pass.
1700         * tree-data-ref.h (init_data_ref): Additional argument.
1701         (array_base_name_differ_p): Moved to tree-data-ref.c.
1702         * tree-data-ref.c (array_base_name_differ_p): Revised.
1703         (initialize_data_dependence_relation): Call array_base_name_differ_p
1704         with an extra argument.
1705         (analyze_all_data_dependences): Same.
1706         (init_data_ref): Additional argument is_read to set DR_IS_READ.
1707         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
1708         file.
1709         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
1710         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
1711         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
1712         vectorization pass.
1713         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
1714         (tree_ssa_loop_done): Call scev_finalize.
1715         (tree_vectorize): Define the new vectorization pass.
1716         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
1717         size of the vector they support (until support for multiple vector
1718         sizes is added to the vectorizer).
1719         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
1720         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
1721         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
1722         documentation.
1723
1724 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
1725
1726         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
1727         usage.
1728         (generate_protocol_list, handle_impent): Likewise.
1729
1730 2004-08-17  Roger Sayle  <roger@eyesopen.com>
1731
1732         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
1733         ensure that call_used_regs is a superset of both fixed_regs and
1734         call_really_used_regs.
1735
1736 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
1737
1738         PR target/17019
1739         * arm.md (addsi3_cbranch_scratch): Correct case labels.
1740
1741 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
1742
1743         PR middle-end/17036
1744         * fold-const.c (fold): Check for integer operand when
1745         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
1746         Pinski  <pinskia@physics.uc.edu>.
1747
1748 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
1749
1750         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
1751         No need to check if in a cross configuration.
1752         * configure: Regenerate.
1753
1754         * calls.c (precompute_register_parameters):
1755         Inline preserve_subexpressions_p ().
1756         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
1757         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
1758         Likewise.
1759         * expr.c (get_subtarget): Likewise.
1760         * rtl.h (preserve_subexpressions_p): Remove.
1761         * stmt.c (preserve_subexpressions_p): Remove.
1762
1763         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
1764         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
1765         Abort on gimplified cases.
1766
1767 2004-08-16  James E Wilson  <wilson@specifixinc.com>
1768
1769         * tree.h (VECTOR_FLOAT_TYPE_P): New.
1770         (FLOAT_TYPE_P): Use it.
1771         * c-typeck.c (build_binary_op): After convert calls, check for
1772         check for ERROR_MARK operands.
1773
1774 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
1775
1776         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
1777         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
1778         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
1779         (genobjs static pattern rule): Remove %.c dependency.
1780         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
1781         Rename rules; delete commands; fix dependencies.
1782         (mostlyclean): Do not delete temporary source copies.
1783         * configure.ac: Delete all references to BUILD_PREFIX and
1784         BUILD_PREFIX_1.
1785         * configure: Regenerate.
1786
1787         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
1788         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
1789         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
1790         with #ifndef GENERATOR_FILE so that nothing from those headers
1791         is used.
1792
1793         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
1794
1795 2004-08-16  Adam Nemet  <anemet@lnxw.com>
1796
1797         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
1798
1799 2004-08-16  Andrew Pinski  <apinski@apple.com>
1800
1801         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
1802         extraneous semicolon.
1803
1804 2004-08-16  Devang Patel  <dpatel@apple.com>
1805
1806         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
1807         * print-tree.c (print_node): Print DECL_PRESERVE_P.
1808         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
1809         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
1810         * target.h (struct gcc_target): New member, mark_decl_preserved.
1811         * hooks.c (hook_void_charptr): Rename to ...
1812         (hook_void_constcharptr): ... new name.
1813         * hooks.h (hook_void_charptr): Rename to ..
1814         (hook_void_constcharptr): ... new name.
1815         * tree.h (DECL_PRESERVE_P): New #define.
1816         (struct tree_decl): New member, preserve_flag.
1817         * varasm.c (assemble_start_function): Mark decl preserved.
1818         (assemble_variable): Same.
1819         * darwin.c (darwin_mark_decl_preserved): New function.
1820         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
1821         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
1822         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
1823
1824 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
1825
1826         * c-decl.c (grokdeclarator): Allow for function definition where
1827         innermost declarator has attributes.
1828
1829 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
1830
1831         * except.c (get_exception_filter, build_post_landing_pads,
1832         dw2_build_landing_pads): Use target-specific mode for 'filter'.
1833         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
1834         * target.h (eh_return_filter_mode): New field added.
1835         * targhooks.c (default_eh_return_filter_mode): Defined.
1836         * targhooks.h (default_eh_return_filter_mode): Declared.
1837         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
1838
1839 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
1840
1841         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
1842         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
1843         * configure: Regenerate.
1844
1845 2004-08-16  Stan Shebs  <shebs@apple.com>
1846
1847         Basic support for 64-bit Darwin.
1848         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1849         (machopic_legitimize_pic_address): Similarly, plus use Pmode
1850         instead of SImode.
1851         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
1852         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
1853         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
1854         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
1855         (PROCESSOR_DEFAULT64): Define.
1856         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
1857         Darwin.
1858         * config/rs6000/rs6000.md: Include darwin.md.
1859         (builtin_setjmp_receiver): Add DImode case.
1860         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
1861         Darwin.
1862         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
1863         (rs6000_emit_move): Add DImode case to Darwin bits.
1864         (machopic_output_stub): Use .quad if 64-bit.
1865         * invoke.texi: Document -m32 and -m64.
1866
1867 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
1868
1869         * doc/extend.texi (AltiVec builtins): Document additional differences
1870         from the Motorola AltiVec PIM.
1871
1872 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
1873
1874         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
1875         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
1876         (struct tree_common): Update public_flag documentation.
1877
1878 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
1879
1880         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
1881         Check for artificial variables, not is_gimple_tmp_var.
1882         * tree-ssa-live.c (var_union): Likewise.
1883
1884 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
1885
1886         * calls.c (load_register_parameters): Remove spurious FIXME token.
1887
1888 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
1889
1890         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
1891         (c-lang.o): Depend on c-objc-common.h.
1892         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
1893         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
1894         * c-lang.c: Include c-objc-common.h.
1895         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
1896         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
1897         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
1898         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
1899         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
1900         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
1901         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
1902         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
1903         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
1904         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1905         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
1906         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1907         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1908         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
1909         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
1910         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
1911         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
1912         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
1913         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
1914         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
1915         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
1916         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
1917         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
1918         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
1919         Move to c-objc-common.h.
1920         * c-objc-common.c: Include c-objc-common.h.
1921         * c-objc-common.h: New file.
1922
1923 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
1924             Andrew Pinski  <pinskia@physics.uc.edu>
1925
1926         PR target/14931
1927         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
1928         style.
1929
1930 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
1931
1932         * tree.h (build_int_cst): New.
1933         (build_int_2): Remove.
1934         * tree.c (build_int_2): Remove.
1935         (build_int_cst): New.
1936         (make_vector_type, build_common_tree_nodes,
1937         build_common_tree_nodes_2): Use build_int_cst.
1938         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
1939         expand_builtin_strpbrk, expand_builtin_fputs,
1940         build_string_literal, expand_builtin_printf,
1941         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
1942         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
1943         fold_builtin_isdigit, simplify_builtin_strstr,
1944         simplify_builtin_strpbrk, fold_builtin_fputs,
1945         simplify_builtin_sprintf): Use build_int_cst.
1946         * c-common.c (start_fname_decls, fix_string_type,
1947         c_common_nodes_and_builtins, c_init_attributes,
1948         shorten_compare): Likewise.
1949         * c-decl.c (complete_array_type,
1950         check_bitfield_type_and_width): Likewise.
1951         * c-lex.c (interpret_integer, lex_charconst): Likewise.
1952         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
1953         * c-pretty-print.c (pp_c_integer_constant): Likewise.
1954         * c-typeck.c (really_start_incremental_init, push_init_level,
1955         set_nonincremental_init_from_string): Likewise.
1956         * calls.c (load_register_parameters): Likewise.
1957         * convert.c (convert_to_pointer): Likewise.
1958         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
1959         build_fn_info_type, build_ctr_info_value, build_gcov_info):
1960         Likewise.
1961         * except.c (init_eh, assign_filter_values, assign_filter_values):
1962         Likewise.
1963         * expmed.c (store_fixed_bit_field, extract_bit_field,
1964         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
1965         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
1966         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
1967         * expr.c (convert_move, emit_group_load, emit_group_store,
1968         expand_assignment, store_constructor, store_field,
1969         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
1970         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
1971         invert_truthvalue, optimize_bit_field_compare,
1972         decode_field_reference, all_ones_mask_p, constant_boolean_node,
1973         fold_div_compare, fold, fold_read_from_constant_string,
1974         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
1975         * function.c (assign_parm_setup_block): Likewise.
1976         * stmt.c (shift_return_value, expand_end_case_type,
1977         estimate_case_costs): Likewise.
1978         * stor-layout.c (layout_type, initialize_sizetypes,
1979         set_min_and_max_values_for_integral_type): Likewise.
1980         * tree-chrec.c (chrec_fold_multiply_poly_poly,
1981         reset_evolution_in_loop): Likewise.
1982         * tree-chrec.h (build_polynomial_chrec): Likewise.
1983         * tree-complex.c (build_replicated_const): Likewise.
1984         * tree-eh.c (honor_protect_cleanup_actions,
1985         lower_try_finally_onedest, lower_try_finally_copy,
1986         lower_try_finally_switch): Likewise.
1987         * tree-mudflap.c (mf_build_string, mx_register_decls,
1988         mudflap_register_call, mudflap_enqueue_constant): Likewise.
1989         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
1990         * tree-pretty-print.c (dump_generic_node): Likewise.
1991         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
1992         Likewise.
1993         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1994         * tree-ssa-loop-niter.c (number_of_iterations_cond,
1995         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
1996         Likewise.
1997
1998         * config/alpha/alpha.c (alpha_initialize_trampoline,
1999         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
2000         * config/arm/arm.c (arm_get_cookie_size): Likewise.
2001         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2002         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2003         * config/i860/i860.c (i860_va_start): Likewise.
2004         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2005         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
2006         mips_gimplify_va_arg_expr): Likewise.
2007         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2008         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
2009         add_compiler_branch_island): Likewise.
2010         * config/s390/s390.c (s390_va_start): Likewise.
2011         * config/sh/sh.c (sh_va_start): Likewise.
2012         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2013         Likewise.
2014         * config/xtensa/xtensa.c (xtensa_va_start,
2015         xtensa_gimplify_va_arg_expr): Likewise.
2016
2017         * objc/objc-act.c (build_objc_string_object,
2018         build_objc_symtab_template, init_def_list, init_objc_symtab,
2019         init_module_descriptor, generate_static_references,
2020         build_selector_translation_table, get_proto_encoding,
2021         build_typed_selector_reference, build_selector_reference,
2022         build_next_objc_exception_stuff,
2023         build_method_prototype_list_template, generate_descriptor_table,
2024         generate_protocols, build_protocol_initializer,
2025         build_ivar_list_template, build_method_list_template,
2026         build_ivar_list_initializer, generate_ivars_list,
2027         generate_dispatch_table, generate_protocol_list,
2028         build_category_initializer, build_shared_structure_initializer,
2029         generate_shared_structures, handle_impent,
2030         generate_objc_image_info): Use build_int_cst.
2031
2032 2004-08-15  Ben Elliston  <bje@au.ibm.com>
2033
2034         * vec.h: Comment improvements.
2035
2036 2004-08-14  Roger Sayle  <roger@eyesopen.com>
2037
2038         * c-common.c (shorten_compare, pointer_int_sum,
2039         c_common_truthvalue_conversion, boolean_increment): Replace calls
2040         to build with calls to buildN.
2041         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
2042         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
2043         gimplify_switch_stmt): Likewise.
2044         * c-typeck.c (default_function_array_conversion,
2045         build_component_ref, build_array_ref, build_function_call,
2046         pointer_diff, build_unary_op, build_conditional_expr,
2047         build_compound_expr, build_modify_expr, c_finish_goto_label,
2048         c_finish_goto_ptr, c_finish_return, c_finish_loop,
2049         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
2050         build_binary_op): Likewise.
2051
2052 2004-08-15  Steven Bosscher  <stevenb@suse.de>
2053
2054         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
2055
2056 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2057
2058         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
2059         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
2060         * fixinc/fixincl.x: Rebuilt.
2061
2062 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
2063
2064         * config/mips/mips-protos.h (mips_symbolic_constant_p)
2065         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
2066         (mips_small_data_pattern_p): Declare.
2067         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
2068         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
2069         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
2070         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
2071         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
2072         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
2073         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
2074         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
2075         (pc_or_label_operand, call_insn_operand, move_operand)
2076         (consttable_operand, symbolic_operand, general_symbolic_operand)
2077         (global_got_operand, local_got_operand, stack_operand)
2078         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
2079         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
2080         (mips_small_data_pattern_p): Replace previous small_data_pattern
2081         predicate.  Turn into a bool () (rtx) function.
2082         * config/mips/predicates.md: New file.
2083         * config/mips/mips.md: Include it.  Use the target-independent
2084         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
2085         trap_comparison_operator and equality_op to equality_operator.
2086         Replace uses of small_int with the equivalent const_arith_operand.
2087         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
2088         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
2089         to fcc_reload_operand.
2090         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
2091
2092 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2093
2094         PR libstdc++/17005 partial fix.
2095         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
2096         except when generating ANSI/C89 code.
2097
2098 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
2099
2100         * c-common.c (shorten_compare): Use force_fit_type directly.
2101
2102 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
2103             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
2104             Dave Korn  <dk@artimi.com>
2105
2106         * doc/install.texi (Building): Avoid duplicate reference to GNU
2107         make requirement.
2108         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
2109
2110 2004-08-14  Richard Henderson  <rth@redhat.com>
2111
2112         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
2113         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
2114
2115 2004-08-13  Richard Henderson  <rth@redhat.com>
2116
2117         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
2118         for constant_call_address_operand.
2119         (call_value_pop_1, call_value_1): Likewise.
2120         (sibcall_value_1, call_value_1_rex64): Likewise.
2121
2122 2004-08-13  James E Wilson  <wilson@specifixinc.com>
2123
2124         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
2125         Correct mode from SFmode to DFmode.
2126
2127 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
2128
2129         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
2130         __cstring_object and __image_info sections with the no_dead_strip
2131         attribute.
2132
2133 2004-08-13  Roger Sayle  <roger@eyesopen.com>
2134             David Billinghurst  <David.Billinghurst@riotinto.com>
2135
2136         PR libgfortran/15930
2137         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
2138         * fixinc/fixincl.x: Regenerate.
2139         * fixinc/tests/base/internal/math_core.h: New file.
2140
2141 2004-08-13  Richard Henderson  <rth@redhat.com>
2142
2143         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
2144         (dbxout_function_end): Remove ifdefs for it.
2145         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
2146
2147 2004-08-13  Richard Henderson  <rth@redhat.com>
2148
2149         * Makefile.in (insn-preds.o): Depend on TREE_H.
2150         * genpreds.c (write_insn_preds_c): Include tree.h.
2151         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
2152         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
2153         const48_operand, and_operand, or_operand, mode_width_operand,
2154         mode_mask_operand, mul8_operand, const0_operand,
2155         hard_fp_register_operand, hard_int_register_operand,
2156         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
2157         samegp_function_operand, direct_call_operand, small_symbolic_operand,
2158         global_symbolic_operand, call_operand, symbolic_operand,
2159         dtp16_symbolic_operand, dtp32_symbolic_operand,
2160         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
2161         gottp_symbolic_operand, alpha_comparison_operator,
2162         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
2163         signed_comparison_operator, alpha_fp_comparison_operator,
2164         divmod_operator, fix_operator, aligned_memory_operand,
2165         unaligned_memory_operand, reg_or_unaligned_mem_operand,
2166         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
2167         reg_no_subreg_operand, addition_operation): Move to predicates.md.
2168         (reg_or_const_int_operand): Remove.  Replace all users with
2169         reg_or_cint_operand.
2170         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
2171         (resolve_reload_operand): Split out of aligned_memory_operand.
2172         * config/alpha/alpha-protos.h: Update for exports.
2173         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
2174         * config/alpha/alpha.md: Include predicates.md.
2175         * config/alpha/predicates.md: New file.
2176
2177 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
2178
2179         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
2180         fields with a pointer to the instruction definition.
2181         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
2182         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
2183         (write_attr_case, write_const_num_delay_slots): Update accordingly.
2184         (write_attr_case, write_const_num_delay_slots): Write the name of
2185         an insn next to its case statement.
2186         * genoutput.c (data): Add a filename field.
2187         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
2188         (output_insn_data): Print the location of each insn definition.
2189         * genrecog.c (write_action): Print the name of an insn above
2190         the statement that returns its code.
2191
2192 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
2193
2194         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
2195         * config/libgloss.h: Likewise.
2196         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
2197         * c4x/c4x-modes.def: Likewise.
2198         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
2199         (c4x_rptb_nop_p): Likewise.
2200         (c4x_rptb_valid_p): Likewise.
2201         (c4x_rptb_insert): Likewise.
2202         (c4x_address_conflict): Likewise.
2203         * config/c4x/c4x.md: Likewise.
2204         * config/frv/frv.md: Likewise.
2205         * config/i386/athlon.md: Likewise.
2206         * config/i386/i386.md: Likewise.
2207         * config/i386/predicates.md: Likewise.
2208         * config/ia64/ia64.c: Likewise.
2209         * config/ia64/itanium1.md: Likewise.
2210         * config/ia64/itanium2.md: Likewise.
2211         * config/iq2000/iq2000.md: Likewise.
2212         * config/mcore/mcore.c: Likewise.
2213         * config/mips/mips.c: Likewise.
2214         * config/mips/r3900.h: Likewise.
2215         * config/mips/sb1.md: Likewise.
2216         * config/pa/milli64.S: Likewise.
2217         * config/pa/pa.c: Likewise.
2218         * config/pa/pa.h: Likewise.
2219         * config/rs6000/8540.md: Likewise.
2220
2221 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
2222
2223         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
2224
2225 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
2226
2227         * sh.md (cbranch define_delay) Use cond_delay_slot for
2228         non-anulled condition too.
2229
2230 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
2231
2232         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
2233         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
2234         any_parallel_operand, lmw_operation, stmw_operation,
2235         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
2236         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
2237         any_parallel_operand.
2238         (return_and_restore_fpregs_{si,di}): Same.
2239
2240 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
2241
2242         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
2243         if pred->singleton != PARALLEL, issue a warning and pretend it was.
2244         Also issue a warning for any predicate we don't know about.
2245
2246 2004-08-12  Richard Henderson  <rth@redhat.com>
2247
2248         * config/i386/i386.c (internal_label_prefix): Export.
2249         (internal_label_prefix_len, struct ix86_address,
2250         ix86_decompose_address, maybe_get_pool_constant,
2251         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
2252         memory_address_length): Export.
2253         (any_fp_register_operand, fp_register_operand,
2254         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
2255         x86_64_general_operand, x86_64_szext_general_operand,
2256         x86_64_nonmemory_operand, x86_64_movabs_operand,
2257         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
2258         x86_64_zext_immediate_operand, const_int_1_31_operand,
2259         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
2260         tls_symbolic_operand, global_dynamic_symbolic_operand,
2261         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
2262         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
2263         constant_call_address_operand, const0_operand, const1_operand,
2264         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
2265         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
2266         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
2267         general_no_elim_operand, nonmemory_no_elim_operand,
2268         index_register_operand, q_regs_operand, flags_reg_operand,
2269         non_q_regs_operand, zero_extended_scalar_load_operand,
2270         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
2271         ix86_comparison_operator, ix86_carry_flag_operator,
2272         fcmov_comparison_operator, promotable_binary_operator,
2273         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
2274         mult_operator, div_operator, arith_or_logical_operator,
2275         memory_displacement_operand, cmpsi_operand, long_memory_operand,
2276         aligned_operand): Move to predicates.md as define_predicates.
2277         (tls_symbolic_operand_1): Remove.
2278         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
2279         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
2280         (legitimize_address): Merge tls_symbolic_operand contents.
2281         (ix86_expand_move): Likewise.
2282         * config/i386/i386-protos.h: Update for exports.
2283         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
2284         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
2285         * config/i386/i386.md: Include predicates.md.
2286         * config/i386/predicates.md: New file.
2287
2288 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
2289
2290         PR c++/16924
2291         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
2292         SYMBOL_REF_DECL.
2293         (i386_pe_mark_dllimport): Likewise.
2294         (i386_pe_encode_section_info): Likewise, when overriding
2295         dllimport attribute.
2296
2297 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
2298
2299         * configure.ac: When testing for flex, nm, ar, and bison, check
2300         that they will actually be built.
2301         * configure: Regenerate.
2302
2303 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
2304
2305         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
2306         (MOVE_MAX_PIECES): Define.
2307
2308 2004-08-12  Devang patel  <dpatel@apple.com>
2309
2310         * dbxout.c (dbxout_begin_prologue): New function.
2311         (dbx_debug_hooks): Use new begin prologue hook.
2312         (dbxout_function_end): Emit N_ENSYM.
2313         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
2314
2315 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
2316
2317         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
2318         argument is float*.
2319
2320         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
2321         for vec_dss.
2322
2323         * doc/extend.texi (AltiVec builtins): Fix description for recent
2324         changes.  Update operation list to match current support.
2325
2326 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2327
2328         * config/s390/s390.c (struct s390_frame_layout): New struct as element
2329         of struct machine_function.
2330         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
2331         changed all uses.
2332         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
2333         changed all uses.
2334         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
2335         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
2336         (s390_frame_area, s390_register_info): New functions.
2337         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
2338         for base register.
2339         (s390_return_addr_rtx, s390_return_address_offset)
2340         (s390_va_start, s390_gimplify_va_arg)
2341         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
2342         layouts.
2343         (s390_frame_info): Functionality partly moved to s390_register_info.
2344         Made adaptions for new stack layout.
2345         (save_gprs, restore_gprs): Changed meaning of second parameter and
2346         adapted all callers.
2347
2348         * config/s390/s390.h (s390_backchain_string): New global variable.
2349         (MASK_BACKCHAIN): Removed definition.
2350         (TARGET_BACKCHAIN): Changed check.
2351         (TARGET_KERNEL_BACKCHAIN): New macro.
2352         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
2353         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
2354         "kernel-backchain".
2355         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
2356
2357         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
2358         as condition.  Adjusted for new stack layout.
2359
2360         * doc/invoke.texi: Added documentation for new option
2361         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
2362         "-mno-backchain".
2363
2364 2004-08-12  Paul Brook  <paul@codesourcery.com>
2365
2366         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
2367         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
2368
2369 2004-08-12  David Daney  <ddaney@avtrex.com>
2370
2371         * java/gcj.texi:  Add subsection on signal usage.
2372
2373 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
2374
2375         * expr.c (move_by_pieces): Set alignment for move to minimum of
2376         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
2377         alignment, but not less than the original alignment.
2378         (move_by_pieces_ninsns): Same.
2379         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
2380         (store_by_pieces_1): Same.
2381
2382 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
2383
2384         PR tree-optimization/16867
2385         * tree.c (is_global_var): New function.
2386         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
2387         Call is_global_var.
2388         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
2389         Update all users.
2390         (is_global_var): Declare.
2391         * tree-dfa.c (dump_variable): Display global and addressable
2392         attributes.
2393         (add_referenced_var): Clarify documentation when marking
2394         variables call-clobbered.
2395         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
2396         instead of needs_to_live_in_memory.
2397         (mark_call_clobbered): If the variable is a tag, mark it
2398         DECL_EXTERNAL.
2399         * tree-gimple.c (is_gimple_reg): Don't check for
2400         TREE_ADDRESSABLE.
2401         (is_gimple_non_addressable): Likewise.
2402         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
2403         needs to be marked call-clobbered.
2404         (setup_pointers_and_addressables): Call is_global_var instead
2405         of needs_to_live_in_memory.
2406         * tree-ssa-dce.c (need_to_preserve_store): Remove.
2407         Update all users with is_global_var.
2408         (mark_stmt_if_obviously_necessary): Fix processing of aliased
2409         stores.  Don't check the virtual definitions.  Rather, check
2410         whether the store is going into global memory.
2411         (find_obviously_necessary_stmts): Get the symbol from the PHI
2412         result.
2413         * tree-ssa-operands.c (get_call_expr_operands): Do not add
2414         clobbering may-defs if the call does not have side effects.
2415
2416 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
2417
2418         PR c++/16276
2419         * output.h (default_function_rodata_section,
2420         default_no_function_rodata_section): New prototypes.
2421         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
2422         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
2423         (TARGET_ASM_OUT): Add it.
2424         * varasm.c (default_function_rodata_section,
2425         default_no_function_rodata_section): New functions.
2426         * final.c (final_scan_insn): Call
2427         targetm.asm_out.function_rodata_section instead of
2428         readonly_data_section.
2429         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
2430         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2431         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2432         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2433         Likewise.
2434         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2435         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2436         Likewise.
2437         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2438         Likewise.
2439         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2440         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2441         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
2442
2443 2004-08-12  Paul Brook  <paul@codesourcery.com>
2444
2445         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
2446         frame info.
2447         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
2448         DWARF2_UNWIND_INFO.
2449
2450 2004-08-12  Ben Elliston  <bje@au.ibm.com>
2451
2452         PR target/16286
2453         * config/rs6000/altivec.h: Change vector to __vector throughout.
2454         (Except for the `vector' macro itself).
2455
2456 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
2457
2458         * genpreds.c: Add capability to generate predicate bodies as
2459         well as function prototypes.  Write function prototypes for
2460         the generic predicates too.
2461         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
2462         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
2463         (write_match_code, write_predicate_expr, write_one_predicate_function)
2464         (parse_option): New functions.
2465         (output_predicate_decls): Delete.
2466         (main): Read the machine description, process DEFINE_PREDICATE or
2467         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
2468         as appropriate.
2469
2470         * genrecog.c (struct decision_test): Replace index with
2471         struct pred_data pointer.
2472         (next_index): Remove, unused.
2473         (pred_table, preds, special_mode_pred_table): Delete.
2474         (compute_predicate_codes, process_define_predicate): New functions.
2475         (validate_pattern, add_to_sequence, write_switch): Update for
2476         new data structures.
2477         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
2478         Check both error_count and have_error.
2479
2480         * gensupport.c (in_fname, first_predicate): New globals.
2481         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
2482         (predicate_table, last_predicate, old_pred_table)
2483         (old_special_pred_table): New statics.
2484         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
2485         (add_predicate, init_predicate_table): New functions.
2486         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
2487         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
2488         it or max_include_len.  Call init_predicate_table.
2489         (read_rtx): Run the predicate queue after the attribute queue
2490         but before all the others.
2491         * gensupport.h (in_fname, struct pred_data, first_predicate)
2492         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
2493         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
2494         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
2495         * dummy-conditions.c: Don't include bconfig.h, system.h,
2496         coretypes.h, tm.h, or system.h.  Do include stddef.h.
2497         Duplicate declaration of struct c_test from gensupport.h.
2498
2499         * Makefile.in (OBJS-common): Add insn-preds.o.
2500         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
2501         (insn-preds.c, insn-preds.o): New rules.
2502         (s-preds): Also generate insn-preds.c.
2503         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
2504         Update dependencies.
2505         (print-rtl.o, print-rtl1.o): Correct dependencies.
2506
2507         * recog.h: Delete prototypes of predicate functions.
2508
2509         * doc/md.texi (Predicates): New section with complete
2510         documentation of operand/operator predicates.  Remove some
2511         incomplete documentation of predicates from other places.
2512         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
2513         PREDICATE_CODES; indicate that both are deprecated in favor
2514         of define_predicate/define_special_predicate.
2515
2516         * config/ia64/ia64.c: All predicate function definitions moved
2517         to ia64.md, except
2518         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
2519         (ia64_expand_load_address, ia64_expand_move):
2520         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
2521
2522         * config/ia64/ia64.md: All predicates now defined here.
2523         (symbolic_operand): Is now a special predicate.
2524
2525         * config/ia64/ia64.h: Declare ia64_section_threshold.
2526         (PREDICATE_CODES): Delete.
2527
2528 2004-08-12  Richard Henderson  <rth@redhat.com>
2529
2530         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
2531         * c-semantics.c (add_stmt): Set it.
2532         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
2533         before instantiating a variable sized type.
2534
2535 2004-08-12  Richard Henderson  <rth@redhat.com>
2536
2537         * stor-layout.c (round_up, round_down): Move ...
2538         * fold-const.c (round_up, round_down): ... here.  Use
2539         multiple_of_p to avoid any arithmetic at all.
2540
2541 2004-08-12  Richard Henderson  <rth@redhat.com>
2542
2543         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
2544         (gimplify_init_ctor_preeval_1): New.
2545         (gimplify_init_ctor_preeval): New.
2546         (gimplify_init_ctor_eval): New.
2547         (gimplify_init_constructor): Use them.  Always gimplify the LHS
2548         object first.
2549
2550 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
2551
2552         (This patch is part of merge of objc-improvements-branch
2553         into mainline.)
2554
2555         * doc/frontends.texi: Mention Objective-C++ in addition to
2556         Objective-C.
2557         * doc/install.texi: Add 'obj-c++' to list of configurable
2558         languages.
2559         * doc/invoke.texi: Rename Objective-C option headings to
2560         indicate they also apply to Objective-C++.  List file
2561         extensions for Objective-C++ sources.  Mention that
2562         ObjC and ObjC++ compilations may also use C and C++ options,
2563         respectively.  Point users to doc/standards.texi for
2564         further info on ObjC and ObjC++.
2565         * doc/sourcebuild.texi: Mention the objcp/ directory and
2566         the Objective-C++ sources it contains.
2567         * doc/standards.texi: Update link to Apple ObjC site;
2568         add link to gcc readings.html WWW doc.
2569
2570 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
2571
2572         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
2573         and 2004-07-14 changes.
2574
2575 2004-08-12  Paul Brook  <paul@codesourcery.com>
2576
2577         * doc/invoke.texi: Fix typo.
2578
2579 2004-08-11 Devang Patel  <dpatel@apple.com>
2580
2581         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
2582         and -no_dead_strip_inits_and_terms.
2583         (LINK_SPEC): Same.
2584         * doc/invoke.texi (Darwin Options): Document -dead_strip and
2585         -no_dead_strip_inits_and_terms.
2586
2587 2004-08-11  Paul Brook  <paul@codesourcery.com>
2588
2589         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
2590         (arm_load_pic_register): ... to this.
2591         * config/arm/arm.c (arm_finalize_pic): Rename ...
2592         (arm_load_pic_register): ... to this.  Always output insns at the
2593         current location.  Load via low reg in thumb mode.
2594         (arm_expand_prologue): Call arm_load_pic_register.
2595         (thumb_expand_prologue): Ditto.
2596         * config/arm/arm.h (FINALIZE_PIC): Remove.
2597         * config/arm/arm.md (builtin_setjmp_receiver): Call
2598         arm_load_pic_register.
2599
2600 2004-08-11  Paul Brook  <paul@codesourcery.com>
2601
2602         * arm.c (thumb_force_lr_save): Add prototype.
2603         (thumb_compute_save_reg_mask): New function.
2604         (thumb_find_work_register): New function.
2605         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
2606         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
2607         Don't clobber r3 when removing pretend args.
2608         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
2609         (thumb_output_function_prologue): Use new functions.
2610         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
2611         * arm.h (THUMB_REG_PUSHED_P): Remove.
2612
2613 2004-08-11  James E Wilson  <wilson@specifixinc.com>
2614
2615         PR rtl-optimization/16490
2616         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
2617         global_live_at_end for new basic block if already set for other blocks.
2618
2619 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
2620
2621         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
2622
2623         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
2624         (mfcr rlwinm rlwinm patterns): Set length to 12.
2625
2626 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
2627
2628         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
2629         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
2630         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
2631         (start_ssa_stmt_operands): Delete.
2632         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
2633         struct stmt_operands_d.
2634         (build_ssa_operands): New extern entry point.
2635         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
2636         building code, replace with create_ssa_artficial_load_stmt().
2637         * tree-ssa-operands.c (struct voperands_d): Delete.
2638         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
2639         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
2640         (free_uses, free_defs, free_vuses, free_v_may_defs,
2641         free_v_must_defs): Remove dealloc parameter.
2642         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
2643         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
2644         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
2645         vector comparisons, ssa_name reuse, and allocations here.
2646         (verify_start_operands): Delete.
2647         (finalize_ssa_stmt_operands): Set new operands by calling finalize
2648         routines.
2649         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
2650         (append_def, append_usei): Simplify to simple accumulation.
2651         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
2652         duplicates and simple accumulation.
2653         (free_ssa_operands): Free vectors in a stmt_operand structure.
2654         (build_ssa_operands): New. Create a new stmt_operand structure from
2655         a stmt and an old set of stmt_operands.
2656         (get_stmt_operands): Simplify and call build_ssa_operands.
2657         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
2658         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
2659         add_call_read_ops): Don't pass prev_vops around anymore.
2660         (note_addressable): Return if no stmt annotation.
2661         (copy_virtual_operands): Access v_may_def operands through a struct.
2662         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
2663         hash tables without treating the stmt as a real stmt.
2664         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
2665         v_may_def def and use through a struct instead of 2 array elements.
2666         (struct v_may_def_optype_d): Use v_may_def_operand_type.
2667         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
2668
2669 2004-08-11  Nick Clifton  <nickc@redhat.com>
2670
2671         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
2672         this funciton's behaviour.  Return true when the current function
2673         has a section attribute and -mlong-calls is in effect.
2674         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
2675         short-call marker when -mlong-calls is in effect and the function
2676         has a section attribute.
2677
2678 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
2679
2680         * stmt.c (expand_return): If asked to return the RESULT_DECL,
2681         just call expand_value_return on result_rtl.
2682
2683 2004-08-10  Richard Henderson  <rth@redhat.com>
2684
2685         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
2686         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
2687         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
2688         (add_location_or_const_value_attribute): ... not here.  Use
2689         loc_descriptor_from_tree if possible.
2690         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
2691         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
2692         values specially.
2693         (loc_descriptor_from_tree): New.  Update callers.
2694         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
2695         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
2696         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
2697         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
2698         and BUILT_IN_STACK_RESTORE.
2699         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
2700         * stmt.c (expand_stack_alloc): Remove.
2701         * tree-mudflap.c (mx_register_decls): Don't look for
2702         BUILT_IN_STACK_ALLOC.
2703         * tree-nested.c (convert_local_reference): Likewise.
2704         * tree.h (DECL_VALUE_EXPR): New.
2705
2706 2004-08-10  Richard Henderson  <rth@redhat.com>
2707
2708         * stor-layout.c (round_up): Check for 0/1 before dividing.
2709         (round_down): Likewise.
2710
2711         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
2712
2713 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
2714
2715         * config.gcc (arm*-*-eabi*): New target.
2716         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
2717         (TARGET_LIB_INT_CMP_BIASED): Likewise.
2718         * expmed.c (expand_divmod): Try a two-valued divmod function as a
2719         last resort.
2720         * gthr.h: Remove bogus tokens at end of #pragma.
2721         * optabs.c (expand_twoval_binop_libfunc): New function.
2722         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
2723         (prepare_float_lib_cmp): Try reversing the condition.
2724         (debug_optab_libfuncs): New function.
2725         * optabs.h (expand_twoval_binop_libfunc): Declare.
2726         * config/arm/arm.c (arm_init_libfuncs): New function.
2727         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
2728         (TARGET_INIT_LIBFUNCS): Define it.
2729         * config/arm/arm.h (TARGET_BPABI): New macro.
2730         * config/arm/arm-protos.h
2731         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
2732         * config/arm/bpabi.S: New file.
2733         * config/arm/bpabi.c: Likewise.
2734         * config/arm/bpabi.h: Likewise.
2735         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
2736         (__aeabi_drsub): Likewise.
2737         (__aeabi_dsub): Likewise.
2738         (__aeabi_dadd): Likewise.
2739         (__aeabi_ui2d): Likewise.
2740         (__aeabi_i2d): Likewise.
2741         (__aeabi_f2d): Likewise.
2742         (__aeabi_dmul): Likewise.
2743         (__aeabi_ddiv): Likewise.
2744         (__aeabi_cdrcmple): Likewise.
2745         (__aeabi_cdcmpeq): Likewise.
2746         (__aeabi_cdcmple): Likewise.
2747         (__aeabi_dcmpeq): Likewise.
2748         (__aeabi_dcmplt): Likewise.
2749         (__aeabi_dcmple): Likewise.
2750         (__aeabi_dcmpge): Likewise.
2751         (__aeabi_dcmpgt): Likewise.
2752         (__aeabi_dcmpun): Likewise.
2753         (__aeabi_d2iz): Likewise.
2754         (__aeabi_d2uiz): Likewise.
2755         (__aeabi_d2f): Likewise.
2756         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
2757         (__aeabi_frsub): Likewise.
2758         (__aeabi_fsub): Likewise.
2759         (__aeabi_fadd): Likewise.
2760         (__aeabi_ui2f): Likewise.
2761         (__aeabi_i2f): Likewise.
2762         (__aeabi_fmul): Likewise.
2763         (__aeabi_fdiv): Likewise.
2764         (__aeabi_cfrcmple): Likewise.
2765         (__aeabi_cfcmpeq): Likewise.
2766         (__aeabi_cfcmple): Likewise.
2767         (__aeabi_fcmpeq): Likewise.
2768         (__aeabi_fcmplt): Likewise.
2769         (__aeabi_fcmple): Likewise.
2770         (__aeabi_fcmpge): Likewise.
2771         (__aeabi_fcmpgt): Likewise.
2772         (__aeabi_fcmpun): Likewise.
2773         (__aeabi_f2iz): Likewise.
2774         (__aeabi_f2uiz): Likewise.
2775         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
2776         (__aeabi_uidivmod): New function or alias.
2777         (__aeabi_idivmod): Likewise.
2778         (__aeabi_idiv0): Likewise.
2779         (__aeabi_ldiv0): Likewise.
2780         (__aeabi_llsr): Likewise.
2781         (__aeabi_lasr): Likewise.
2782         (__aeabi_llsl): Likewise.
2783         (bpabi.S): Include it.
2784         * config/arm/libgcc-bpabi.ver: New file.
2785         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
2786         (LINK_SPEC): Remove.
2787         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
2788         __aeabi_ulcmp.
2789         * config/arm/t-bpabi: New file.
2790         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
2791         (TARGET_LIB_INT_CMP_BIASED): Likewise.
2792
2793 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
2794
2795         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
2796         * config/rs6000/rs6000.md (clrmemsi): New pattern.
2797         * config/rs6000/rs6000.c (expand_block_clear): New function.
2798         (expand_block_move): Convert alignment to bits.  Use SImode and
2799         HImode for unaligned addresses if not STRICT_ALIGNMENT.
2800
2801 2004-08-10  Caroline Tice  <ctice@apple.com>
2802
2803         * varasm.c (unlikely_section_label): New global variable.
2804         (unlikely_text_section_name): New global variable.
2805         (text_section):  Remove alignment statement.
2806         (unlikely_text_section): Remove alignment statement; use
2807         unlikely_section_label rather than hard-coded string.
2808         (assemble_start_function): Initialize unlikely_section_label and
2809         unlikely_text_section_name;  make sure cold section is properly
2810         aligned at start of function; output unlikely_section_label if
2811         appropriate.
2812
2813 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
2814
2815         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
2816         * config/s390/s390.c (s390_canonicalize_comparison): New function.
2817         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
2818         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
2819         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
2820         ("*tmqi_mem"): Remove SUBREG from pattern.
2821         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
2822         ("*andsi3_cconly"): Likewise.
2823
2824 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
2825
2826         PR target/16909
2827         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
2828
2829 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
2830
2831         * doc/sourcebuild.texi (compat testing): Document available test
2832         framework commands.  Use the preferred spelling of DejaGnu.
2833
2834 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
2835
2836         * lambda.h: Add matrix type, and prototypes for remainder of
2837         matrix and vector functions.
2838         (lambda_vector_mult_const): New function.
2839         (lambda_vector_negate): Ditto.
2840         (lambda_vector_add): Ditto.
2841         (lambda_vector_add_mc): Ditto.
2842         (lambda_vector_copy): Ditto.
2843         (lambda_vector_zerop): Ditto.
2844         (lambda_vector_equal): Ditto.
2845         (lambda_vector_min_nz): Ditto.
2846         (lambda_vector_first_nz): Ditto.
2847         (lambda_vector_matrix_mult): Ditto.
2848         * lambda-mat.c: New file.
2849         * Makefile.in (lambda-mat.o): New.
2850
2851 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
2852
2853         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
2854         after linking stmt into the program.
2855         (bsi_remove): Don't call modify_stmt.
2856         * tree-complex.c (update_complex_assignment,
2857         expand_complex_comparison): Call modify_stmt after changing the stmt.
2858         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
2859         removing the stmt.
2860         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
2861         the stmt, and only if needed.
2862         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
2863         expression.
2864         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
2865         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
2866         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
2867         (eliminate_redundant_computations): Don't pass an annotation. Call
2868         modify_stmt rather than setting the annotation directly.
2869         (record_equivalences_from_stmt): Remove unused local 'j'.
2870         (cprop_operand): Take a stmt rather than an annotation as a parameter.
2871         Call modify_stmt.
2872         (cprop_into_stmt): Pass stmt rather than annotation.
2873         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
2874         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
2875         modify_stmt.
2876         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
2877
2878 2004-08-10  Jason Merrill  <jason@redhat.com>
2879
2880         PR middle-end/16948
2881         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
2882         the RESULT_DECL.
2883
2884 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
2885
2886         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
2887         hash function.
2888
2889 2004-08-10  Roger Sayle  <roger@eyesopen.com>
2890
2891         * config/mips/mips.md: New reciprocal square root patterns that
2892         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
2893
2894 2004-08-10  Paul Brook  <paul@codesourcery.com>
2895
2896         * config/arm/arm-protos.h (arm_set_return_address,
2897         thumb_set_return_address): Add prototypes.
2898         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
2899         * config/arm/arm.c (arm_compute_func_type,
2900         use_return_insn, arm_compute_save_reg0_reg12_mask,
2901         arm_compute_save_reg_mask, arm_output_function_prologue,
2902         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
2903         current_function_calls_eh_return.
2904         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
2905         old eh code.
2906         (arm_set_return_address, thumb_set_return_address): New functions.
2907         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
2908         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
2909         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
2910         (epilogue): Use the stackadj register.
2911         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
2912
2913 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
2914
2915         PR target/3144
2916         * expr.c (move_by_pieces_ninsns): Add max_size argument.
2917         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
2918         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
2919         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
2920         but using MOVE_RATIO.
2921         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
2922         (can_store_by_pieces): Change max_size type to unsigned int.
2923         (store_by_pieces_1): Likewise.  Pass max_size to
2924         move_by_pieces_ninsns.
2925         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
2926         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
2927         to move_by_pieces_ninsns.
2928         (STORE_BY_PIECES_P): Define.
2929         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
2930         to move_by_pieces_ninsns.
2931         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
2932
2933         * config/i386/i386.h (CLEAR_RATIO): Define.
2934
2935 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
2936
2937         * expr.c (expand_expr_real_1): Add back code that was not dead.
2938
2939 2004-08-09  Andrew Pinski  <apinski@apple.com>
2940
2941         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
2942         which is found to be compatible before returning the aliasing set.
2943
2944 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
2945
2946         * ggc-zone.c (struct alloc_zone): Add statistics counters.
2947         (always_collect): New flag.
2948         (ggc_alloc_zone_1): Update statistics support.  Don't include
2949         overhead in allocated counter.
2950         (sweep_pages): Update allocated counter for large pages.  Don'y
2951         include overhead.
2952         (ggc_collect_1): Always collect.
2953         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
2954         whether to collect.
2955         (SCALE, LABEL): New macros.
2956         (ggc_print_statistics): Add statistics support.
2957
2958 2004-08-09  Roger Sayle  <roger@eyesopen.com>
2959
2960         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
2961         (init_expmed): Fix potential overrun problem with "all.reg".
2962         (expand_sdiv2_pow2): Add an alternate implementation for signed
2963         division, if the target provides a suitable conditional move insn.
2964
2965 2004-08-09  Paul Brook  <paul@codesourcery.com>
2966         Richard Henderson  <rth@redhat.com>
2967
2968         * unwind-dw2.c (uw_install_context_1): Update target saved stack
2969         pointer.
2970
2971 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
2972
2973         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
2974         Check DATA limit only if there's no AS limit.  Ignore insanely
2975         low DATA limits.
2976         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
2977         but take care that the AS limit isn't overrun.
2978         * doc/invoke.texi: Update documentation of min-heapsize parameter.
2979
2980 2004-08-09  Jeff Law  <law@redhat.com>
2981
2982         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
2983         (tree-ssa-threadupdate.o): Add dependencies.
2984         * tree-ssa-threadupdate.c: New file.
2985         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
2986         (rewrite_vars_out_of_ssa): Remove prototype.
2987         (cleanup_tree_cfg): Returns a bool.
2988         * tree.h (thread_through_all_blocks): Prototype.
2989         * tree-outof-ssa.c  (SSANORM_*): Move into here.
2990         (remove_ssa_form): Now static.
2991         (rewrite_vars_out_of_ssa): Kill.
2992         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
2993         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
2994         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
2995         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
2996         anything was changed.
2997         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
2998         from the PHI's annotation rather than the edge associated with
2999         the new argument.
3000         * tree-ssa-dom.c (redirection_edges): Kill.
3001         (redirect_edges_and_update_ssa_graph): Kill.
3002         (tree_ssa_dominator_optimize): Do not reset forwardable flag
3003         for blocks anymore.  Do not initialize redirection_edges.
3004         Call thread_through_all_blocks.  Simplify code for cleanup
3005         of the CFG and iterating.  No longer call cleanup_tree_cfg
3006         outside the iteration loop.
3007         (thread_across_edge): No longer mess with forwardable blocks.
3008
3009 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
3010
3011         * explow.c (memory_address): Use memory_address_p.
3012         * recog.c (general_operand): Likewise.
3013         * regrename.c: No need to define REG_OK_STRICT.
3014
3015 2004-08-09  Steven Bosscher  <stevenb@suse.de>
3016
3017         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
3018         New timers.
3019         * gcse.c: Include timevar.h.
3020         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
3021         and global_copy_prop_count.
3022         (local_const_prop_count, local_copy_prop_count): New static globals.
3023         (gcse_main): Set the right timevar for each pass.
3024         (cprop_jump): Increment global_const_prop_count when a constant is
3025         propagated.  Add "GLOBAL" to dump output.
3026         (cprop_insn): Increment global_const_prop_count when a constant is
3027         propagated, or global_copy_prop_count when a copy is propagated.
3028         (do_local_cprop): Likewise for local_const_prop_count and
3029         local_copy_prop_count.
3030         (one_cprop_pass): Initialize const/cprop counters to zero.
3031         Print out results of local and global const/cprop separately.
3032         (bypass_block): Break over-length line.
3033         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
3034         for bb-reorder.o and tracer.o.
3035
3036 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
3037
3038         * Makefile.in (GTFILES): Remove stmt.c
3039         (stmt.o): Do not depend on gt-stmt.h.
3040         * emit-rtl.c (emit_line_note): Do not call
3041         set_file_and_line_for_stmt.
3042         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
3043         do everything.
3044         * function.c (free_after_parsing): Do not free STMT field.
3045         (allocate_struct_function): Do not call init_stmt_for_function.
3046         (assign_stack_temp_for_type): Do not accept values of keep
3047         other than 0 or 1.
3048         (init_temp_slots): Do not initialize removed variables.
3049         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
3050         and X_VAR_TEMP_SLOT_LEVEL fields.
3051         * rtl.h (set_file_and_line_for_stmt): Remove.
3052         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
3053         struct stmt_status, cond_stack, case_stack, nesting_stack,
3054         nesting_depth, emit_locus, set_file_and_line_for_stmt,
3055         same_case_target_p, init_stmt_for_function, emit_nop,
3056         expand_start_cond, expand_start_elseif, expand_start_else,
3057         expand_elseif, expand_end_cond): Remove.
3058         (preserve_subexpressions_p): Remove references to CFUN->STMT.
3059         (expand_start_case, expand_end_case_type): Remove, merge into...
3060         (expand_case): ... this one, including other bits from
3061         expand_expr_real_1.  Inline same_case_target_p.  Turn members
3062         of CASE_STACK into local variables.
3063         (emit_case_bit_tests): Inline same_case_target_p.
3064         (add_case_node): Add HEAD argument, return new head of the list,
3065         do not handle default label here.
3066         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
3067         expand_start_elseif, current_nesting_level, expand_start_case,
3068         expand_end_case_type, expand_end_case, add_case_node,
3069         init_stmt_for_function, expand_elseif): Remove prototypes.
3070         (expand_case): Add prototype.
3071
3072 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
3073
3074         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
3075
3076 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
3077
3078         * expr.c (var_rtx): Remove.
3079         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
3080         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
3081         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
3082         Abort.
3083         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
3084         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
3085         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
3086
3087 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
3088         Ayal Zaks <zaks@il.ibm.com>
3089
3090         * common.opt (freschedule-modulo-scheduled-loops): New flag.
3091         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
3092         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
3093         when -freschedule-modulo-scheduled-loops flag is not specified.
3094         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
3095         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
3096         More accurate placing of insn in row of partial schedule.
3097         (ps_insn_find_column): New function.
3098         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
3099         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
3100         (schedule_region): Use sched_is_disabled_for_current_region_p.
3101         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
3102
3103 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
3104
3105         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
3106         change.
3107
3108 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
3109
3110         * config/i386/i386.c (ix86_expand_clrmem): Properly call
3111         gen_strset for 64bit target.
3112
3113 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
3114
3115         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
3116
3117 2004-08-07  Jason Merrill  <jason@redhat.com>
3118
3119         Make return in memory explicit.
3120         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
3121         (assign_parm_find_data_types): Remove code for old front end
3122         invisible reference handling.
3123         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
3124         (expand_function_end): Likewise.
3125         * gimplify.c (gimplify_return_expr): Handle a dereferenced
3126         RESULT_DECL.
3127         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
3128         (declare_return_variable): Handle DECL_BY_REFERENCE.
3129         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
3130         (cp_genericize_r): Use convert_from_reference.
3131         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
3132         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
3133
3134         * c-common.c (c_warn_unused_result): Check TREE_USED before
3135         warning about a CALL_EXPR with an unused value.
3136
3137 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
3138
3139         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
3140         to the compiler.  Use -fshort-wchar by default.
3141
3142 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
3143
3144         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
3145         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
3146         threshhold.
3147         * doc/invoke.texi (param): Document min-crossjump-insns.
3148
3149 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
3150
3151         PR c/13282
3152         * c.opt (Wmissing-field-initializers): New option.
3153         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
3154         * c-typeck.c (pop_init_level): Guard the missing field warning with
3155         warn_missing_field_initializers rather than extra_warnings.
3156         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
3157         some of the explanation from...
3158         (-Wextra): ...here.  Say that the missing field warning can be
3159         seperately controlled by -Wmissing-field-initializers.
3160
3161 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
3162
3163         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
3164         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
3165         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
3166         * tree.def (ENTRY_VALUE_EXPR): Remove.
3167
3168 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
3169
3170         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
3171         the places where it is actually needed.  Don't use repz; stosb
3172         for -Os with sufficiently small constant sizes.
3173         For sufficiently small repz; stos{l,q} repeat counts use a sequence
3174         of stos{l,q} instructions instead.
3175
3176 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3177
3178         PR tree-optimization/16807
3179         * loop-iv.c (dump_iv_info): Dump invariants correctly.
3180         (iv_subreg, iv_extend): Express value of invariant purely in
3181         base field.
3182
3183 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
3184
3185         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
3186         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
3187
3188 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
3189
3190         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
3191         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
3192         pre_dec_operand.
3193         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
3194         pattern until reload is finished to allow better code generation
3195         and split them completely into separate instrunctions.
3196         (*andsi3_split): New pattern.
3197
3198 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
3199
3200         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
3201         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
3202         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3203         * tree.h (handle_dll_attribute): Declare.  Test
3204         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3205         * c-common.h (c_determine_visibility): Declare.
3206         * c-common.c (c_determine_visibility): New function.
3207         * c-decl.c (finish_decl): Use it.
3208         (finish_function): Likewise.
3209         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
3210         zero, by default.  Use #if, not #ifdef, to test it.
3211         * config/arm/arm.c (arm_attribute_table): Use
3212         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
3213         #if.
3214         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
3215         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3216         to 1.
3217         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
3218         * config/i386/i386.c (ix86_attribute_table): Use
3219         handle_dll_attribute for dllimport/dllexport.  Test
3220         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3221         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
3222         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3223         it to 1.
3224         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
3225         with #if.
3226         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3227         it to 1.
3228         * doc/extend.texi (dllexport): Clarify and correct documentation.
3229         (dllimport): Likewise.
3230         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
3231         handle_dll_attribute.
3232
3233 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3234
3235         * tree-ssa-loop-manip.c: New file.
3236         * Makefile.in (tree-ssa-loop-manip.o): Add.
3237         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
3238         Declare.
3239         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
3240         form.
3241         (tree_ssa_loop_done): Verify loop closed ssa form.
3242         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
3243
3244 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3245
3246         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
3247         pa_asm_output_aligned_local): New functions.
3248         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
3249         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
3250         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
3251         pa_asm_output_aligned_common.
3252         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3253         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
3254         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
3255         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3256         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
3257         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
3258         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3259         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
3260         common data.
3261
3262 2004-08-05  Andrew Pinski  <apinski@apple.com>
3263
3264         * objc/objc-act.c (build_objc_string_object): Mark the address
3265         expression as constant.
3266
3267 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
3268
3269         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
3270         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
3271         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
3272
3273 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
3274
3275         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
3276         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
3277         out, and associated obsolete comments.
3278
3279 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
3280
3281         * tree.h (force_fit_type): Return a tree, take three flags.
3282         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
3283         TREE_CONSTANT_OVERFLOW here.
3284         (int_const_binop, const_binop): Adjust.
3285         (size_int_type): Do sign extension here.
3286         (fold_convert_const, optimize_bit_field_compare,
3287         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
3288         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
3289         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
3290
3291 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3292
3293         PR tree-optimization/16864
3294         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
3295         for ssa names without default_def.
3296
3297 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
3298
3299         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
3300         frame pointer, restore eax with an ebp-relative address.
3301
3302 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
3303
3304         PR 14516
3305         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
3306         * c-common.h (make_rtl_for_local_static): Delete.
3307         * c-decl.c (shadow_tag_warned): Clean up comment.
3308         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
3309         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
3310         * c-semantics.c (make_rtl_for_local_static): Delete.
3311         * expr.c (init_block_move_fn): Use set_user_assembler_name.
3312         (init_block_clear_fn): Likewise.
3313         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
3314         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
3315         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
3316         * tree.h (make_decl_rtl): Remove second parameter.
3317         (set_user_assembler_name): New.
3318         * varasm.c (set_user_assembler_name): New.
3319         (make_decl_rtl): Remove second parameter.  Update callers in many
3320         files.
3321
3322 2004-08-05  Adam Nemet  <anemet@lnxw.com>
3323
3324         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
3325         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
3326         to LynxOS 4.0.
3327         * gthr-lynx.h: New file.
3328         * config/lynx-ng.h: Remove file.
3329         * config/lynx.h: Update to LynxOS 4.0.
3330         * config/t-lynx: New file.
3331         * config/i386/lynx-ng.h: Remove file.
3332         * config/i386/lynx.h: Update to LynxOS 4.0.
3333         * config/rs6000/lynxbase.h: Remove file.
3334         * config/rs6000/lynx.h: Update to LynxOS 4.0.
3335         * config/rs6000/t-lynx: New file.
3336         * doc/install.texi (Options specification): Remove reference to
3337         LynxOS from systems where --with-gnu-as makes a difference.
3338
3339 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
3340
3341         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
3342         __UINTMAX_TYPE__.
3343         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
3344         __INTMAX_MAX__.
3345         (c_cpp_builtins): Call it.
3346         * doc/cpp.texi: Update.
3347
3348 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
3349
3350         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
3351         cost.
3352
3353 2004-08-04  Jan Hubicka  <jh@suse.cz>
3354
3355         * basic-block.h (profile_staus): New global variable.
3356         * cfg.c (profile_status): Declare.
3357         (check_bb_profile): Break out from ....; use profile_status
3358         (dump_flow_info): ... here.
3359         * cfgbuild.c (find_basic_blocks): Set profile_status.
3360         * cfgexpand.c (tree_expand_cfg): Likewise.
3361         * predict.c (estimate_probability): Likewise.
3362         * profile.c (branch_prob): Likewise.
3363         * tree-cfg.c (build_tree_cfg): Likewise.
3364         (dump_function_to_file): Use check_bb_profile.
3365         * tree-pretty-print (dump_bb_header): Likewise.
3366         * tree-profile.c (do_tree_profiling): Cleanup.
3367
3368 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
3369
3370         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
3371         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
3372         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
3373         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
3374         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
3375         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
3376         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
3377         (ggc-none.o, errors.o): Move rule to generators section;
3378         correct dependencies.
3379         (min-insn-modes.o): Move rule to generators section; remove
3380         unnecessary explicit command; correct dependencies.
3381         (print-rtl.o, print-rtl1.o): Correct dependencies.
3382         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
3383         (mostlyclean): Update.
3384
3385         * errors.c: Include bconfig.h not config.h.  Correct comment.
3386         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
3387         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
3388         * print-rtl.c: Don't include tm_p.h.
3389
3390         * rtl.h: Move forward-decl of struct function down where it's
3391         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
3392         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
3393
3394 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3395             Jeff Law  <law@redhat.com>
3396
3397         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
3398         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
3399         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
3400         manipulate the duplicated ssa names.
3401         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
3402         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
3403         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
3404         New functions.
3405         (release_ssa_name): Do not release ssa names that may have multiple
3406         definitions.
3407         * tree.h (release_ssa_name_force, mark_for_rewrite,
3408         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
3409         marked_ssa_names): Declare.
3410         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
3411         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
3412         Update call to rewrite_ssa_into_ssa.
3413
3414 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
3415
3416         * defaults.h (TARGET_DECLSPEC): New macro.
3417         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
3418         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
3419         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
3420         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
3421         __declspec support.
3422         (TARGET_DECLSPEC): Define.
3423         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
3424         __declspec support.
3425         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
3426         __declspec support.
3427         (TARGET_DECLSPEC): Define.
3428         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
3429         __declspec support.
3430         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
3431         support.
3432         * doc/tm.texi (TARGET_DECLSPEC): Document.
3433
3434         * doc/extend.texi: Fix typo in comment.
3435
3436 2004-08-04  Paul Brook  <paul@codesourcery.com>
3437
3438         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
3439         (TARGET_CXX): Use it.
3440         * target.h (struct gcc_target): Add cdtor_returns_this.
3441         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
3442         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
3443         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
3444
3445 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
3446
3447         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
3448         low/high pair. Do range checking directly.
3449         (interpret_integer): Adjust.
3450
3451 2004-08-04  Nick Clifton  <nickc@redhat.com>
3452
3453         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
3454         GCC ABI.
3455         * doc/invoke.texi: Document this new switch and also the -mrenesas
3456         switch.
3457
3458 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
3459
3460         * cfglayout.c (insn_locators_initialize): Update the current
3461         location before initializing a location.
3462
3463 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
3464
3465         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
3466         (dbxout_function_end): Return after emitting the "Lscope" symbol
3467         under the same conditions that this function formerly wasn't called.
3468         Add explanatory comments.
3469
3470         PR 14860
3471         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
3472         on the new decl.
3473
3474         PR 13956
3475         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
3476         functions, broken out of dbxout_block.
3477         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
3478         stabs too, if it contains symbols.  Use the begin_label and
3479         the Lscope label (emitted by dbxout_function_end) for the
3480         range of this block.
3481
3482 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
3483
3484         * doc/install.texi: Update autoconf version requirements.
3485
3486 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
3487
3488         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
3489         * recog.c (general_operand, immediate_operand, nonmemory_operand)
3490         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
3491         * regclass.c (record_reg_classes): Likewise.
3492         * reload.c (find_reloads): Likewise.
3493         * reload1.c (reload): Likewise.
3494
3495 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
3496
3497         * gensupport.c (init_md_reader_args_cb): Renamed from
3498         init_md_reader_args.  Add third option, callback function for
3499         parsing program-specific options.  Add diagnosis of incorrect
3500         number of input files.
3501         (init_md_reader): Fold into init_md_reader_args_cb.
3502         (init_md_reader_args): Now a thin wrapper around
3503         init_md_reader_args_cb.
3504         * gensupport.h: Update prototypes.
3505
3506         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
3507         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
3508         * genrecog.c: No need to diagnose lack of an input file;
3509         init_md_reader_args will handle it.
3510         * genconditions.c: Likewise, and use init_md_reader_args.
3511         * genconstants.c: Likewise, and no need to call read_md_rtx.
3512
3513 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
3514
3515         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
3516         declarations.
3517
3518 2004-08-03  Mike Stump  <mrs@apple.com>
3519
3520         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
3521         for frameworks.
3522         * doc/invoke.texi (Darwin Options): Update to reflect above.
3523
3524 2004-08-03  Roger Sayle  <roger@eyesopen.com>
3525
3526         PR middle-end/16790
3527         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
3528         truncations, not just global truncations.
3529
3530 2004-08-03  Andrew Pinski  <apinski@apple.com>
3531
3532         PR bootstrap/16865
3533         * loop-iv.c (simplify_using_assignment): Initialize lhs.
3534
3535 2004-08-03  Paul Brook  <paul@codesourcery.com>
3536
3537         * gcc/doc/install.texi: Document MPFR requirement.
3538
3539 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
3540
3541         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3542         and mmap() explicitly instead of relying on preset autoconf cache
3543         variables.
3544         * configure: Regenerate.
3545
3546 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
3547
3548         PR target/16570
3549         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
3550         to tmake_file.
3551         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
3552         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
3553         to tmake_file.
3554
3555         * config/i386/t-gmm_malloc: New file.
3556         * config/i386/t-pmm_malloc: Likewise.
3557
3558         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
3559
3560 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
3561             Tanguy Fautrà <tfautre@pandora.be>
3562
3563         * config/i386/pmm_malloc.h: New file.
3564
3565 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
3566
3567         * config/i386/gmm_malloc.h: New file.
3568
3569 2004-08-03  Dale Johannesen  <dalej@apple.com>
3570
3571         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
3572         * c-common.c: Include opts.h.
3573         (c_common_get_alias_set): Fix check for a single input file.
3574         * toplev.c: Remove current_file_decl.
3575         * tree.h: Ditto.
3576
3577 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
3578
3579         * config.gcc (arm*-*-symbianelf*): New target.
3580         * config/arm/symbian.h: New file.
3581
3582         * gthr-gnat.c: Add visibility #pragmas.
3583         * gthr-gnat.h : Likewise.
3584         * gthr.h: Likewise.
3585         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
3586         (__ffsDI2): Likewise.
3587         (__clzSI2): Likewise.
3588         (__ctzSI2): Likewise.
3589         (__ctzDI2): Likewise.
3590         (__popcountSI2): Likewise.
3591         (__popcountDI2): Likewise.
3592         (__paritySI2): Likewise.
3593         (__parityDI2): Likewise.
3594         * libgcc2.h: Add visibility #pragmas.
3595         (__clzDI2): Add prototype.
3596         (__clzSI2): Likewise.
3597         (__ctzSI2): Likewise.
3598         (__ffsDI2): Likewise.
3599         (__ffsSI2): Likewise.
3600         (__ctzDI2): Likewise.
3601         (__popcountSI2): Likewise.
3602         (__popcountDI2): Likewise.
3603         (__paritySI2): Likewise.
3604         (__parityDI2): Likewise.
3605         * unwind-dw2-fde.h: Add visibility #pragmas.
3606         * unwind.h: Likewise.
3607
3608 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
3609             Dale Johannesen  <dalej@apple.com>
3610             Roger Sayle  <roger@eyesopen.com>
3611
3612         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
3613         constants more accurately.  Adjust costs for FMA instructions.
3614         Add cases for most logical and float operations.  Recurse into
3615         most operands.
3616
3617 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
3618
3619         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
3620
3621 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
3622
3623         * ra-build.c (conflicts_between_webs): For webs that cross a call add
3624         conflicts to regs_invalidated_by_call.
3625
3626 2004-08-03  Paul Brook  <paul@codesourcery.com>
3627
3628         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
3629
3630 2004-08-03  Jan Hubicka  <jh@suse.cz>
3631
3632         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
3633         ARRAY_REF argument.
3634
3635 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
3636
3637         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
3638         arm968es, arm10e, arm1020e, arm1022e.
3639         * invoke.texi: Update list of ARM cores.
3640         * arm-tune.md: Regenerate.
3641
3642 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
3643
3644         * arm/gentune.sh: New file.
3645         * arm/t-arm: New file.
3646         * arm/arm-tune.md: New file (autogenerated).
3647         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
3648         * arm.md (attribute tune): Delete.  Include arm-tune.md.
3649
3650 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
3651
3652         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
3653         penultimate parameter.  All callers adjusted.
3654         (struct prefix_list): Remove used_flag_ptr.
3655         (find_a_file): Do not set *pl->used_flag_ptr.
3656         (warn_B, warn_std_ptr): Remove.
3657
3658 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
3659             Mostafa Hagog <mustafa@il.ibm.com>
3660
3661         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
3662
3663 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
3664
3665         * dwarf2out.c (output_call_frame_info): Don't change data format
3666         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
3667         label.  Use 'true' not '1'.
3668         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
3669         required.
3670
3671 2004-08-02  Gabriel Dos Reis  <gdr@cs.tamu.edu>
3672
3673         * gdbinit.in: Reflect previous changes to rtunion_def.
3674
3675 2004-08-02  Roger Sayle  <roger@eyesopen.com>
3676
3677         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
3678         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
3679
3680 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3681
3682         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
3683         vec_p_reserve.
3684         * langhooks.h (lang_hooks::builtin_function): Rename parameter
3685         from "class" to "bt_class".
3686
3687 2004-08-02  Paul Brook  <paul@codesourcery.com>
3688
3689         PR rtl-optimization/15068
3690         * flow.c (init_propagate_block_info): Check condition is reversible.
3691
3692 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3693
3694         * gengtype.h (options::info): Change type to const char *.
3695         (enum gc_used_enum): Move out of struct type scope.
3696         * gengtype.c (create_option): Convert initializer for option::info to
3697         appropiate type.
3698         (adjust_field_type, walk_type, write_func_for_structure,
3699         write_root, write_roots): Remove pointless cast.
3700
3701 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
3702
3703         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
3704
3705 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3706
3707         * rtl.h (union rtunion_def): Have all members  start with the
3708         prefix "rt_".
3709         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
3710         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
3711         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
3712         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
3713         access.
3714         * gengtype.c (adjust_field_rtx_def): Likewise.
3715         * rtlanal.c (loc_mentioned_in_p): Likewise.
3716
3717 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
3718
3719         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
3720         Replace uses of mips/elf64.h with mips/elf.h
3721         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
3722         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
3723         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
3724         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
3725         (HANDLE_SYSV_PRAGMA): Delete.
3726         (ASM_OUTPUT_DEF): Fix formatting.
3727         * config/mips/elf64.h: Delete.
3728
3729 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
3730
3731         * config/ia64/ia64.c (got_symbolic_operand): Do require a
3732         symbol+offset operand to have its offset be zero mod 0x3fff
3733         when GOT entries are in use.  Clarify logic in SYMBOL_REF
3734         case.  Clarify comments.
3735         (ia64_expand_load_address): Split a symbol+offset load when
3736         the offset is nonzero mod 0x3fff, not 0x1fff.
3737
3738 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
3739
3740         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
3741         if trying to *store* to a non-offsettable address.
3742         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
3743         a nonoffsettable address.
3744         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
3745         Clean up.
3746         (movti_string): Don't move GPRs to a nonoffsettable address.
3747         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
3748
3749 2004-08-02  Ben Elliston  <bje@au.ibm.com>
3750
3751         PR target/16155
3752         * config/rs6000/altivec.h: Replace typeof with __typeof__.
3753
3754 2004-08-01  Richard Henderson  <rth@redhat.com>
3755
3756         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
3757         variable sized types.
3758
3759 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
3760
3761         * doc/invoke.texi: In the MIPS options section, remove the passage
3762         saying that -mexplicit-relocs is usually disabled for -mabicalls
3763         -fno-unit-at-a-time.
3764         * config/mips/mips.c (override_options): Remove the code that enforced
3765         this rule.
3766
3767 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
3768
3769         * config/mips/mips.md (cprestore): Provide two alternatives, one for
3770         an in-range offset and one for an out-of-range offset.  Wrap the latter
3771         in .set macro/.set nomacro if it's inside a .set nomacro block.
3772
3773 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
3774
3775         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
3776         (mips_restore_gp): Declare.
3777         * config/mips/mips.c (mips_add_offset): Add a scratch register
3778         argument.  Reimplement in rtl only, reusing MIPS16 logic from
3779         mips_output_mi_thunk.
3780         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
3781         to mips_add_offset.
3782         (mips_gp_save_slot): Delete.
3783         (mips_restore_gp): New function.
3784         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
3785         * config/mips/mips.md (exception_receiver): Turn into a
3786         define_insn_and_split.  Use mips_restore_gp to do the split.
3787         (call_internal, call_value_internal, call_value_multiple_internal): Use
3788         mips_restore_gp to restore $gp.
3789
3790 2004-07-31  Andrew Pinski  <apinski@apple.com>
3791
3792         PR other/16842
3793         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
3794
3795 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
3796
3797         * c-decl.c (diagnose_mismatched_decls): Give error for external
3798         redeclaration of identifier declared with no linkage, not just
3799         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
3800         error for redeclaration with no linkage.
3801
3802 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
3803             Fariborz Jahanian <fjahanian@apple.com>
3804
3805         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
3806         non-offsettable addresses even for DImode.
3807         (rs6000_split_multireg_move): Cope with non-offsettable addresses
3808         being moved into multiple GPRs.
3809
3810         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
3811         to 64.
3812         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
3813         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
3814         to 128.
3815         * config/rs6000/darwin-ldouble.c (isless): New macro.
3816         (inf): New macro.
3817         (nonfinite): New macro.
3818         (FPKINF): Delete.
3819         (_xlqadd): Completely rewrite.
3820         (_xlqmul): Correct overflow handling.
3821         (_xlqdiv): Correct overflow handling.
3822         * config/rs6000/darwin-ldouble-format: New file.
3823
3824 2004-07-30  Roger Sayle  <roger@eyesopen.com>
3825             Richard Henderson  <rth@redhat.com>
3826
3827         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
3828         9 into the equivalent lea instruction.
3829
3830 2004-07-30  Richard Henderson  <rth@redhat.com>
3831
3832         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
3833         with DECL_INITIAL if fb_lvalue.
3834         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
3835         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
3836         with <Cxxx>.
3837         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
3838
3839 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
3840
3841         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
3842         pointer escapes through a function call, assume that the
3843         callee will dereference it.
3844         (add_pointed_to_var): Assume that VALUE is always an
3845         ADDR_EXPR.
3846         (collect_points_to_info_r): Only call add_pointed_to_var if
3847         the value is an ADDR_EXPR.
3848
3849 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
3850
3851         * tree-ssa-alias.c (create_alias_map_for): Do not get the
3852         alias set of the inner type of ARRAY_TYPEs.
3853
3854 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
3855
3856         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
3857         setting a non-register to UNDEFINED right before the call to
3858         set_lattice_value.
3859
3860 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3861
3862         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
3863
3864 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
3865
3866         * tree-ssa.c (verify_flow_sensitive_alias_info): When
3867         comparing points-to sets of different pointers, make sure the
3868         second pointer is actually referenced in the code.
3869
3870 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
3871
3872         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
3873         (got_symbolic_operand): Remove unreachable code.
3874         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
3875         setjmp_operand; add entry for tls_symbolic_operand.
3876         * config/ia64/ia64-protos.h: Remove all prototypes of
3877         predicate functions.
3878
3879 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
3880
3881         * c-common.h (lang_post_pch_load): New variable.
3882         * c-pch.c (lang_post_pch_load): Define it.
3883         (c_common_read_pch): Use it.
3884         * cgraphunit.c (record_call_1): Give the front end a chance to
3885         record additional needed entities when a variable is marked as
3886         needed.
3887         * tlink.c (recompile_files): Robustify.
3888         (scan_linker_output): If a symbol is assigned to a file,
3889         but after recompilation is not present there, issue an error
3890         message.
3891
3892 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3893
3894         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
3895         Take orig_loop argument and pass it to set_level.
3896         (schedule_sm): Pass the correct orig_loop to force_move_till.
3897
3898 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3899
3900         * cfgloop.c (update_latch_info): Update dominator of the new block.
3901         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
3902         info.
3903         * dominance.c (verify_dominators): Check that the dominance tree is
3904         connected.
3905         (recount_dominator): Ignore unreachable blocks.
3906         (iterate_fix_dominators): Cleanup old dominance information before
3907         recomputing it.
3908
3909 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
3910
3911         * tree-ssa-operands.c (get_expr_operands): Revert changes
3912         to ADDR_EXPR processing introduced by:
3913             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3914             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
3915
3916 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3917
3918         * doc/implement-c.texi: Add C90 subclause references.  Point to
3919         preprocessor documentation instead of duplicating it.  Add points
3920         only present in C90.  Fill in documentation for all points.
3921
3922 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3923
3924         * pa.c (output_movb): Correct typo.
3925
3926 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
3927
3928         * ra.h (single_reg_in_regclass): Declare.
3929         * ra.c (single_reg_in_regclass): Define.
3930         (first_hard_reg): New.
3931         (init_ra): Initialize single_reg_in_regclass.
3932         * ra-colorize.c (ok_class): New.
3933         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
3934
3935 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
3936
3937         * gcov-io.h: Allow zero tag as EOF indicator.
3938         (gcov_is_eof): Remove.
3939         (gcov_truncate): Remove.
3940         * gcov-io.c (gcov_seek): Always SEEK_SET.
3941         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
3942         EOF tag.
3943         * coverage.c (read_counts_file): Don't use gcov_is_eof.
3944         * gcov-dump.c (dump_file): Likewise.
3945         * gcov.c (read_graph_file, read_count_file): Likewise.
3946
3947         * c-decl.c (complete_array_type): Don't gratuitously copy
3948         maxindex.  Check it always has a type.
3949
3950 2004-07-29  Steven Bosscher  <stevenb@suse.de>
3951
3952         * rtl.c (currently_expanding_to_rtl): New.
3953         * rtl.h (currently_expanding_to_rtl): Export it.
3954         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
3955
3956         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
3957         inliner hack.
3958         * config/sh/sh.c: Replace rtx_equal_function_value_matters
3959         with currently_expanding_to_rtl.
3960         * config/sh/sh.md: Likewise.
3961         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
3962
3963 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
3964
3965         Introduce sh2a support.
3966         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
3967         * config.gcc: Build multilibs for sh2a and sh2a-single by
3968         default.
3969         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
3970         default.  Split their tests out of the corresponding SH4
3971         multilibs.
3972         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
3973         multilibs for SH2a.
3974         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
3975         * config.gcc: Handle sh2a multilibs and cpu selection.
3976         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
3977         * config/sh/t-mlib-sh2a: New.
3978         * config/sh/t-mlib-sh2a-nofpu: New.
3979         * config/sh/t-mlib-sh2a-single: New.
3980         * config/sh/t-mlib-sh2a-single-only: New.
3981         2004-07-09  Nick Clifton  <nickc@redhat.com>
3982         Issue 43400
3983         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
3984         -ml and -m2a are used together.
3985         2004-03-23  DJ Delorie  <dj@redhat.com>
3986         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
3987         when we have a double-sized FPU.
3988         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
3989         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
3990         is set.
3991         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
3992         -msh2a-single and -msh2a-single-only
3993         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
3994         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
3995         is set.
3996         2004-02-20  DJ Delorie  <dj@delorie.com>
3997         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
3998         2004-02-20  Fred Fish <fnf@redhat.com>,
3999         Corinna Vinschen <vinschen@redhat.com>
4000         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
4001         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
4002         2004-02-18  DJ Delorie  <dj@redhat.com>
4003         * config/sh/sh.c (broken_move): Add support for movi20.
4004         * config/sh/sh.h: Likewise.
4005         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
4006         * config/sh/sh.md (udivsi3_sh2a): New.
4007         (udivsi3): Call it.
4008         (divsi3_sh2a): New.
4009         (divsi3): Call it.
4010         (mul_r): New.
4011         (ashlsi3_sh2a): New.
4012         (ashrsi3_sh2a): New.
4013         (lshrsi3_sh2a): New.
4014         (movsi_i): Disable for sh2a.
4015         (movsi_ie): Add movi20.
4016         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
4017         sh2a, for -m2a-nofpu mode.
4018         2004-02-13  DJ Delorie  <dj@redhat.com>
4019         * config/sh/lib1funcs.asm: Handle double vs single better.
4020         * config/sh/sh.h: Likewise.
4021         2004-02-09  DJ Delorie  <dj@redhat.com>
4022         * config/sh/crt1.asm: Add support for sh2a.
4023         * config/sh/elf.h: Likewise.
4024         * config/sh/lib1funcs.asm: Likewise.
4025         * config/sh/sh.c: Likewise.
4026         * config/sh/sh.md: Likewise.
4027         * config/sh/sh.h: Likewise.
4028         * config/sh/t-sh: Likewise.
4029
4030 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
4031
4032         * config/frv/frv.md (movqi_internal, movhi_internal,
4033         movsi_internal): Add backup alternatives for memory inputs.
4034
4035 2004-07-28  Matt Austern  <austern@apple.com>
4036
4037         * config/darwin.c (darwin_one_byte_bool): New global variable.
4038         * config/darwin.h (darwin_one_byte_bool): Declare.
4039         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
4040         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
4041         value of darwin_one_byte_bool.
4042         * doc/invoke.texi: Document -mone-byte-bool flag.
4043
4044 2004-07-28  Eric Christopher  <echristo@redhat.com>
4045
4046         * c-common.c (c_common_unsafe_for_reeval): Delete.
4047         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
4048         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
4049         * calls.c (fix_unsafe_tree): Delete.
4050         (expand_call): Delete code which used above.
4051         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
4052         * expr.c (expand_expr_real_1): Ditto.
4053         * fold-const.c (non_lvalue): Ditto.
4054         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
4055         (lhd_unsafe_for_reeval): Ditto.
4056         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
4057         * langhooks.h (unsafe_for_reeval): Ditto.
4058         (unsave_expr_now): Adjust comment.
4059         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
4060         (estimate_num_insns_1): Ditto.
4061         * tree-pretty-print.c (dump_generic_node): Ditto.
4062         * tree.c (expr_align): Ditto.
4063         (unsave_expr): Delete.
4064         (unsafe_for_reeval): Ditto.
4065         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
4066         * tree.def (UNSAVE_EXPR): Delete.
4067         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
4068
4069 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
4070
4071         * tree.h (enum tls_model): Move ...
4072         * coretypes.h: ... here.
4073
4074 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
4075
4076         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
4077
4078 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
4079
4080         * cse.c (validate_canon_reg): New function, split out from...
4081         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
4082
4083 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
4084
4085         * tree-ssa-alias.c (maybe_create_global_var): Don't just
4086         return if .GLOBAL_VAR has been created.
4087
4088 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
4089
4090         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
4091         every variable that may have aliases, not just tags.
4092
4093 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
4094
4095         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
4096         move_from_CR_eq_bit.
4097         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
4098
4099
4100         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
4101         e500_flip_eq_bit.
4102
4103         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
4104         output_e500_flip_eq_bit.
4105
4106         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
4107         output_e500_flip_eq_bit.
4108         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
4109         output_e500_flip_eq_bit.
4110         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
4111         (print_operand): case D.  Get to EQ bit.
4112
4113 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
4114
4115         * gcov.c (function_summary): Add missing \n.
4116
4117 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
4118
4119         Introduce sh4a support.
4120         * config.gcc: Handle sh4a multilibs and cpu selection.
4121         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
4122         * config/sh/t-mlib-sh4a: New.
4123         * config/sh/t-mlib-sh4al: New.
4124         * config/sh/t-mlib-sh4a-nofpu: New.
4125         * config/sh/t-mlib-sh4a-single: New.
4126         * config/sh/t-mlib-sh4a-single-only: New.
4127         2004-02-20  DJ Delorie  <dj@redhat.com>
4128         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
4129         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
4130         2003-08-22  Eric Christopher  <echristo@redhat.com>
4131         * config/sh/sh4a.md: Update for chip errata.
4132         2003-08-07  Eric Christopher  <echristo@redhat.com>
4133         * config/sh/sh4a.md: New file. sh4a processor description.
4134         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
4135         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
4136         of -m4a-nofpu.
4137         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
4138         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
4139         * doc/invoke.texi (SH Options): Document -m4al.
4140         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
4141         * config/sh/sh.c (expand_block_move): Remove commented-out code
4142         checked in by mistake.
4143         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
4144         single elements from SFmode vectors.
4145         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
4146         register.
4147         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
4148         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
4149         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
4150         sh_fsca_int2sf): Remove variable declarations.
4151         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
4152         sh_fsca_int2sf): New functions.
4153         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
4154         sh_fsca_int2sf_rtx): New static variables.
4155         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
4156         sh_fsca_int2sf): Declare.
4157         * config/sh/sh.md: Adjust.
4158         * doc/invoke.texi (SH Options): Document new options.
4159         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
4160         compatibility from SH4 code.
4161         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
4162         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
4163         early.
4164         (memory_movsrc_operand): Renamed to...
4165         (unaligned_load_operand): ... this.  Simplified.
4166         * config/sh/sh.h (PREDICATE_CODES): Adjust.
4167         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
4168         input operand to SImode, and adjust the others.  Introduce
4169         post-increment by peephole.
4170         * config/sh/sh.c (expand_block_move): Give the target address the
4171         same mode as the temp reg.
4172         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
4173         copying.
4174         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
4175         Introduce support for SH4a.
4176         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
4177         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
4178         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
4179         sh_fsca_int2sf): New.
4180         (sh_init_builtins): Initialize them.
4181         (print_operand): Support `d'.
4182         (expand_block_move): Use movua if src is misaligned.
4183         (memory_movsrc_operand): New.
4184         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
4185         and one of the SH4 macros.
4186         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
4187         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
4188         SELECT_SH4A_SINGLE): New.
4189         (TARGET_NONE): Add SH4A_BIT.
4190         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
4191         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
4192         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
4193         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
4194         (enum processor_type): Added PROCESSOR_SH4A.
4195         (PREDICATE_CODES): Add memory_movsrc_operand.
4196         * config/sh/sh.md: Removed unused variables.
4197         (attr cpu): Add sh4a.
4198         (attr type): Add movua, fsrra and fsca.
4199         (prefetch): New, for SH4.
4200         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
4201         (toggle_sz): Set type to fp.
4202         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
4203         (movua, extv, extzv): New.
4204         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
4205         and 4a-single-only.
4206
4207 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
4208
4209         * tree-optimize.c (init_tree_optimization_passes): Schedule
4210         pass_may_alias right after the program is renamed into SSA.
4211         * tree-pass.h (PROP_alias): Define.
4212         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
4213         * tree-sra.c (pass_sra): Likewise.
4214         * tree-ssa-ccp.c (pass_ccp): Likewise.
4215         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
4216         * tree-ssa-dce.c (pass_dce): Likewise.
4217         * tree-ssa-dom.c (pass_dominator): Likewise.
4218         * tree-ssa-dse.c (pass_dse): Likewise.
4219         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
4220         * tree-ssa-loop-ch.c (pass_ch): Likewise.
4221         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4222         * tree-ssa-pre.c (pass_pre): Likewise.
4223         * tree-tailcall.c (pass_tail_recursion): Likewise.
4224         * tree-ssa.c (pass_redundant_phi): Likewise.
4225         * tree-ssa-alias.c (aliases_computed_p): Remove.
4226         Update all users.
4227         (init_alias_info): Do not mark all type tags for renaming
4228         unconditionally.
4229         Clear may_aliases from every symbol.
4230         (setup_pointers_and_addressables): If a pointer has not been
4231         dereferenced and it had a type tag, clear it and mark the old
4232         tag for renaming.
4233
4234 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
4235
4236         PR tree-optimization/16705
4237         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
4238         .GLOBAL_VAR.
4239
4240 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4241
4242         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
4243         check.
4244
4245         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
4246         don't make another one.
4247
4248         PR optimization/15077
4249         * function.h (struct function): Add field saved_static_chain_decl.
4250         Fix comment for static_chain_decl.
4251         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
4252         * tree-inline.h (save_body): Add new arg.
4253         * tree-optimize.c (tree_rest_of_compilation): Handle saving
4254         static_chain_decl.
4255
4256 2004-07-27  Richard Henderson  <rth@redhat.com>
4257
4258         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
4259         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
4260         is_gimple_addressable.
4261         * tree-gimple.c (is_gimple_addressable): Rename from
4262         is_gimple_addr_expr_arg; accept INDIRECT_REF.
4263         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
4264         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
4265         rename to is_gimple_addressable.
4266
4267 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
4268
4269         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
4270
4271 2004-07-27  Richard Henderson  <rth@redhat.com>
4272
4273         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
4274         before rounding.
4275
4276 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
4277
4278         * libgcc2.c: Change all conditionals testing
4279         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
4280         * libgcc2.h: Likewise.
4281         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
4282         TYPE_PRECISION of float80_type to 80.
4283         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
4284         of fpreg_type and float80_type to 80.
4285         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
4286         * config/m68k/netbsd-elf.h:
4287         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
4288         to evaluate to 80 whenever they would formerly have evaluated to 96.
4289         * config/i386/sco5.h: Remove unnecessary redefinition of
4290         LONG_DOUBLE_TYPE_SIZE.
4291         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
4292         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
4293         XFmode, with a bitsize of 80.  Update commentary.
4294         * config/ia64/ia64-modes.def: Likewise.
4295         * config/m68k/m68k-modes.def: Likewise.
4296
4297 2004-07-27  Steven Bosscher  <stevenb@suse.de>
4298
4299         * cfgexpand.c (tree_expand_cfg): Fix comment.
4300
4301         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
4302         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
4303         Remove.
4304         (prepare_function_start): Don't set rtx_equal_function_value_matters.
4305         * integrate.c (copy_rtx_and_substitute): Don't test for it.
4306         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
4307         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
4308         here again.  Update leading comment.
4309         * rtl.c (rtx_equal_function_value_matters): Remove.
4310         (rtx_equal_p): Don't test for it.
4311         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
4312         Likewise.
4313
4314         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
4315         * rtl.c (note_insn_name): Likewise.
4316         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
4317         * final.c (final_scan_insn): Likewise.
4318
4319         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
4320         * passes.c (rest_of_handle_eh): Do it here.
4321
4322         * stmt.c (struct nesting): Remove struct nesting block member.
4323         (struct stmt_status): Remove x_block_start_count field.
4324         (current_block_start_count): Remove.
4325
4326 2004-07-27  Brian Booth  <bbooth@redhat.com>
4327
4328         * tree-optimize.c (register_one_dump_file): Update condition that uses
4329         static_pass_number.
4330         (dup_pass_1): Replace with...
4331         (next_pass_1): This.
4332         (NEXT_PASS): Call next_pass_1.
4333         (DUP_PASS): Remove.
4334         (init_tree_optimization_passes): Remove uses of DUP_PASS.
4335         (execute_one_pass): Update condition that uses
4336         static_pass_number.
4337         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
4338         integer.
4339
4340 2004-07-27  Nick Clifton  <nickc@redhat.com>
4341
4342         * config/m32r/m32r.c: Include integrate.h in order to get the
4343         prototype for get_hard_reg_initial_val().
4344
4345         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
4346         and tidy up indentation.
4347         (final_presence_set): Use absence_set instead, so that if there is
4348         nothing in the "o" pipe the "s" pipe can be scheduled.
4349
4350 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
4351
4352         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
4353         don't have PT_VARS nor PT_MALLOC set.
4354         Clear name tag from pointers that have not been dereferenced.
4355         (set_pt_anything, set_pt_malloc): Forward declare.
4356         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
4357         not type compatibility when determining if a pointer can be
4358         copy propagated.
4359
4360 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
4361
4362         * expr.h (canonicalize_condition, get_condition): Add an int argument.
4363         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
4364         it to check whether the condition is still valid at the jump insn.
4365         * ifcvt.c (noce_get_condition): Likewise.
4366         (noce_get_alt_condition): Update call to canonicalize_condition.
4367         * loop-iv.c (simplify_using_initial_values): Update call to
4368         get_condition.  Remove FIXME.
4369         (check_simple_exit): Update call to get_condition.
4370         * loop-unswitch.c (may_unswitch_on): Likewise.
4371         * loop.c (check_dbra_loop): Likewise.
4372         (canonicalize_condition, get_condition): Add an argument to say whether
4373         the condition must still be valid at INSN.
4374         (get_condition_for_loop): Update call to get_condition.  Require that
4375         the condition be valid at INSN.
4376         * predict.c (estimate_probability): Update call to get_condition.
4377         Remove unused earliest parameter.
4378         (expected_value_to_br_prob): Update call to canonicalize_condition.
4379
4380 2004-07-26  Eric Christopher  <echristo@redhat.com>
4381
4382         * tree-dfa.c (add_referenced_var): Register initializers of global
4383         variables.
4384
4385 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
4386
4387         * config/i386/i386.c (function_arg): Always treat 8-
4388         and 16-byte wide vectors the same, even if MMX/SSE
4389         are disabled.
4390         (contains_128bit_aligned_vector_p): Add comment.
4391
4392 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
4393
4394         * ra.h (enum node_type): Rename to:
4395         (enum ra_node_type).
4396         * ra-colorize.c: Likewise.
4397
4398 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
4399
4400         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
4401         after simplifying the jump.
4402
4403 2004-06-26  Richard Henderson  <rth@redhat.com>
4404
4405         * calls.c (combine_pending_stack_adjustment_and_call): Make
4406         preferred_unit_stack_boundary argument unsigned.  Make
4407         unadjusted_alignment unsigned.
4408         (expand_call): Make preferred_stack_boundary and
4409         preferred_unit_stack_boundary variables unsigned.
4410         * function.c (assign_stack_local_1): Make alignment unsigned.
4411         * function.h (struct function): Make stack_alignment_needed,
4412         preferred_stack_boundary unsigned.
4413         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
4414         (ix86_compute_frame_layout): Make stack_alignment_needed,
4415         preferred_alignment variables unsigned.
4416         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
4417
4418 2004-07-26  Tom Tromey  <tromey@redhat.com>
4419
4420         * tree.h: Fix typo in comment.
4421
4422 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
4423
4424         PR bootstrap/12804
4425         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
4426         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
4427         (ggc_free): Remove incorrect freeing.
4428         (sweep_pages): Advance PP for large pages.  Fix indentation.
4429
4430 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
4431
4432         PR rtl-optimization/16643
4433         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
4434         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
4435         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
4436         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
4437         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
4438         * function.c (thread_prologue_and_epilogue_insns): Likewise.
4439         * rtl.h (tracer): Add a flags parameter.
4440         * tracer.c (tracer): Pass it to cfg_layout_initialise.
4441         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
4442         (rest_of_handle_reorder_blocks): Update calls to tracer and
4443         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
4444         (rest_of_handle_tracer): Pass 0 to tracer.
4445         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
4446
4447 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
4448
4449         PR target/16239
4450         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
4451         f->f.
4452
4453 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
4454
4455         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
4456         (BINFO_BASE_ACCESS): Adjust.
4457         (BINFO_BASE_ACCESS_APPEND): New.
4458         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
4459         * dbxout.c (dbxout_type): Adjust binfo access accessing.
4460         * dwarf2out.c (gen_member_die): Likewise.
4461         * tree-dump.c (deque_and_dump): Likewise.
4462
4463 2004-07-26  Falk Hueffner  <falk@debian.org>
4464
4465         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
4466         costs.
4467
4468 2004-07-25  Roger Sayle  <roger@eyesopen.com>
4469
4470         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
4471         value off of the stack if TARGET_USE_FFREEP.
4472
4473 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
4474
4475         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
4476         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
4477         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
4478         check on invocation of XRESIZEVEC ().
4479
4480 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
4481
4482         * c-common.c (disable_builtin_function): Rename variable n to
4483         new_disabled_builtin.
4484         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
4485         Rename local variable old to old_decl.
4486         * gensupport.c (shift_output_template): Rename parameter old to src.
4487         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
4488         old_rtx and newx to new_rtx.
4489
4490 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
4491
4492         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
4493         of c-pragma.h.
4494         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
4495         enum cpp_ttype.
4496         * c-lex.c: Likewise.
4497
4498 2004-07-25  Roger Sayle  <roger@eyesopen.com>
4499
4500         * fold-const.c (constant_boolean_node): Make extern.
4501         (make_range): Wrap long lines.
4502         (fold_cond_expr_with_comparison): Remove unnecessary call to
4503         pedantic_non_lvalue.  Add missing calls to fold_convert.
4504         (fold_truthop): Add missing calls to fold_convert.
4505         (fold): Likewise.
4506         * tree.h (constant_boolean_node): Add prototype here.
4507         * builtins.c (expand_builtin_strncmp): Add missing calls to
4508         fold_convert.
4509         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
4510         Call fold_convert and constant_boolean_node to correct types.
4511         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
4512         missing call to fold_convert to correct types.
4513
4514 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
4515             Brian Ryner  <bryner@brianryner.com>
4516
4517         PR c++/9283
4518         PR c++/15000
4519         * c-common.c (c_common_attribute_table): Allow
4520         handle_visibility_attribute to be called for types.
4521         (handle_visibility_attribute) When given a type, set the visibility
4522         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
4523         so that we can check later whether the attribute was present. Added
4524         warning if attribute applied to non class type.
4525         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
4526         decls and checking that they are consistent.
4527         * common.opt: Added -fvisibility.
4528         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
4529         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
4530         * flags.h, tree.h: Added assorted support defines for overall patch
4531         * opts.c: Added parsing support for -fvisibility.
4532         * tree.c (build_decl): Set visibility for all decls to be whatever
4533         is in force at that time.
4534         * varasm.c (default_binds_local_p_1): Reworked logic determining
4535         when to make a symbol locally bound.
4536         * doc/invoke.texi: Added documentation for -fvisibility and
4537         -fvisibility-inlines-hidden.
4538
4539 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4540
4541         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
4542         * c-common.c: Add missing casts from void * to other types.
4543         * c-decl.c: Likewise.
4544         * c-format.c: Likewise.
4545         * c-lex.c: Likewise.
4546         * c-pragma.c: Likewise.
4547         * c-typeck.c: Likewise.
4548         * defaults.h: Likewise.
4549         * genconstants.c: Likewise.
4550         * gengtype-lex.l: Likewise.
4551         * genmodes.c: Likewise.
4552         * read-rtl.c: Likewise.
4553         * rtl.c: Likewise.
4554
4555 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4556
4557         * bitmap.c: Use type-safe memory allocation macros from libiberty.
4558         * c-common.c: Likewise.
4559         * c-decl.c: Likewise.
4560         * c-lang.c: Likewise.
4561         * c-lex.c: Likewise.
4562         * c-opts.c: Likewise.
4563         * c-parse.in: Likewise.
4564         * c-typeck.c: Likewise.
4565         * genconditions.c: Likewise.
4566         * gengtype-lex.l: Likewise.
4567         * gengtype-yacc.y: Likewise.
4568         * gengtype.c: Likewise.
4569         * genmodes.c: Likewise.
4570         * gensupport.c: Likewise.
4571         * read-rtl.c: Likewise.
4572         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
4573         htab_find_slot().
4574
4575 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4576
4577         * c-decl.c (groktypename, groktypename_in_param_context): Rename
4578         variable typename to type_name.
4579         * c-lex.c (interpret_float): Likewise.
4580
4581 2004-07-25  Roger Sayle  <roger@eyesopen.com>
4582
4583         * convert.c (convert_to_real, convert_to_integer,
4584         convert_to_complex): Replace calls to build with calls to buildN.
4585         * coverage.c (tree_coverage_counter_ref): Likewise.
4586         * dojump.c (do_jump): Likewise.
4587         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
4588         * emit-rtl.c (component_ref_for_mem_expr,
4589         set_mem_attributes_minus_bitpos): Likewise.
4590         * explow.c (update_nonlocal_goto_save_area): Likewise.
4591         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
4592         expand_mult_add): Likewise.
4593         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
4594         store_constructor, get_inner_reference, expand_expr_real_1,
4595         try_casesi, try_tablejump): Likewise.
4596         * function.c (expand_function_start): Likewise.
4597         * stmt.c (emit_case_bit_tests, expand_end_case_type,
4598         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
4599         * stor-layout.c (place_union_field, layout_type): Likewise.
4600         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
4601         * varasm.c (copy_constant): Likewise.
4602
4603 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4604
4605         * c-common.c: Rename all identifiers named `new'.
4606         * c-decl.c: Likewise.
4607         * gensupport.c: Likewise.
4608         * simplify-rtx.c: Likewise.
4609         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
4610         with XNEW().
4611         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
4612         with XNEWVEC().
4613
4614 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
4615
4616         PR c/15360
4617         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
4618         declarations until after calling pushdecl.
4619         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
4620         "extern" and not on whether the declaration is initialized.
4621
4622 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
4623
4624         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
4625         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
4626         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
4627         "cpplib.h", "c-pragma.h", "c-common.h".
4628         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
4629         (solaris_register_pragmas): New functions.
4630         * config/sol2-protos.h: New file.
4631         * config/sol2.c: New file.
4632         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
4633         (REGISTER_TARGET_PRAGMAS): New macros.
4634         (solaris_pending_aligns, solaris_pending_inits)
4635         (solaris_pending_finis): New variables.
4636         * config/t-sol2 (sol2-c.o): Update dependencies.
4637         (sol2.o): New rule.
4638         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
4639         SUBTARGET_INSERT_ATTRIBUTES.
4640         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
4641         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
4642         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
4643         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
4644         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
4645         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
4646         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
4647         * config/sparc/sparc.c (sparc_attribute_table): New.
4648         (TARGET_INSERT_ATTRIBUTES): Define in terms of
4649         SUBTARGET_INSERT_ATTRIBUTES.
4650         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
4651         is defined.
4652         * doc/extend.texi (Solaris Pragmas): New section.
4653
4654 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4655
4656         * c-common.c: Rename all identifiers named `class' to `cl'.
4657         * c-common.h: Likewise.
4658         * c-parse.in: Likewise.
4659         * c-typeck.c: Likewise.
4660         * genmodes.c: Likewise.
4661         * real.c: Likewise.
4662         * real.h: Likewise.
4663         * recog.c: Likewise.
4664         * recog.h: Likewise.
4665         * regrename.c: Likewise.
4666         * tree.h: Likewise.
4667         * c-common.c (builtin_function_2): Change type of 5th parameter from
4668         int to enum built_in_function. Change type of 8th parameter from int
4669         to bool.
4670         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
4671         with GGC_CNEW().
4672         * c-typeck.c (convert_arguments): Change type of formal_prec from
4673         int to unsigned int.
4674         * genmodes.c (blank_mode): Make a few negative constants unsigned.
4675         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
4676         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
4677         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
4678         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
4679         iterator to for_all_modes () instead of an enum because enums can't
4680         be incremented in C++.
4681
4682
4683 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
4684
4685         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
4686         hard registers.
4687
4688 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4689
4690         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
4691         Handle ARRAY_RANGE_REF like ARRAY_REF.
4692
4693 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
4694
4695         * c-typeck.c (digest_init): Don't allow arrays of signed or
4696         unsigned variants of wchar_t to be initialized by wide string
4697         constants.  Do allow arrays of enumerated types compatible with
4698         wchar_t to be initialized by wide string constants.  Refine tests
4699         distinguishing wide and narrow strings and arrays.  Give specific
4700         error for arrays of other integer types initialized by string
4701         constants.
4702         (output_init_element, process_init_element): Check for
4703         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
4704         initializing with string constants.
4705
4706 2004-07-25  Richard Henderson  <rth@redhat.com>
4707
4708         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
4709         on the RESULT_DECL.
4710         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4711         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
4712         DECL_IGNORED_P to new decl.
4713
4714 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
4715
4716         * config/ia64/ia64.c (general_xfmode_operand)
4717         (destination_xfmode_operand): Delete.
4718         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
4719         * config/ia64/ia64.md (*movxf_internal): Use general_operand
4720         and destination_operand.
4721
4722 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
4723
4724         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
4725         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
4726
4727 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
4728             Zack Weinberg  <zack@codesourcery.com
4729
4730         PR 16684
4731         * c-decl.c (diagnose_mismatched_decls): Don't issue a
4732         redundant-declaration warning the first time a builtin is
4733         declared explicitly.
4734
4735 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4736
4737         * tree.h (staticp): Change return type to bool.
4738
4739 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4740
4741         * c-common.c (c_staticp): Last episode of the staticp saga.
4742
4743 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4744
4745         * c-common.h (c_staticp): Change return type from int to bool.
4746         * tree.c (staticp): Likewise.
4747         * langhooks.h (staticp): Likewise.
4748
4749 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4750
4751         * langhooks-def.h (lhd_staticp): Change return type from int to
4752         bool in prototype to match definition.
4753
4754 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4755
4756         * system.h (bool, true, false): Don't redefine as preprocessor macros
4757         in C++.
4758
4759 2004-07-24  Roger Sayle  <roger@eyesopen.com>
4760
4761         * expmed.c (init_expmed): A signed modulus by a power of two is
4762         considered cheap if its less than or equal to four instructions.
4763
4764 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4765
4766         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
4767         GGC_CNEWVAR): New macros.
4768
4769 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4770
4771         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
4772         lists.
4773         * c-decl.c: Likewise.
4774         * c-format.c: Likewise.
4775         * c-lex.c: Likewise.
4776         * c-opts.c: Likewise.
4777         * c-pragma.c: Likewise.
4778         * c-typeck.c: Likewise.
4779         * gencheck.c: Likewise.
4780         * genconditions.c: Likewise.
4781         * genconfig.c: Likewise.
4782         * genflags.c: Likewise.
4783         * gengtype.c: Likewise.
4784         * gensupport.c: Likewise.
4785         * ggc-none.c: Likewise.
4786         * langhooks.c: Likewise.
4787         * statistics.h: Likewise.
4788         * stub-objc.c: Likewise.
4789         * java/decl.c: Likewise.
4790
4791 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
4792
4793         * config/m68k/m68k.c (output_scc_di): Fix coding style.
4794         (symbolic_operand): Fix prototype.
4795         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
4796         * config/m68k/m68k.md: Add constants for registers a0 and sp and
4797         use them, change from the "{...}" syntax to the simpler {...}
4798         syntax.
4799         (*cfv4_extendqisi2): Fix destination predicate.
4800         * config/m68k/m68k-protos.h: Remove various declarations also
4801         generated via PREDICATE_CODES.
4802
4803 2004-07-23  Mike Stump  <mrs@apple.com>
4804
4805         * c-typeck.c (convert_for_assignment): Tightened up pointer
4806         converstions that differ in signedness.
4807
4808 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
4809
4810         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
4811
4812 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4813
4814         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
4815         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
4816
4817         * gimplify.c (gimplify_compound_lval): Check for no handled
4818         operations, rather than checking for explicit list of nodes.
4819         (is_gimple_addr_expr_arg_or_indirect): New function.
4820         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
4821         redundant setting of TREE_INVARIANT.
4822         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
4823         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
4824
4825 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
4826
4827         PR tree-optimization/16688
4828         PR tree-optimization/16689
4829         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
4830         unnecessary initialization of 'tag'.
4831         (get_tmt_for): Check that the new type tag has the same alias
4832         set as the pointed-to type.
4833         (group_aliases): Only regular variables need to be removed
4834         from the alias set of a name tag.
4835         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
4836         propagation if the two types are not compatible.
4837         (merge_alias_info): Rename from replace_ssa_names_ann.
4838         Add more checking.
4839         (replace_exp_1): If both arguments are SSA_NAMEs, check that
4840         the propagation can be done.
4841         Only call merge_alias_info on pointers.
4842         (propagate_value): Likewise.
4843         * tree-ssa-copyrename.c: Include langhooks.h.
4844         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
4845         to do the merging.
4846         Do not coalesce variables with incompatible types.
4847         (rename_ssa_copies): Call replace_ssa_name_symbol.
4848         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
4849         the same type as the underlying _DECL.
4850         * tree-ssanames.c (replace_ssa_name_symbol): New function.
4851         * tree.h (replace_ssa_name_symbol): Declare.
4852
4853 2004-07-23  Richard Henderson  <rth@redhat.com>
4854
4855         PR c++/16277
4856         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
4857         unshare it properly.
4858         (gimplify_modify_expr_rhs): Push assignment from a conditional into
4859         the conditional for all non-register types.
4860
4861 2004-07-23  Richard Henderson  <rth@redhat.com>
4862
4863         * expr.c (expand_expr_real_1): Don't handle non-local variables.
4864         * expr.h (fix_lexical_addr): Remove.
4865         * function.c (NEED_SEPARATE_AP): Remove.
4866         (fix_lexical_addr): Remove.
4867         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
4868         not null decl_function_context.
4869         (create_alias_vars): Likewise.
4870         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
4871         (simple_goto_p): Likewise.
4872         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
4873         * tree-ssa-ccp.c (get_default_value): Likewise.
4874         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4875         * tree.c (needs_to_live_in_memory): Likewise.
4876         * tree-flow-inline.h (may_be_aliased): Move...
4877         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
4878         when TREE_STATIC variables may be addressable.
4879
4880 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
4881
4882         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
4883
4884 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
4885
4886         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
4887         bitmap contents if GENERATOR_FILE is defined.
4888         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
4889         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
4890
4891 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
4892
4893         * c-decl.c (start_function): Form composite type of function types
4894         rather than copying type from previous prototype declaration.
4895
4896 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
4897
4898         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
4899         the const qualifier for the second argument in the C++ functions.
4900
4901         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
4902         specific pointer types.
4903
4904         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
4905         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
4906         for vector bool and/or vector pixel, add C++ and C missing support.
4907         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
4908         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
4909         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
4910         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
4911         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
4912         missing C++ and C support for vector bool and/or vector pixel.
4913         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
4914         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
4915         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
4916         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
4917         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
4918         C++ and C types used for vector bool and/or vector pixel.
4919         (vec_st, vec_stl): Add C++ support for vector pixel.
4920         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
4921         (vec_all_ne): Add C++ support for vector pixel.
4922
4923         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
4924         (vec_vmulesb): Add missing C++ function.
4925         (vec_perm): Fix type of third argument in C++ function.
4926         (vec_vsum4shs): Fix C++ function name.
4927         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
4928         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
4929         argument passed to the error handler in C macro.
4930         (vec_nmsub): Remove extra parens around argument names in C macro.
4931         (vec_packpx): Add missing parens in C macro.
4932
4933 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
4934
4935         * machmode.def: Remove vector modes.
4936         * config/alpha/alpha-modes.def: Add supported vector modes.
4937         * config/arm/arm-modes.def: Likewise.
4938         * config/frv/frv-modes.def: Likewise.
4939         * config/i386/i386-modes.def: Likewise.
4940         * config/rs6000/rs6000-modes.def: Likewise.
4941         * config/sh/sh-modes.def: Likewise.
4942
4943 2004-07-23  Matthias Klose  <doko@debian.org>
4944
4945         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
4946         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
4947         * config.h: Regenerate.
4948         * configure: Likewise.
4949
4950 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
4951
4952         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
4953         generated SYMBOL_REFs for labels.
4954         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
4955         Change prototype.
4956         (machopic_stub_name): Remove.
4957         (machopic_indirection_name): New function.
4958         (machopic_mcount_stub_name): Likewise.
4959         (machopic_classify_name): Remove.
4960         (machopic_function_base_sym): New function.
4961         (machpoic_classify_symbol): Likewise.
4962         (machopic_classify_ident): Remove.
4963         (machopic_define_ident): Likewise.
4964         (machopic_define_name): Likewise.
4965         (machopic_name_defined_p): Likewise.
4966         (machopic_ident_defined_p): Likewise.
4967         (darwin_strip_name_encoding): Likewise.
4968         (machopic_define_symbol): New function.
4969         * config/darwin.c (hashtab.h): Include.
4970         (machopic_defined_list): Remove.
4971         (machopic_classify_ident): Likewise.
4972         (machopic_classify_name): Likewise.
4973         (machopic_ident_defined_p): Likewise.
4974         (machopic_define_ident): Likewise.
4975         (machopic_define_name): Likewise.
4976         (machopic_symbol_defined_p): New function.
4977         (machopic_classify_symbol): Likewise.
4978         (machopic_data_defined_p): Use machopic_classify_symbol.
4979         (machopic_define_symbol): New function.
4980         (machopic_function_base_sym): New function.
4981         (machopic_non_lazy_pointers): Remove.
4982         (machopic_non_lazy_ptr_name): Likewise.
4983         (machopic_stubs): Likewise.
4984         (machopic_stub_name): Likewise.
4985         (NON_LAZY_POINTER_SUFFIX): New macro.
4986         (STUB_SUFFIX): Likewise.
4987         (machopic_indirection): New structure.
4988         (machopic_indirections): New variable.
4989         (machopic_indirection_hash): New function.
4990         (machopic_indirection_eq): Likewise.
4991         (machopic_indirection_name): Likewise.
4992         (machopic_mcount_stub_name): New function.
4993         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
4994         hash table.
4995         (machopic_indirect_data_reference): Rework to use new functions.
4996         (machopic_indirect_call_target): Likewise.
4997         (machopic_legitimize_pic_address): Likewise.
4998         (machopic_output_indirection): New function.
4999         (machopic_finish): Use it.
5000         (machopic_operand_p): Rework to use new functions.
5001         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
5002         (darwin_strip_name_encoding): Remove.
5003         (update_non_lazy_ptrs): Remove.
5004         (update_stubs): Likewise.
5005         (darwin_non_lazy_pcrel): Use new functions.
5006         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
5007         (ASM_OUTPUT_LABELREF): Likewise.
5008         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
5009         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
5010         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
5011         (TARGET_STRIP_NAME_ENCODING): Do not use
5012         darwin_strip_name_encoding.
5013         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
5014         darwin_strip_name_encoding.
5015         * config/i386/darwin.h (FUNCTION_PROFILER): Use
5016         machopic_mcount_stub_name.
5017         * config/i386/i386.c (x86_output_mi_thunk): Use
5018         machopic_indirection_name, not machopic_stub_name.
5019         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
5020         machopic_function_base_sym.
5021         (print_operand): Use machopic_classify_symbol.
5022         (rs6000_emit_prologue): Use machopic_function_base_sym.
5023         (output_profile_hook): Do not use machopic_stub_name.
5024         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
5025
5026 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5027
5028         PR c/7284
5029         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
5030         as multiplication.
5031
5032 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5033
5034         * doc/implement-c.texi: New file.
5035         * doc/extend.texi (C Implementation): Move to there.
5036         * doc/gcc.texi: Include implement-c.texi.
5037         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
5038
5039 2004-07-22  Jason Merrill  <jason@redhat.com>
5040
5041         * integrate.c (copy_decl_for_inlining): Remove invisible reference
5042         handling.
5043         * tree-inline.c (setup_one_parameter): Likewise.
5044
5045 2004-07-22  Brian Booth  <bbooth@redhat.com>
5046
5047         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
5048         (substitute_and_fold): Propigate into VUSE operands when possible.
5049         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
5050         (cp_lattice_meet): Handle merging of latticevalues when
5051         UNKNOWN_VAL is present.
5052         (visit_stmt): Visit assignments with V_MUST_DEFs.
5053         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
5054         (ccp_fold): Deal with RHS' that are constant and virtual.
5055         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
5056         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
5057         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
5058         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
5059         computing immediate uses.
5060         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
5061         transition.
5062         (replace_vuse_in): New function.
5063         (likely_value): Add check of vuse operands.
5064         (get_default_value): Set the default value of virtually defined
5065         variables to UKNOWN_VAL instead of VARYING.
5066
5067 2004-07-22  Richard Henderson  <rth@redhat.com>
5068
5069         * expr.c (emit_push_insn): Don't use set_mem_attributes.
5070
5071 2004-07-22  Richard Henderson  <rth@redhat.com>
5072
5073         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
5074         variables due to conditional compilation.
5075
5076 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
5077
5078         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
5079         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
5080         Release SSA names that have been re-renamed.
5081         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
5082         variable.
5083         * tree-ssa-alias.c (init_alias_info): If aliases have been
5084         computed before, clear existing alias information.
5085         (create_name_tags): Do no fixup PT_ANYTHING pointers.
5086         If the new name tag for a pointer is different than the one it
5087         had before, mark the old tag for renaming.
5088         (replace_may_alias): New function.
5089         (group_aliases): Call it.
5090         (setup_pointers_and_addressables): Always call get_tmt_for.
5091         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
5092         once.
5093         (set_pt_anything): New local function.
5094         (set_pt_malloc): New local function.
5095         (merge_pointed_to_info): Don't merge pointed-to variables from
5096         the original pointer if the destination is pointing to an
5097         unknown location.
5098         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
5099         (add_pointed_to_var): Do not add a variable to the points-to
5100         set if the pointer is already pointing to anywhere.
5101         (collect_points_to_info_r): If the defining statement is a PHI
5102         node, only merge pointed-to information if the argument has
5103         already been visited.
5104         (get_tmt_for): Only create a new tag if the pointer didn't
5105         have one already.
5106         (dump_alias_info): Emit more information.
5107         (dump_points_to_info_for): Likewise.
5108         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
5109         try to get the annotation of an SSA_NAME.
5110         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
5111         alias sets when checking is enabled.
5112         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
5113         (eliminate): Mark basic blocks that will need
5114         EH information cleaned up.
5115         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
5116         predecessor.
5117         Initialize need_eh_cleanup.
5118         (fini_pre): Call tree_purge_all_dead_eh_edges and
5119         cleanup_tree_cfg if needed.
5120         Free need_eh_cleanup.
5121         * tree-ssa.c (verify_ssa_name): New function.
5122         (verify_def): Call it.
5123         Re-arrange to avoid printing too many error messages.
5124         (verify_use): Likewise.
5125         (verify_phi_args): Likewise.
5126         (verify_flow_insensitive_alias_info): New function.
5127         (verify_flow_sensitive_alias_info): New function.
5128         (verify_alias_info): New function.
5129         (verify_ssa): Call verify_alias_info.
5130         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
5131         program.
5132         Re-arrange to avoid printing too many error messages.
5133         * tree-ssanames.c (make_ssa_name): Clear
5134         SSA_NAME_IN_FREE_LIST.
5135         (release_ssa_name): Never release a default definition.
5136         (release_defs): New function.
5137         * tree.h: Declare it.
5138         * tree-ssa-dce.c (remove_dead_stmt): Call it.
5139
5140 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
5141
5142         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
5143         If true, do a depth-first search.  Do a breadht-first search,
5144         otherwise.
5145         (walk_use_def_chains): Add new argument IS_DFS.
5146         Update all users.
5147         * tree-flow.h (walk_use_def_chains): Update prototype.
5148
5149 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
5150
5151         * config/cris/cris.md: Tweak formatting.
5152         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
5153         (mover2side, moverside, movemside, movei, op3, andu): Replace
5154         live define_peephole:s with define_peephole2 near-equivalents.
5155         Delete the rest.
5156         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
5157         word-size modes.
5158         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
5159         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
5160         "*mov_sidesi_mem" respectively.
5161
5162 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
5163
5164         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
5165         (gimplify_build1): Move from tree-complex.c do_unop.
5166         (gimplify_build2): Move from tree-complex.c do_binop.
5167         (gimplify_build3): New.
5168         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
5169         Adjust throughout to call the functions above.
5170         * tree-flow.h: Declare the functions above.
5171         * tree-nested.c (gimplify_val): Rename to...
5172         (tsi_gimplify_val): ... this.
5173
5174         * Makefile.in (tree_complex.o): Update dependencies.
5175         (stor-layout.o): Depend on regs.h.
5176         * c-common.c (handle_vector_size_attribute): Update for
5177         vector types without corresponding vector modes.
5178         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
5179         a corresponding vector mode is not available.
5180         * print-tree.c (print_node): Print nunits for vector types
5181         * regclass.c (have_regs_of_mode): New.
5182         (init_reg_sets_1): Initialize it and use it instead
5183         of allocatable_regs_of_mode.
5184         * regs.h (have_regs_of_mode): Declare it.
5185         * stor-layout.c (layout_type): Pick a mode for vector types.
5186         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
5187         build_replicated_const, do_unop, do_binop, do_plus_minus,
5188         do_negate, expand_vector_piecewise, expand_vector_parallel,
5189         expand_vector_addition, expand_vector_operations_1,
5190         expand_vector_operations, tree_lower_operations,
5191         pass_lower_vector_ssa, pass_pre_expand): New.
5192         (expand_complex_operations, pass_lower_complex): Remove.
5193         * tree-optimize.c (init_tree_optimization_passes): Adjust
5194         pass ordering for changes in tree-complex.c.
5195         * tree-pass.h: Declare new passes.
5196         * tree.c (finish_vector_type): Remove.
5197         (make_vector_type): New.
5198         (build_vector_type_for_mode, build_vector_type): Rewritten.
5199         * tree.def (VECTOR_TYPE): Document where the number of
5200         subparts is stored.
5201         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
5202         (make_vector): Remove declaration.
5203
5204 2004-07-21  Richard Henderson  <rth@redhat.com>
5205
5206         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
5207         TREE_THIS_VOLATILE, may_aliases, or optimization level.
5208         (remove_useless_vars): Dump debugging info.
5209         (expand_used_vars): Move ...
5210         * cfgexpand.c (expand_used_vars): ... here.  Make static.
5211         * tree-flow-inline.h (set_is_used): New.
5212         (set_default_def): Use get_var_ann.
5213         * tree-flow.h: Update decls.
5214         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
5215         (create_ssa_var_map): Use it.
5216         * tree-ssa.c (set_is_used): Remove.
5217
5218 2004-07-22  Ben Elliston  <bje@au.ibm.com>
5219
5220         * gdbinit.in: Set a breakpoint on internal_error.
5221
5222 2004-07-21  Richard Henderson  <rth@redhat.com>
5223
5224         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
5225         to create a new basic block.
5226
5227 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5228
5229         PR c/15052
5230         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
5231         return type on function definitions.  Move other warnings for
5232         qualified return type to -Wreturn-type.  Do not condition any such
5233         warnings on -pedantic.  Update comments.
5234         (start_function): Only copy function type from previous prototype
5235         declaration if return types are compatible.
5236         * c-typeck.c (function_types_compatible_p): Don't condition
5237         warning for incompatibility of volatile qualifiers on the return
5238         type on -pedantic.  Update comment.
5239         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
5240
5241 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5242
5243         * c-typeck.c (set_init_index): Require designator to be of integer
5244         type.
5245
5246 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5247
5248         PR c/11250
5249         * c-parse.in (init): Change to exprtype.
5250         (primary): Set original_code for STRING to STRING_CST.
5251         Call maybe_warn_string_init for compound literals.
5252         (initdcl, notype_initdcl): Call maybe_warn_string_init.
5253         (initval): Update.
5254         * c-tree.h (maybe_warn_string_init): New.
5255         (pop_init_level, process_init_element): Use struct c_expr.
5256         (struct c_expr): Update comment.
5257         * c-typeck.c (maybe_warn_string_init): New function.
5258         (digest_init): Call it.  Additional parameter strict_string.  All
5259         callers changed.
5260         (output_init_element): Likewise.
5261         (struct constructor_stack): Use struct c_expr for
5262         replacement_value.
5263         (really_start_incremental_init, push_init_level): Update.
5264         (pop_init_level): Update.  Return struct c_expr.
5265         (process_init_level): Update.  Take struct c_expr argument.
5266
5267 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
5268
5269         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
5270         commit.
5271
5272 2004-07-21  Eric Christopher  <echristo@redhat.com>
5273
5274         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
5275         removal.
5276         * c-decl.c (pop_scope): Ditto.
5277         * calls.c (expand_call): Remove call to current_nesting_level,
5278         update comment accordingly. Remove calls to expand_start_target_temps
5279         and expand_end_target_temps.
5280         * cfgexpand.c (construct_init_block): Remove call to
5281         expand_start_bindings_and_block.
5282         (construct_exit_block): Remove call to expand_end_bindings.
5283         * expr.c (safe_from_p): Remove BIND_EXPR handling.
5284         (expand_expr_real_1): Ditto. Fix formatting.
5285         (expand_vars): Delete.
5286         * stmt.c (POPSTACK): Remove block_stack.
5287         (stmt_status): Remove x_block_stack.
5288         (block_stack): Delete.
5289         (expand_start_bindings_and_block): Ditto.
5290         (expand_start_target_temps): Ditto.
5291         (expand_end_target_temps): Ditto.
5292         (current_nesting_level): Ditto.
5293         (warn_about_unused_variables): Ditto.
5294         (expand_end_bindings): Ditto.
5295         * tree.h: Remove declarations for above.
5296
5297 2004-07-21  Steven Bosscher  <stevenb@suse.de>
5298
5299         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
5300         * rtl.c (note_insn_name): Likewise.
5301         * print-rtl.c (print_rtx): Don't print it.
5302         * cfgrtl.h (can_delete_note_p): Don't handle it.
5303         (rtl_delete_block): Likewise.
5304         * passes.c (rest_of_handle_guess_branch_prob): Remove.
5305         (rest_of_compilation): Don't call it.
5306         * predict.c (process_note_predictions, process_note_prediction,
5307         note_prediction_to_br_prob): Remove.
5308         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
5309         * stmt.c (return_prediction): Remove.
5310         (expand_value_return): Don't call it.  Don't add prediction
5311         notes for return statements.
5312
5313 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
5314
5315         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
5316         once.
5317
5318 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
5319
5320         * c-common.c (vector_types_convertible_p): Use vector types'
5321         TYPE_SIZE and TREE_TYPE instead of their mode.
5322         * convert.c (convert_to_integer): Likewise.
5323         (convert_to_vector): Likewise.
5324         * fold-const.c (fold_convert): Likewise.
5325         * varasm.c (output_constant): Likewise.
5326         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
5327         Allow a VECTOR_TYPE initializer to be made of several vectors.
5328         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
5329         of cleared and need_to_clear, and use fold_convert.
5330         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
5331         integer vectors.
5332
5333 2004-07-20  Richard Henderson  <rth@redhat.com>
5334
5335         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
5336         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
5337
5338 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
5339
5340         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
5341         enormous cost if not TARGET_HARD_MUL.
5342
5343 2004-07-20  Andrew Pinski  <apinski@apple.com>
5344
5345         PR target/16557
5346         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
5347         (ASM_SPEC): here.
5348
5349 2004-07-21  Paul brook  <paul@codesourcery.com>
5350
5351         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
5352
5353 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5354
5355         * fold-const.c (operand_equal_p): Temporarily support NULL args.
5356         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
5357         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
5358
5359 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
5360
5361         * rtl.h (plus_constant): Delete.
5362         (plus_constant_wide): Rename to plus_constant.
5363         (plus_constant_for_output_wide): Delete vestigial prototype.
5364         (GEN_INT): Remove unnecessary cast.
5365         * tree.h (build_int_2, size_int_type): Delete.
5366         (build_int_2_wide): Rename to build_int_2.
5367         (size_int_wide): Rename to size_int_kind.
5368         (size_int_type_wide): Rename to size_int_type.
5369         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
5370         Remove unnecessary cast.
5371         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
5372         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
5373         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
5374         (size_int_type_wide): Rename size_int_type.
5375         (int_const_binop): Use size_int_type.
5376         * c-lex.c (interpret_integer): Use build_int_2.
5377         * final.c (split_double): Remove unnecessary casts.
5378         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
5379
5380 2004-07-20  Richard Henderson  <rth@redhat.com>
5381
5382         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
5383         (gimplify_compound_lval): Use is_gimple_tmp_reg.
5384         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
5385         (is_gimple_tmp_reg): New.
5386         * tree-gimple.h (is_gimple_tmp_reg): Declare.
5387
5388 2004-07-20  Richard Henderson  <rth@redhat.com>
5389
5390         * tree-pretty-print.c (dump_generic_node): Dump
5391         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
5392
5393 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
5394
5395         * tree-mudflap.c (mf_set_options_fndecl): New tree.
5396         (mudflap_init): Set it.
5397         (mudflap_register_call): Remove __mf_init call.
5398         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
5399         to pass "-ignore-reads" option to libmudflap if needed.
5400
5401 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
5402
5403         PR c++/14607
5404         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
5405         (MAKE_DECL_ONE_ONLY): Undefine.
5406         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
5407         readonly_data, one_only_data_section, forget_section): New prototypes.
5408         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
5409         functions.
5410         (pa_select_section): Add one-only (COMDAT) support.
5411         * pa.h (struct machine_function): Define.
5412         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
5413         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
5414         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
5415         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
5416         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
5417         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
5418         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
5419         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
5420         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
5421         for EXTRA_SECTION_FUNCTIONS.
5422         * doc/install.texi: Update binutils requirements.
5423
5424 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
5425
5426         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
5427         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
5428         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
5429         size_t.
5430         (struct VEC): Use unsigned for num and alloc.
5431         * vec.c (struct vec_prefix): Likewise.
5432         (vec_o_reserve): Adjust.
5433
5434         * dbxout.c (dbxout_type): Fix printf format.
5435
5436         * tree.h (binfo_member): Remove.
5437         * tree.c (binfo_member): Remove.
5438
5439 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
5440
5441         * tree.h: Include vec.h
5442         (DEF_VEC_P(tree)): New type.
5443         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
5444         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
5445         (BINFO_LANG_SLOT): Remove.
5446         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
5447         (struct tree_binfo): Turn base_binfos into a trailing
5448         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
5449         (binfo_lang_slots): Remove.
5450         * tree.c (binfo_lang_slots): Remove.
5451         (make_tree_binfo_stat): Take a base binfo count, not a
5452         lang slot count.  Adjust.
5453         * Makefile.in (TREE_H): Add vec.h
5454         * alias.c (record_component_aliases): Adjust BINFO access.
5455         * dbxout.c (dbxout_type): Likewise.
5456         * dwarf2out.c (gen_member_die): Likewise.
5457         * sdbout.c (sdbout_one_type): Likewise.
5458         * tree-dump.c (deque_and_dump): Likewise.
5459         * config/i386/i386.c (classify_argument,
5460         contains_128bit_aligned_vector_p): Likewise.
5461         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
5462         * doc/c-tree.texi (Classes): Update BINFO documentation.
5463
5464 2004-07-20  Steven Bosscher  <stevenb@suse.de>
5465
5466         * c-common.h (check_case_value): Remove prototype.
5467         (c_add_case_label): Adjust prototype.
5468         * c-common.c (check_case_value): Make static.
5469         (check_case_bounds): New function.
5470         (c_add_case_label): Use it.  Take new argument orig_type.
5471         * c-typeck.c (struct c_switch): New orig_type field.
5472         (c_start_case): Set it.
5473         (do_case): Pass it to c_add_case_label.
5474         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
5475         cases from here.  Add the labels in reverse order.
5476         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
5477         (add_case_node): Return nothing, don't check for duplicate cases.
5478         Insert new case nodes in a list, not in an AVL tree.
5479         (expand_end_case_type): Don't turn a case tree into a case list.
5480         (case_tree2list): Remove.
5481         * tree.h (add_case_node): Adjust prototype.
5482
5483 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
5484
5485         * genattr.c (struct range, struct function_unit,
5486         write_units, extend_range, init_range): Remove them.
5487         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
5488         Output "#define INSN_SCHEDULING" here.
5489         * genattrtab.c (struct range, struct function_unit_op,
5490         struct function_unit, struct dimension, enum operator,
5491         operate_exp, expand_units, simplify_knowing,
5492         encode_units_mask, simplify_by_exploding,
5493         find_and_mark_used_attributes, unmark_used_attributes,
5494         add_values_to_cover, increment_current_value,
5495         test_for_current_value, simplify_with_current_value,
5496         simplify_with_current_value_aux, gen_unit,
5497         write_unit_name, write_function_unit_info,
5498         write_complex_function, write_toplevel_expr,
5499         find_single_value, extend_range): Remove.
5500         (write_attr_get): Do not handle common_av->value
5501         being an FFS.
5502         (struct attr_desc): Remove func_units_p and blockage_p.
5503         (write_attr_valueq): Do not handle them.
5504         (find_attr): Do not clear them.
5505         (make_internal_attr): Do not initialize them.
5506         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
5507         * sched-vis.c (init_target_units, insn_print_units,
5508         init_block_visualization, print_block_visualization,
5509         visualize_scheduled_insns, visualize_no_unit,
5510         visualize_stall_cycles, visualize_alloc,
5511         visualize_free, target_units, get_visual_tbl_length,
5512         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
5513         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
5514         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
5515         * haifa-sched.c (blockage_range, clear_units,
5516         schedule_unit, actual_hazard, potential_hazard,
5517         insn_unit, unit_last_insn, unit_tick,
5518         actual_hazard_this_instance, potential_hazard,
5519         schedule_unit, max_insn_queue_index_value): Remove.
5520         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
5521         max_insn_queue_index.
5522         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
5523         * doc/md.texi (Processor pipeline description): Remove
5524         references to old pipeline descriptions.
5525         (Automaton pipeline description): Merge with the above.
5526         (Old pipeline description, Comparison of the two descriptions):
5527         Remove.
5528
5529         * bt-load.c (migrate_btr_def): Remove references to
5530         use_pipeline_interface.
5531         * haifa-sched.c (insn_cost, schedule_insn,
5532         schedule_block, advance_one_cycle, sched_init,
5533         queue_to_ready, sched_finish): Likewise.
5534         * modulo-sched.c (sms_schedule, advance_one_cycle,
5535         ps_has_conflicts): Likewise.
5536         * sched-rgn.c (init_ready): Likewise.
5537         (debug_dependencies): Likewise, and remove an "if (1)".
5538         * target.h (use_dfa_pipeline_interface): Remove.
5539         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5540         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5541         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5542         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5543         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5544         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5545         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5546         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5547         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5548         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5549         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5550         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5551         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5552         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5553         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5554         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5555         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5556         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5557         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
5558
5559 2004-07-19  Roger Sayle  <roger@eyesopen.com>
5560
5561         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
5562
5563 2004-07-19  Jeff Law  <law@redhat.com>
5564
5565         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
5566         (get_eq_expr_value): Use it.  Simplify slightly.
5567
5568 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
5569
5570         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
5571         (umulsidi3_32bit_r4000): Likewise.
5572
5573 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
5574
5575         * vec.h: Propagate location information properly.
5576         (VEC_T_iterate): Add result pointer parameter.
5577         (VEC_T_space): New.
5578         (VEC_T_reserve): Use it.
5579
5580 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
5581
5582         * Makefile.in (c-format.o): Depend on c-format.h.
5583         * c-format.h: New file.
5584         (struct format_char_info): Add CHAIN member.
5585         * c-format.c: Move some types and constants to c-format.h.
5586         (format_type_error): Set to -1.
5587         (struct function_format_info): Use an int for format_type.
5588         (decode_format_type): Return an int.  Return format_type_error
5589         on error.
5590         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
5591         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
5592         (scan_char_table, time_char_table, monetary_char_table): Initialize
5593         CHAIN to NULL.
5594         (n_format_types): New variable.
5595         (check_format_info_main): Handle CHAIN in format_char_info.
5596         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
5597         TARGET_N_FORMAT_TYPES.
5598         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
5599         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
5600         * config/sol2-c.c: New file.
5601         * config/t-sol2: New file.
5602         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
5603         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
5604         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
5605
5606         * doc/extend.texi (Target Format Checks): New section.
5607         (Function Attributes): Mention it.
5608         * doc/invoke.texi: Mention target format checks.
5609         * doc/sourcebuild.texi: Mention target format checks.
5610         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
5611         TARGET_FORMAT_TYPES.
5612
5613 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5614
5615         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
5616         added.
5617         * config/s390/s390.c (regclass_map initializer): Register 35 added to
5618         ADDR_REGS.
5619         (load_multiple_operation, store_multiple_operation): Removed
5620         pointless sanity check.
5621         (s390_decompose_address): Added check for return_address_pointer_rtx.
5622         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
5623         (s390_return_address_offset): New function.
5624         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
5625         (FRAME_REGNO_P): Added check for register 35.
5626         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
5627         REG_ALLOC_ORDER): Appended entry for register 35.
5628         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
5629         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
5630         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
5631         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
5632         is eliminable using stack pointer or hard frame pointer.
5633         (REGISTER_NAMES): Added name for register 35.
5634         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
5635         pointless sanity check.
5636
5637 2004-07-19  Roger Sayle  <roger@eyesopen.com>
5638
5639         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
5640         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
5641         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
5642         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
5643         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
5644         (fold_relational_const): Tidy up handling of floating point
5645         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
5646         transformation; fold_relational_const assumes constant operands.
5647
5648 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
5649
5650         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
5651         directory.
5652
5653 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
5654
5655         * c-tree.h (struct c_expr): Define.
5656         (C_SET_EXP_ORIGINAL_CODE): Remove.
5657         (parser_build_binary_op, build_compound_expr): Update prototypes.
5658         * c-parse.in (%union): Add exprtype.
5659         (FUNC_NAME): Mark as ttype.
5660         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
5661         exprtype.
5662         (expr): Update.  Define directly in terms of expr_no_commas
5663         instead of using nonnull_exprlist.
5664         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
5665         offsetof_member_designator, typespec_nonreserved_nonattr, init,
5666         initval, designator, component_declarator,
5667         component_notype_declarator, enumerator, array_declarator,
5668         condition, exexpr, switch_statement, stmt_nocomp, stmt,
5669         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
5670         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
5671         where appropriate.
5672         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
5673         * c-common.c (c_common_truthvalue_conversion): Don't check
5674         C_EXP_ORIGINAL_CODE.
5675         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
5676         Don't use C_EXP_ORIGINAL_CODE.
5677         (default_conversion, default_function_array_conversion): Don't use
5678         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
5679         (internal_build_compound_expr): Merge into build_compound_expr.
5680         (build_compound_expr): Take two operands instead of a TREE_LIST.
5681         * objc/objc-act.c (get_super_receiver): Update calls to
5682         build_compound_expr.
5683
5684 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
5685
5686         * config/sh/sh.c (sh_use_dfa_interface): Remove.
5687         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
5688         hook_int_void_1.
5689         * config/sh/sh.md: Extract pipeline descriptions
5690         into separate files.
5691         * config/sh/sh1.md: New file, extracted from sh.md.
5692         * config/sh/sh4.md: New file, extracted from sh.md.
5693         * config/sh/shmedia.md: New file, extracted from sh.md
5694         and rewritten using new-style pipeline description.
5695
5696 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
5697
5698         * config/pa/pa.md: Delete the two remaining define_peephole
5699         patterns.
5700
5701 2004-07-18  Steven Bosscher  <stevenb@suse.de>
5702             Joseph S. Myers  <jsm@polyomino.org.uk>
5703
5704         * c-common.c (c_common_truthvalue_conversion): Don't warn if
5705         TREE_NO_WARNING is set.
5706
5707 2004-07-18  Roger Sayle  <roger@eyesopen.com>
5708
5709         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
5710         simplify_builtin_strncmp): Delete.
5711         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
5712         Change argument to accept an arglist instead of an "exp".  Assume
5713         that the return type is always integer_type_node.  Copy missing
5714         transformations from their now obsolete simplify_builtin_*
5715         equivalents.
5716         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
5717         fold_builtin_strcmp and fold_builtin_strncmp.
5718         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
5719         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
5720         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
5721
5722 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
5723
5724         * Makefile.in (tree-alias-common.o): Update dependencies.
5725
5726 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
5727
5728         * cfgloop.c (flow_loop_nested_p): Fix comment.
5729
5730 2004-07-17  Jason Merrill  <jason@redhat.com>
5731
5732         PR c++/16115
5733         * stor-layout.c (relayout_decl): New fn.
5734         * tree.h: Declare it.
5735         (DECL_BY_REFERENCE): New macro.
5736
5737 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
5738
5739         * libgcc2.c (__enable_execute_stack): New symbol.
5740         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
5741         and declare __enable_execute_stack.
5742         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
5743         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
5744         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
5745         ENABLE_EXECUTE_STACK.
5746         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
5747         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
5748         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
5749         ENABLE_EXECUTE_STACK.
5750         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5751         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
5752         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
5753         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
5754         ENABLE_EXECUTE_STACK.
5755         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5756         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5757         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5758         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
5759         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
5760         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
5761         (sparc64_initialize_trampoline): Likewise.
5762         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
5763
5764 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
5765
5766         * langhooks.h (builtin_function): New langhook.
5767         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
5768         (LANG_HOOKS_INITIALIZER): Update.
5769         * tree.h (builtin_function): Remove.
5770         * doc/tm.texi: Update.
5771         * c-tree.h (builtin_function): Declare.
5772         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
5773         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
5774         config/ia64/ia64.c, config/iq2000/iq2000.c,
5775         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
5776         config/stormy16/stormy16.c: All callers of builtin_function
5777         changed.
5778
5779 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
5780
5781         PR target/16556
5782         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5783         Remove white space after the backslash.
5784
5785 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
5786
5787         PR rtl-optimization/16294
5788         * resource.c (return_insn_p): New predicate.
5789         (mark_target_live_regs): Use it.  Special-case return insns.
5790         (init_resource_info): Use it.  Don't scan the epilogue past
5791         a return.
5792
5793 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5794
5795         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
5796         destroy dominance information.
5797         * passes.c (rest_of_handle_loop2):  Free dominance information.
5798         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
5799         jump threading.
5800         (thread_jumps): Update dominance information and remove unreachable
5801         blocks.
5802         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
5803         information and remove the unreachable block.
5804
5805 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
5806
5807         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
5808
5809 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
5810
5811         * doc/sourcebuild.texi: Remove libf2c entry.
5812
5813 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
5814
5815         * config/i386/i386.md (movv16qi_internal): Fix typo.
5816
5817 2004-07-17  Steven Bosscher  <stevenb@suse.de>
5818
5819         * final.c (final_scan_insn): Fix broken commit from previous
5820         patch.
5821
5822 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
5823
5824         * c-typeck.c (parser_build_binary_op): Condition warnings for
5825         X<=Y<=Z on -Wparentheses instead of -Wextra.
5826         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
5827         supported for C only.
5828
5829 2004-07-17  Steven Bosscher  <stevenb@suse.de>
5830
5831         * cfgcleanup.c (try_simplify_condjump): Don't remove line
5832         notes to avoid unreachable code warnings.
5833         * toplev.c (backend_init): Don't emit line notes for
5834         unreachable code warnings.
5835
5836         * combine.c (distribute_notes): Don't distribute a
5837         REG_VTABLE_REF note.
5838         * final.c (final_scan_insn): Don't handle it.
5839         * rtl.c (reg_note_name): Remove it.
5840         * rtl.h (enum reg_node): Dito.
5841
5842         * emit-rtl.c (force_line_numbers, restore_line_number_status):
5843         Remove.
5844         * rtl.h (force_line_numbers, restore_line_number_status):
5845         Remove prototypes.
5846
5847         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
5848         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
5849         (using_eh_for_cleanups): Also moved here.
5850
5851         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
5852         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
5853         to expand_start_case and add_case_node.
5854         * stmt.c (struct nesting): Cleanup unused fields condition_code,
5855         last_unconditional_cleanup, nominal_type, printname, and
5856         line_number_status.
5857         (struct fixup_goto): Remove.
5858         (struct stmt_status): Remove x_goto_fixup_chain field.
5859         (goto_fixup_chain): Remove.
5860         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
5861         pushcase, pushcase_range): Remove.
5862         (expand_start_bindings_and_block): Don't set unused fields in
5863         the nesting stack.
5864         (expand_start_case, add_case_node): Cleanup unused formal arguments.
5865         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
5866         instead of emit_jump_if_reachable.
5867         (emit_case_nodes): Likewise.
5868         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
5869         static.
5870         (update_eh_label): Work around left-over exception handing regions.
5871         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
5872         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
5873         (pass_cleanup_cfg_post_optimizing): New pass.
5874         (init_tree_optimization_passes): Run the new pass after all
5875         optimizations.
5876         * tree.h (pushcase, pushcase_range): Remove prototypes.
5877         (expand_start_case, add_case_node): Update prototypes.
5878
5879 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
5880
5881         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
5882
5883 2004-07-16  Richard Henderson  <rth@redhat.com>
5884
5885         * builtins.c (std_expand_builtin_va_arg): Remove.
5886         (expand_builtin_va_arg): Remove.
5887         * expr.h: Don't declare them.
5888         * gimplify.c (mark_decls_volatile_r): Remove.
5889         (copy_if_shared_r): Don't call it.
5890         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
5891         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
5892         * gimple-low.c (lower_stmt): Likewise.
5893         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
5894         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
5895         * tree-ssa-operands.c (get_expr_operands): Likewise.
5896         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
5897         EXPAND_BUILTIN_VA_ARG.
5898         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
5899         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
5900         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
5901         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
5902
5903 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
5904
5905         * tree-ssa-pre.c (insert_aux): Break out if we hit
5906         a critical edge.
5907
5908 2004-07-16  Richard Henderson  <rth@redhat.com>
5909
5910         * basic-block.h (remove_fake_exit_edges): Declare.
5911         * cfganal.c (remove_fake_predecessors): Rename from
5912         remove_fake_successors; iterate over predecessors.
5913         (remove_fake_exit_edges): New.
5914         * cfgcleanup.c (try_optimize_cfg): Use it.
5915         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
5916         * predict.c (estimate_probability): Likewise.
5917         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
5918         * tree-cfg.c (make_edges): Likewise.
5919         * tree-ssa-pre.c (fini_pre): Likewise.
5920         * profile.c (instrument_edges): Don't remove_fake_edges.
5921         (branch_prob): Do it earlier here.
5922
5923 2004-07-16  Richard Henderson  <rth@redhat.com>
5924
5925         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
5926         switchification wrt CONSTRUCTOR.  Document the reason.
5927
5928 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
5929
5930         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
5931         that prevented descriptive __mf_check source location strings.
5932
5933 2004-07-16  Richard Henderson  <rth@redhat.com>
5934
5935         * tree-def (WITH_SIZE_EXPR): New.
5936         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
5937         * expr.c (expand_expr_real_1): Likewise.
5938         * gimplify.c (maybe_with_size_expr): New.
5939         (gimplify_arg, gimplify_modify_expr): Use it.
5940         (gimplify_modify_expr_to_memcpy): Take size parameter.
5941         (gimplify_modify_expr_to_memset): Likewise.
5942         (gimplify_expr): Handle WITH_SIZE_EXPR.
5943         * tree-alias-common.c (find_func_aliases): Likewise.
5944         * tree-eh.c (tree_could_trap_p): Likewise.
5945         (tree_could_throw_p): Likewise.
5946         * tree-gimple.c (is_gimple_lvalue): Likewise.
5947         (get_call_expr_in): Likewise.
5948         * tree-inline.c (estimate_num_insns_1): Likewise.
5949         (expand_calls_inline): Likewise.
5950         * tree-nested.c (convert_call_expr): Likewise.
5951         * tree-pretty-print.c (dump_generic_node): Likewise.
5952         * tree-sra.c (sra_walk_expr): Likewise.
5953         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
5954         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
5955         * tree-ssa-operands.c (get_expr_operands): Likewise.
5956         * tree-tailcall.c (find_tail_calls): Likewise.
5957
5958         * calls.c (expand_call): Reset old_stack_allocated after
5959         calling emit_stack_restore.
5960
5961 2004-07-16  Richard Henderson  <rth@redhat.com>
5962
5963         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
5964         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
5965         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
5966         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
5967         copy_res_decl_for_inlining.
5968
5969         * tree-inline.c (declare_return_variable): New modify_dest argument.
5970         Use it as the return value, when possible or manditory.  Handle
5971         TREE_ADDRESSABLE types.
5972         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
5973         replacement of CALL_EXPR.
5974
5975 2004-07-16  Richard Henderson  <rth@redhat.com>
5976
5977         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
5978         * gimple-low.c (expand_var_p): Don't check it.
5979         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
5980         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
5981         * tree-ssa-operands.c (add_stmt_operand): Likewise.
5982         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
5983         (find_referenced_vars): Don't call them.
5984         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
5985
5986 2004-07-16  Richard Henderson  <rth@redhat.com>
5987
5988         * function.c (pass_by_reference): True for all variable sized types.
5989
5990 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
5991
5992         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
5993         * tree-pretty-print.c: Include tree-chrec.h.
5994         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
5995         and POLYNOMIAL_CHREC nodes.
5996
5997 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
5998
5999         * builtins.c (expand_builtin_stpcpy): Do not create temporary
6000         reg with VOIDmode.
6001
6002 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
6003
6004         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
6005
6006 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
6007
6008         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
6009         to BASE_REGNUM.
6010         * config/s390/s390.c: Likewise.
6011         * config/s390/s390.h: Likewise.
6012
6013 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6014
6015         * config/mips/mips.md (addsi3, adddi3): Remove special handling
6016         of $sp adds.  Remove REGNO checks from mips16 patterns.
6017
6018 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6019
6020         * config/mips/mips.md: Delete outdated comment.
6021
6022 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6023
6024         * config/mips/mips.c (get_float_compare_codes): Delete.
6025         (mips_emit_compare): New function, mostly extracted from
6026         get_float_compare_codes and gen_conditional_branch.
6027         (gen_conditional_branch, gen_conditional_move): Use it.
6028
6029 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
6030
6031         * genautomata.c (add_vect): Speedup by using integers as
6032         bit-vectors for walking through the comb_vect and finding
6033         a match.
6034
6035 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6036
6037         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
6038         operand is an uns_arith_operand; use subtraction otherwise.
6039         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
6040         not just arith_operands.
6041
6042 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6043
6044         * config/mips/mips-protos.h (gen_int_relational): Delete.
6045         (mips_emit_scc): Declare.
6046         * config/mips/mips.c (internal_test): Delete.
6047         (sle_operand, sleu_operand): New functions.
6048         (map_test_to_internal_test, gen_int_relational): Delete.
6049         (mips_emit_binary, mips_relational_operand_ok_p)
6050         (mips_emit_int_relational, mips_zero_if_equal)
6051         (mips_emit_scc): New functions.
6052         (gen_conditional_branch): Rework to use mips_emit_int_relational.
6053         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
6054         sleu_operand.
6055         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
6056         (sltu, sleu): Use mips_emit_scc.
6057         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
6058         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
6059         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
6060
6061 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6062
6063         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
6064
6065 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6066
6067         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
6068         (*sne_[sd]i): Likewise sne_[sd]i_zero.
6069         (*sgt_[sd]i): ...and sgt_[sd]i.
6070         (*slt_[sd]i): ...and slt_[sd]i.
6071         (*sgtu_[sd]i): ...and sgtu_[sd]i.
6072         (*sltu_[sd]i): ...and sltu_[sd]i.
6073         (*sleu_[sd]i): ...and sleu_[sd]i_const.
6074         Name previously unnamed mips16 patterns.  Formatting fixes.
6075
6076 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6077
6078         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
6079         (branch_type): Delete.
6080         (gen_conditional_branch, gen_conditional_move)
6081         (mips_gen_conditional_trap): Update after name change.  Get the
6082         comparison mode from cmp_operands[0].
6083         * config/mips/mips.h (cmp_type, branch_type): Delete.
6084         (cmp_operands): Renamed from branch_cmp.
6085         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
6086         name change.  Don't set branch_type.
6087         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
6088         mode class of cmp_operands[0] rather than branch_type.  Update after
6089         name change.
6090
6091 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6092
6093         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
6094         of 0...255 to 0 when inside a SET.
6095
6096 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
6097
6098         * config/mips/mips.md: Remove mips16 define_peepholes.
6099
6100 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
6101
6102         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
6103         (fini_pre): Remove fake edges.
6104
6105 2004-07-15  Richard Henderson  <rth@redhat.com>
6106
6107         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
6108         (get_indirect_ref_operands, get_call_expr_operands): ... these.
6109
6110 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
6111
6112         * vec.h (VEC_address): New function.
6113
6114 2004-07-14  Jason Merrill  <jason@redhat.com>
6115
6116         PR middle-end/15885
6117         * gimplify.c (gimplify_arg): New fn, split out from...
6118         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
6119
6120 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
6121
6122         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
6123         generate code which is generated by pushqi1 now
6124         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
6125
6126 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
6127
6128         * combine.c (simplify_set): match the mode of the constant 0 with
6129         the tested operand to match the compare behaviour and the
6130         simplify_relational_operation() expectation.
6131
6132 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
6133
6134         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
6135         ("bordered"): Same.
6136
6137 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
6138
6139         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
6140         unconditionally.
6141         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
6142
6143 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
6144
6145         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
6146         calls in mips16 code.
6147
6148 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
6149
6150         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
6151         the destination of the li as well as for the neg.
6152
6153 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
6154
6155         g++/15861
6156         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
6157         * cgraph.h: Update declaration.
6158         * c-decl.c (build_cdtor): Update call with default priority.
6159         * coverage.c (create_coverage): Ditto.
6160         * tree-mudflap.c (mf_init_fndecl): New tree.
6161         (mudflap_init): Set it.
6162         (mudflap_register_call): Arrange to call __mf_init before the first
6163         __mf_register call.
6164         (mudflap_finish_file): Mark the mudflap static initializer as extra
6165         high priority, to beat all C++ static constructors.
6166
6167 2004-07-15  Jeff Law  <law@redhat.com>
6168
6169         * loop.c (check_insn_for_givs): Restore check for code labels that was
6170         accidentally deleted by a recent checkin.
6171
6172 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
6173
6174         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
6175         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
6176
6177 2004-07-14  Richard Henderson  <rth@redhat.com>
6178
6179         * print-tree.c (print_node): Fix casts last change.
6180
6181 2004-07-15  Paul Brook  <paul@codesourcery.com>
6182
6183         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
6184         to TARGET_UNWIND_INFO.
6185         * except.c (output_function_exception_table): Ditto.
6186         * except.h: Ditto.
6187         * opts.c (decode_options): Ditto.
6188         * passes.c (rest_of_handle_final): Ditto.
6189         * final.c (final_start_function): Ditto.
6190         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
6191         target hook.
6192         * targhooks.h (default_unwind_emit): Declare.
6193         * targhooks.c (default_unwind_emit): New function.
6194         * target-def.h: Define and use TARGET_UNWIND_EMIT.
6195         * target.h (struct gcc_target): Add unwind_emit.
6196         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
6197         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
6198         Remove IA64_UNWIND_EMIT.
6199         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
6200
6201 2004-07-14  Richard Henderson  <rth@redhat.com>
6202
6203         * print-tree.c (print_node): Handle SSA_NAME.
6204
6205 2004-07-14  James E Wilson  <wilson@specifixinc.com>
6206
6207         PR target/16325
6208         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
6209         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
6210
6211 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
6212
6213         * expr.c (expand_assignment): Reenable bitfield += optimizations.
6214         Use alias set 0 for memory, do proper mode calculations and adjust
6215         address for memories.
6216
6217 2004-07-14  Per Bothner  <per@bothner.com>
6218
6219         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
6220         structure with extra column field.
6221         * tree.c (expand_location):  Also fill in column field.
6222         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
6223         gets confused by the two conditionally-compiled definitions.
6224
6225 2004-07-14  Eric Christopher  <echristo@redhat.com>
6226
6227         * calls.c (expand_call): Fix typo in comment.
6228
6229 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
6230
6231         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
6232         comparision of TFmode.
6233
6234 2004-07-14  Richard Henderson  <rth@redhat.com>
6235
6236         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
6237         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
6238         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
6239         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
6240         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
6241         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
6242         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
6243         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
6244         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
6245
6246 2004-07-14  Mike Stump  <mrs@apple.com>
6247
6248         * config/darwin.h (WINT_TYPE): Define to be int to match
6249         system header files.
6250
6251 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
6252
6253         * config/xtensa/xtensa.c (function_arg_advance): Check for args
6254         that must be passed in the stack.
6255         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
6256         arguments if the size is not a constant.
6257
6258 2004-07-14  Per Bothner  <per@bothner.com>
6259
6260         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
6261         instead of EXPR_LOCUS in a boolean context, which is always true
6262         if --enable-mapped-location.
6263         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
6264
6265 2004-07-14  Richard Henderson  <rth@redhat.com>
6266
6267         * dominance.c (struct dom_info): Add fake_exit_edge.
6268         (init_dom_info): Allocate it.
6269         (free_dom_info): Free it.
6270         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
6271         in two passes.
6272         (calc_idoms): Honor fake_exit_edge.
6273
6274 2004-07-13  Jason Merrill  <jason@redhat.com>
6275
6276         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
6277         (rhs_test_for): New fn.
6278         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
6279         * tree-gimple.h: Declare them.
6280         * gimplify.c (gimplify_modify_expr): Use the new fns.
6281
6282 2004-07-14  Richard Henderson  <rth@redhat.com>
6283
6284         * config/arm/arm-protos.h (arm_va_arg): Remove.
6285         * config/arm/arm.c (arm_va_arg): Remove.
6286         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
6287         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
6288
6289 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6290
6291         * pa.c (fix_range): New function to mark a range(s) of registers as
6292         fixed registers.
6293         (override_options): Call fix_range if the -mfixed-range option string
6294         is not empty.
6295         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
6296         * doc/invoke.texi (-mfixed-range): Document new option.
6297
6298 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
6299
6300         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
6301         for TARGET_64BIT.
6302         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
6303
6304 2004-07-14  Roger Sayle  <roger@eyesopen.com>
6305
6306         * expmed.c (expand_sdiv_pow2): New function to expand signed division
6307         by a positive power of two, split out from expand_divmod.  Provide
6308         an alternate implementation when shifts are expensive.  Lower the
6309         threshold for using a branchless implementation to BRANCH_COST >= 2.
6310         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
6311
6312 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
6313
6314         * tree-dfa.c (make_rename_temp): *Really* work just
6315         like create_tmp_var if called while outside SSA form.
6316
6317 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
6318
6319         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
6320         for division by zero.
6321         ("umodsi3"): Likewise.
6322
6323 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
6324
6325         * config/mips/mips.c (mips_output_move): When generating mips16 code,
6326         force loads of negative constants to be split.
6327         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
6328         Generalize SImode li/neg splitter to cope with other modes.
6329
6330 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
6331
6332         * expmed.c: Remove more references to QUEUED in the comments.
6333         * expr.c: Likewise.
6334
6335 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
6336
6337         Revert:
6338         2004-07-13  Richard Henderson  <rth@redhat.com>
6339         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
6340         correctly.
6341
6342 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
6343
6344         * tree-dfa.c (make_rename_temp): Work just like
6345         create_tmp_var if called while outside SSA form.
6346
6347 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
6348
6349         * expr.c (enqueue_insn, finish_expr_for_function,
6350         protect_from_queue, queued_subexp_p, mark_queue,
6351         emit_insns_enqueued_after_mark, emit_queue,
6352         expand_increment): Remove.
6353         (store_constructor): Expand increment as an assignment.
6354         (expand_expr_real_1 <case PREINCREMENT_EXPR,
6355         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
6356         case POSTDECREMENT_EXPR>): Abort.
6357         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
6358         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
6359         protect_from_queue, emit_queue, queued_subexp_p): Remove.
6360         * function.h (pending_chain, x_pending_chain): Remove.
6361         * rtl.def (QUEUED): Remove.
6362
6363         * emit-rtl.c (copy_insn_1, copy_most_rtx,
6364         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
6365         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
6366         encode_units_mask): Likewise.
6367         * local-alloc.c (equiv_init_varies_p): Likewise.
6368         * rtl.c (copy_rtx): Likewise.
6369         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
6370         * simplify-rtx.c (simplify_gen_subreg): Likewise.
6371         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
6372
6373         * builtins.c (expand_builtin, expand_builtin_apply,
6374         expand_builtin_mathfn, expand_builtin_mathfn_2,
6375         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
6376         Remove calls to emit_queue and protect_from_queue.
6377         * calls.c (expand_call, precompute_arguments,
6378         precompute_register_parameters, rtx_for_function_call,
6379         store_one_arg): Likewise.
6380         * dojump.c (do_compare_and_jump, do_jump): Likewise.
6381         * explow.c (memory_address): Likewise.
6382         * expmed.c (clear_by_pieces_1, clear_storage,
6383         clear_storage_via_libcall, emit_group_load,
6384         emit_group_store, emit_store_flag,
6385         expand_expr_real_1, store_by_pieces,
6386         store_constructor, store_expr, try_casesi,
6387         try_tablejump): Likewise.
6388         * function.c (expand_pending_sizes): Likewise.
6389         * optabs.c (emit_cmp_and_jump_insns,
6390         emit_conditional_add, emit_conditional_move,
6391         expand_fix, expand_float, prepare_cmp_insn): Likewise.
6392         * stmt.c (emit_case_bit_tests,
6393         expand_asm_expr, expand_computed_goto,
6394         expand_decl_init, expand_end_case_type,
6395         expand_end_stmt_expr, expand_expr_stmt_value,
6396         expand_return, expand_start_case,
6397         optimize_tail_recursion): Likewise.
6398         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
6399         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
6400
6401 2004-07-14  Ben Elliston  <bje@au.ibm.com>
6402
6403         * vec.h: Comment fix.
6404
6405 2004-07-13  Richard Henderson  <rth@redhat.com>
6406
6407         * target.h (struct gcc_target): Add calls.pass_by_reference.
6408         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
6409         * function.c (pass_by_reference): Use the hook.
6410         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
6411         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
6412         (hook_pass_by_reference_must_pass_in_stack): New.
6413         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
6414         (alpha_pass_by_reference): New.
6415         (TARGET_PASS_BY_REFERENCE): New.
6416         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6417         * config/arc/arc.c (arc_pass_by_reference): New.
6418         (TARGET_PASS_BY_REFERENCE): New.
6419         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6420         (FUNCTION_ARG_CALLEE_COPIES): True.
6421         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
6422         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
6423         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
6424         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6425         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6426         * config/cris/cris.c (cris_pass_by_reference): New.
6427         (TARGET_PASS_BY_REFERENCE): New.
6428         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
6429         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
6430         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6431         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
6432         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6433         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
6434         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
6435         (frv_function_arg_pass_by_reference): Remove.
6436         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6437         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
6438         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
6439         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
6440         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6441         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
6442         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
6443         (ia64_pass_by_reference): Rename from
6444         ia64_function_arg_pass_by_reference.
6445         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6446         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6447         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
6448         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
6449         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
6450         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6451         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
6452         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
6453         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
6454         (m32r_pass_by_reference): Adjust prototype.  Make static.
6455         Handle mode sizes correctly.
6456         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6457         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
6458         (m68hc11_function_arg_pass_by_reference): Remove.
6459         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6460         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
6461         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
6462         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6463         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
6464         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
6465         (mips_va_arg): Use pass_by_reference.
6466         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
6467         Handle mode sizes correctly.
6468         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6469         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
6470         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
6471         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
6472         (mmix_pass_by_reference): Rename from
6473         mmix_function_arg_pass_by_reference.
6474         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6475         (FUNCTION_ARG_CALLEE_COPIES): True.
6476         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
6477         (mn10300_pass_by_reference): New.
6478         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6479         (FUNCTION_ARG_CALLEE_COPIES): True.
6480         * config/pa/pa.c (pa_pass_by_reference): New.
6481         (TARGET_PASS_BY_REFERENCE): New.
6482         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6483         (FUNCTION_ARG_CALLEE_COPIES): True.
6484         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
6485         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
6486         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
6487         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6488         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
6489         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
6490         (s390_pass_by_reference): Rename from
6491         s390_function_arg_pass_by_reference.
6492         (s390_function_arg_advance): Don't query pass-by-ref.
6493         (s390_function_arg): Likewise.
6494         (s390_gimplify_va_arg): Use pass_by_reference.
6495         (s390_call_saved_register_used): Likewise.
6496         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6497         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
6498         (shcompact_byref, sh_pass_by_reference): New.
6499         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6500         (SHCOMPACT_BYREF): Remove.
6501         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
6502         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
6503         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
6504         (sparc_gimplify_va_arg): Use pass_by_reference.
6505         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6506         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6507         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
6508         (v850_pass_by_reference): New.
6509         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6510         (FUNCTION_ARG_CALLEE_COPIES): True.
6511         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
6512         FUNCTION_ARG_PASS_BY_REFERENCE docs.
6513
6514 2004-07-14  Richard Henderson  <rth@redhat.com>
6515             Richard Sandiford  <rsandifo@redhat.com>
6516
6517         * config/mips/mips-protos.h (mips_va_arg): Delete.
6518         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
6519         * config/mips/mips.c: Include tree-gimple.h.
6520         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
6521         (mips_arg_info): Remove special handling of must_pass_in_stck args.
6522         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
6523         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
6524
6525 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
6526
6527         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
6528         arguments for COND_EXPR in big-endian adjustment code.
6529
6530 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6531
6532         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
6533         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
6534         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
6535         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
6536
6537 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
6538
6539         PR tree-optimization/16443
6540         * tree-ssa-alias.c: Add more description for
6541         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
6542         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
6543         clobbering of call-clobbered and addressable variables.  If
6544         there are any before aliases have been computed, add them.
6545
6546 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
6547
6548         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
6549         verification.
6550
6551 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
6552
6553         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
6554         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
6555         to the same type.
6556
6557 2004-07-13  Per Bothner  <per@bothner.com>
6558
6559         * collect2.c (main):  Handle --no-demangle and --demangle flags.
6560
6561 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
6562
6563         * Makefile.in (OBJS-common): Add tree-data-ref.o.
6564         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
6565         (tree-data-ref.o): New rule.
6566         * lambda.h: New file.
6567         * tree-data-ref.c: New file.
6568         * tree-data-ref.h: New file.
6569         * tree.c (int_cst_value, tree_fold_gcd): New functions.
6570         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
6571
6572 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6573
6574         PR target/13926
6575         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
6576         * config/sparc/sparc.c (output_ubranch): New function.
6577         * config/sparc/sparc.md (jump pattern): Use it.
6578
6579 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6580
6581         PR target/16494
6582         * config/sparc/sparc.c (output_cbranch): Properly guard
6583         the code handling far branches with TARGET_V9.
6584         * config/sparc/sparc.md (length attribute): Document the
6585         side-effect of having a length greater or equal to 3.
6586
6587 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6588             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
6589
6590         PR target/15186
6591         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
6592         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
6593
6594 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6595             Martin Sebor  <sebor@roguewave.com>
6596
6597         PR target/12602
6598         * doc/invoke.texi (SPARC options): Document -threads
6599         and -pthreads on Solaris.
6600
6601 2004-07-13  Richard Henderson  <rth@redhat.com>
6602
6603         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
6604         by reference.
6605         (ind_gimplify_va_arg_expr): Remove.
6606         * tree.h (ind_gimplify_va_arg_expr): Remove.
6607         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
6608         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
6609         argsp to be null.
6610
6611         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
6612         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
6613         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
6614         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
6615         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
6616
6617 2004-07-13  Richard Henderson  <rth@redhat.com>
6618
6619         * function.c (pass_by_reference): New.
6620         (assign_parm_find_data_types): Use it.
6621         * calls.c (initialize_argument_information): Likewise.
6622         (emit_library_call_value_1): Likewise.
6623         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
6624         * function.h (pass_by_reference): Declare.
6625
6626 2004-07-13  Richard Henderson  <rth@redhat.com>
6627
6628         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
6629         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
6630         * expr.h (MUST_PASS_IN_STACK): Remove.
6631         * system.h (MUST_PASS_IN_STACK): Poison.
6632         * tree.h (must_pass_in_stack_var_size): Declare.
6633         (must_pass_in_stack_var_size_or_pad): Declare.
6634         * calls.c (must_pass_in_stack_var_size): New.
6635         (must_pass_in_stack_var_size_or_pad): Rename from
6636         default_must_pass_in_stack.
6637         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
6638         (TARGET_MUST_PASS_IN_STACK): New.
6639         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
6640         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
6641         (TARGET_MUST_PASS_IN_STACK): New.
6642         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
6643         * config/frv/frv.c (frv_must_pass_in_stack): New.
6644         (TARGET_MUST_PASS_IN_STACK): New.
6645         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
6646         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
6647         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
6648         (ix86_must_pass_in_stack): Make static.
6649         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
6650         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
6651         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
6652         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
6653         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
6654         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
6655         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
6656         (mcore_must_pass_on_stack): Remove.
6657         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
6658         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
6659         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
6660         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
6661         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
6662         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
6663         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
6664         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
6665         (TARGET_MUST_PASS_IN_STACK): New.
6666         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
6667         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
6668         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
6669         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
6670         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
6671         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
6672         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
6673         MUST_PASS_IN_STACK.
6674
6675         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
6676         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
6677         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
6678         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
6679         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
6680         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
6681         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
6682         config/xtensa/xtensa.c: Use target hook.
6683
6684 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
6685
6686         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
6687         * configure: Rebuilt.
6688
6689 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
6690
6691         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
6692         * config/mips/mips.h (mips_reg_names): Don't declare.
6693         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
6694         (TARGET_NAME_REGS): Delete.
6695         (TARGET_SWITCHES): Remove -mrnames.
6696         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
6697         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
6698         in REGISTER_NAMES.
6699         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
6700         (override_options): Remove handling of TARGET_NAME_REGS.
6701
6702 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
6703
6704         * config/mips/mips.h (TARGET_*): Boolify.
6705
6706 2004-07-12  Nick Clifton  <nickc@redhat.com>
6707
6708         * config.gcc: Add sh-*-symbianelf target.
6709         * config/sh/sh.c: Add new target macros:
6710         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
6711         TARGET_CXX_IMPORT_EXPORT_CLASS.
6712         (sh_file_start): Create a definition of the .directive section.
6713         (sh_attribute): Add dllimport and dllexport attributes.
6714         * config/sh/symbian-pre.h: New file.
6715         * config/sh/symbian-post.h: New file.
6716         * config/sh/symbian.c: New file. Contains Symbian specific
6717         functions.
6718         * config/sh/sh-protos.h: Add prototypes for new functions
6719         provided by symbian.c.
6720         * config/sh/t-symbian: New file.
6721         * doc/extend.texi: Document support for dllimport and dllexport
6722         attributes by the sh-symbianelf target.
6723
6724 2004-07-12  James E Wilson  <wilson@specifixinc.com>
6725
6726         * Makefile.in (AR): Use @AR@ not ar.
6727         (NM): New.
6728         (AR_FOR_TARGET): Use $(AR) not ar for native.
6729         (NM_FOR_TARGET): Use $(NM) not nm for native.
6730         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
6731         * configure: Regenerate.
6732
6733 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
6734
6735         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
6736         special case.
6737         (ashldi3_sp64): Likewise.
6738
6739 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6740
6741         PR target/16477
6742         * pa.c (function_arg): Update comment.
6743         * pa.h (BLOCK_REG_PADDING): Define.
6744
6745 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6746
6747         PR tree-optimization/16461
6748         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
6749         arguments of phi nodes.
6750
6751 2004-07-12  Devang Patel  <dpatel@apple.com>
6752
6753         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
6754
6755 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
6756
6757         * function.c (expand_function_start): Ensure r_save is in Pmode.
6758         * calls.c (prepare_call_address): Ensure static_chain_value is
6759         in Pmode.
6760         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
6761         r_save_area are in Pmode.
6762         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
6763         fnaddr, and static_chain are in Pmode.
6764
6765 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
6766
6767         PR target/16445
6768         * config/ia64/ia64.c (bundling): Don't count ignored insns.
6769
6770 2004-07-12  Richard Henderson  <rth@redhat.com>
6771
6772         * target.h (struct gcc_target): Move gimplify_va_arg_expr
6773         next to build_builtin_va_list.
6774         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
6775         * builtins.c (gimplify_va_arg_expr): Likewise.
6776         * gimplify.c (copy_if_shared_r): Likewise.
6777
6778 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
6779
6780         * passes.c (rest_of_decl_compilation): Don't defer call of
6781         assemble_variable if its DECL_RTL is already set.
6782
6783 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
6784
6785         * cfgloop.h (struct loop): Add nb_iterations field.
6786         (current_loops): Declare.
6787         * tree-chrec.c (chrec_not_analyzed_yet,
6788         chrec_dont_know, chrec_known, count_ev_in_wider_type,
6789         chrec_contains_symbols_defined_in_loop): Remove the temporary
6790         hooks.
6791         * tree-flow-inline.h (loop_containing_stmt): New function.
6792         * tree-scalar-evolution.c: Add implementation.
6793         * tree-scalar-evolution.h: Add declarations.
6794
6795 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
6796
6797         PR rtl-optimization/15921
6798         * Makefile.in (global.o): Add recog.h.
6799
6800         * global.c (recog.h): Add the include-clause.
6801         (bb_info): New member earlyclobber.
6802         (allocate_bb_info, free_bb_info): Initialize/finish the new
6803         member.
6804         (earlyclobber_regclass, earlyclobber_regclass_length): The new
6805         global variables.
6806         (check_earlyclobber, regclass_intersect,
6807         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
6808         New functions.
6809         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
6810         (make_accurate_live_analysis): Modify pavin.
6811
6812 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
6813
6814         * tree-cfg.c (find_taken_edge): Statically compute the truth
6815         value of a predicate comparing an SSA_NAME to itself.
6816
6817 2004-07-12  Roger Sayle  <roger@eyesopen.com>
6818
6819         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
6820         rs6000 doesn't have shift-and-add or shift-and-sub instructions
6821         by returning the cost of a multiplication plus an addition.
6822
6823 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
6824
6825         PR tree-optimization/14107
6826         * gimplify.c (gimplify_return_expr): Accept a
6827         RETURN_EXPR with an error argument.
6828         * tree-optimize.c (init_tree_optimization_passes):
6829         Run pass_warn_function_return at -O0.
6830
6831 2004-07-12  Roger Sayle  <roger@eyesopen.com>
6832
6833         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
6834         index entry.
6835
6836 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
6837
6838         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
6839         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6840         * config/mips/3000.md: Add copyright notice.  Remove automota and
6841         function units; use generic ones instead.  Only define reservations
6842         for things that are different from generic.md.  Extend each clause
6843         to include r3900.
6844         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
6845         * config/mips/mips.md: Include them. Remove define_function_units.
6846         (alu, imuldiv): New automata and units.
6847
6848 2004-07-12  Ben Elliston  <bje@au.ibm.com>
6849
6850         * doc/invoke.texi (Optimize Options): Document -frename-registers
6851         not being enabled by default at -O3.
6852
6853 2004-07-11  Roger Sayle  <roger@eyesopen.com>
6854
6855         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
6856         floating point additions, to keep real immediate constant positive.
6857         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
6858         into X + C, and leave positive real constants as X - C.
6859
6860 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6861
6862         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
6863
6864 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6865
6866         PR tree-optimization/15654
6867         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
6868
6869 2004-07-11  Roger Sayle  <roger@eyesopen.com>
6870
6871         * builtins.c (fold_builtin_fputs): Don't bother converting the
6872         return type to integer_type_node, as we've already checked that
6873         the result will be ignored.
6874
6875         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
6876         that signed addition, subtraction, multiplication, division,
6877         remainder, negation and absolute value may potentially trap.
6878
6879         * fold-const.c (fold_ignored_result): New function to strip
6880         non-side-effecting tree nodes from an expression whose result
6881         is ignored.
6882         (fold_convert): Call fold_ignored_result when casting a value
6883         to VOID_TYPE.
6884         (omit_one_operand):  Call fold_ignored_result on the "omitted"
6885         operand when building a COMPOUND_EXPR.
6886         (pedantic_omit_one_operand): Likewise.
6887         * tree.h (fold_ignored_result): Prototype here.
6888         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
6889         when we're going to ignore the result.
6890
6891 2004-07-11  Richard Henderson  <rth@redhat.com>
6892
6893         PR tree-opt/16383
6894         * tree-ssa-ccp.c (fold_stmt_r): Split out...
6895         * tree.c (fields_compatible_p, find_compatible_field): ... new.
6896         * tree.h (fields_compatible_p, find_compatible_field): Declare.
6897         * tree-sra.c (sra_hash_tree): Hash fields by offset.
6898         (sra_elt_eq): Use fields_compatible_p.
6899         (generate_one_element_ref): Use find_compatible_field.
6900
6901 2004-07-11  Richard Henderson  <rth@redhat.com>
6902
6903         PR tree-opt/16422
6904         * tree-sra.c (generate_one_element_init): New.
6905         (generate_element_init): Use it.
6906         (scalarize_init): Push/pop gimplify context around it.
6907         (find_new_referenced_vars_1, find_new_referenced_vars): New.
6908         * gimplify.c (gimplify_expr): Allow SSA_NAME.
6909
6910 2004-07-11  Roger Sayle  <roger@eyesopen.com>
6911
6912         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
6913         combine.c's combine_insn_cost.
6914         * rtl.h (insn_rtx_cost): Prototype here.
6915         * combine.c (combine_insn_cost): Delete function.
6916         (combine_validate_cost): Update callers of combine_insn_cost to
6917         call insn_rtx_cost instead.
6918         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
6919         requesting the rtx_cost of call and/or jump instructions.
6920
6921         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
6922         rtx_cost directly.  Don't request/use the cost of call or jump
6923         instructions.  Return -1 if the cost of any instruction can't be
6924         determined (or the BB contains a function call).
6925         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
6926         -1 (i.e. can't determine the cost of any instruction or the basic
6927         block contains a subroutine call).
6928         (find_if_case_2): Likewise.
6929
6930 2004-07-11  Roger Sayle  <roger@eyesopen.com>
6931
6932         * rs6000.c (struct processor_costs): Change semantics of fields to
6933         include the COST_N_INSNS scaling, and update all initializers.
6934         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
6935         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
6936         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
6937         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
6938
6939 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6940
6941         * LANGUAGES: Remove obsolete information.
6942
6943 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
6944
6945         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
6946         SIGBUS signal frames, the PSW address points *to* the faulting
6947         instruction, not after it.
6948
6949 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
6950
6951         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
6952         added to TLS symbol addresses.
6953
6954 2004-07-11  Richard Henderson  <rth@redhat.com>
6955
6956         * expmed.c (init_expmed): Use stack-local structures for
6957         temporary rtl.  Don't recognize shifts.
6958
6959 2004-07-11  Richard Henderson  <rth@redhat.com>
6960
6961         * expr.c (store_expr): Don't fiddle subreg promotion for types
6962         with precision smaller than the mode.
6963
6964 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6965
6966         * tree.h (all_types_permanent): Remove.
6967
6968 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6969
6970         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
6971         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
6972         * langhooks.c (lhd_clear_binding_stack): Remove.
6973         * langhooks-def.h (lhd_clear_binding_stack,
6974         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
6975         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
6976         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
6977         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
6978         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
6979         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
6980         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
6981         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
6982         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
6983         * tree.h (poplevel): Don't declare.
6984         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
6985         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
6986         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
6987         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
6988         Remove.
6989
6990 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6991
6992         PR tree-optimization/16437
6993         * c-common.c (shorten_compare): Don't mark result of conversion to
6994         narrower signed type as overflowing.
6995         * fold-const.c (decode_field_reference): Determine whether
6996         signedness comes from outer type using precision rather than size.
6997
6998 2004-07-11  Phil Edwards  <phil@codesourcery.com>
6999
7000         * configure.ac:  Alphabetize --enable-checking list, add
7001         missing valgrind entry.
7002         * configure:  Regenerate.
7003
7004 2004-07-11  Phil Edwards  <phil@codesourcery.com>
7005
7006         * doc/install.texi (Testing):  Fix syntax in "make check" example.
7007
7008 2004-07-10  James E Wilson  <wilson@specifixinc.com>
7009
7010         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
7011
7012 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7013
7014         PR rtl-optimization/16001
7015         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
7016         niter_expr.
7017
7018 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
7019
7020         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
7021
7022 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
7023             James Morrison  <phython@gcc.gnu.org>
7024
7025         * doc/contrib.texi (Contributors): Add gfortran contributors and
7026         fix a couple of typos.
7027
7028 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7029
7030         PR rtl-optimization/15387
7031         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
7032         to incoming args space correctly.
7033
7034 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7035
7036         * pa.c (output_indirect_call): Only use %r2 as the link register in
7037         indirect calls with the long PA 2.0 pc-relative branch.
7038
7039 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
7040
7041         * config/i386/i386.c (override_options): Pick a 64-bit CPU
7042         for the default tuning if TARGET_64BIT.
7043
7044 2004-07-10  Richard Henderson  <rth@redhat.com>
7045
7046         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
7047         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
7048
7049 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
7050
7051         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
7052         * expmed.c (store_bit_field, extract_bit_field): Remove last
7053         argument.
7054         * builtins.c (expand_builtin_signbit): Adjust callers.
7055         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
7056         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
7057         * ifcvt.c (noce_emit_move_insn): Likewise.
7058         * stmt.c (expand_return): Likewise.
7059         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
7060         store_field, expand_expr_real_1): Likewise.
7061
7062 2004-07-10  Richard Henderson  <rth@redhat.com>
7063
7064         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
7065
7066 2004-07-09  Mike Stump  <mrs@apple.com>
7067
7068         * config/darwin.c (no_dead_strip): Add.
7069         (HAVE_DEAD_STRIP): Add.
7070         (darwin_emit_unwind_label): Ensure that we don't dead code strip
7071         the .eh label.
7072
7073 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7074
7075         * tree-ssa-loop-im.c: New file.
7076         * Makefile.in (tree-ssa-loop-im.o): Add.
7077         * cfgloop.c (superloop_at_depth): New function.
7078         * cfgloop.h (superloop_at_depth): Declare.
7079         * common.opt (ftree-lim): New flag.
7080         * expr.c (array_ref_up_bound): New function.
7081         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
7082         * timevar.def (TV_LIM): New timevar.
7083         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
7084         computing immediate uses of a phi node.
7085         * tree-flow.h (struct tree_ann_common_d): Add aux field.
7086         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
7087         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
7088         * tree-pass.h (pass_lim): Declare.
7089         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
7090         functions.
7091         (pass_lim): New pass structure.
7092         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
7093         * tree.c (in_array_bounds_p): New function.
7094         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
7095         (in_array_bounds_p, array_ref_up_bound): Declare.
7096         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
7097         * doc/passes.texi (tree-ssa-loop-im.c): Document.
7098
7099 2004-07-09  Richard Henderson  <rth@redhat.com>
7100
7101         * builtins.c (expand_builtin_stpcpy): Don't modify len.
7102
7103         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
7104         with prejudice.
7105
7106 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
7107
7108         * flags.h: Delete redundant prototypes that are being generated
7109         in options.h from common.opt.
7110         * common.opt: Add in the expository comments formerly in flags.h.
7111
7112 2004-07-09  Jan Beulich  <jbeulich@novell.com>
7113
7114         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
7115         available for use only when TARGET_MMX/_SSE is set, and check for
7116         variable argument function if any register count is non-zero.
7117         (function_arg): Correctly suppress repeated warnings for passing SSE
7118         vectors are arguments without SSE enabled.
7119         (ix86_function_arg_boundary): Without SSE enabled, the use of what
7120         would be SSE register modes does no longer influence the alignment.
7121
7122 2004-07-09  Richard Henderson  <rth@redhat.com>
7123
7124         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
7125         Always align upward to arg boundary.  Use size_in_bytes/round_up.
7126         Maintain type-correctness of constants.
7127         * stor-layout.c (round_up, round_down): Special-case powers of 2.
7128
7129 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
7130
7131         * config/sparc/sparc.c (*_costs): Scale instruction costs
7132         by COSTS_N_INSNS.
7133         (sparc_rtx_costs): Adjust as appropriate.
7134
7135 2004-07-09  Jan Beulich  <jbeulich@novell.com>
7136
7137         * config/i386/mm3dnow.h: New.
7138         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
7139
7140 2004-07-09  Richard Henderson  <rth@redhat.com>
7141
7142         * simplify-rtx.c (simplify_const_relational_operation): Only
7143         look at bounds of scalar integers.
7144
7145 2004-07-09  Jan Beulich  <jbeulich@novell.com>
7146
7147         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
7148
7149 2004-07-09  Andrew Pinski  <apinski@apple.com>
7150
7151         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
7152         always referenced.
7153         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
7154         UOBJC_METACLASS_decl.
7155
7156 2004-07-09  James E Wilson  <wilson@specifixinc.com>
7157
7158         PR target/16364
7159         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
7160         do return a parallel if hfa_mode == XFmode and mode == TImode.
7161
7162 2004-07-09  Jan Beulich  <jbeulich@novell.com>
7163
7164         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
7165         permissible for unary plus.
7166
7167 2004-07-09  Jan Beulich  <jbeulich@novell.com>
7168
7169         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
7170         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
7171         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
7172         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
7173         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
7174         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
7175         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
7176         (BUILTIN_xxxIMAX): New.
7177         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
7178         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
7179         BUILT_IN_PARITYIMAX.
7180
7181 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
7182
7183         * config/sparc/sparc.h (processor_costs): Define.
7184         (sparc_costs): Declare.
7185         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
7186         hypersparc_costs, sparclet_costs, ultrasparc_costs,
7187         ultrasparc3_costs): New.
7188         (sparc_override_options): Set sparc_costs as appropriate.
7189         (sparc_rtx_costs): Use sparc_costs instead of messy
7190         conditionals.
7191
7192 2004-07-09  Steven Bosscher  <stevenb@suse.de>
7193
7194         * doc/md.texi (Processor pipeline description): Mention that
7195         the old pipeline description is deprecated.
7196
7197         * config/rs6000/7450.md (automaton ppc7450): Split up, move
7198         mciu_7450 function unit to...
7199         (automaton ppc7450mciu): ...new automaton.
7200
7201         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
7202         (schedule_block): Don't consider inserting bubbles.
7203         (sched_init): Don't initialize DFA bubbles.
7204         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
7205         TARGET_SCHED_DFA_BUBBLE): Remove.
7206         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
7207         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
7208         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
7209
7210         * stmt.c (conditional_context): Remove prototype.
7211         * tree.h (conditional_context): Remove.
7212         * tree-cfg.c (pre_insert_on_edge): Remove.
7213
7214         * c-common.h (c_expand_asm_operands): Remove prototype.
7215         * c-typeck.c (c_expand_asm_operands): Remove.
7216
7217 2004-07-09  Jan Beulich  <jbeulich@novell.com>
7218
7219         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
7220         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
7221         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
7222         and V8QI are class SSE. All sufficiently small remaining vector modes
7223         must be passed in one or two integer registers.
7224         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
7225         returned in memory.
7226         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
7227         __builtin_ia32_pmuludq128 have non-uniform argument and return types
7228         and must thus be handled explicitly.
7229         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
7230         MMX and XMM regs.
7231         (movv8qi_internal, movv4hi_internal, movv2si_internal,
7232         movv2sf_internal): Permit moving between MMX and XMM registers (since
7233         MMX areguments and return values are passed in XMM registers).
7234         (sse2_umulsidi3): Correct type and mode.
7235
7236 2004-07-09  Richard Henderson  <rth@redhat.com>
7237
7238         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
7239
7240 2004-07-09  Eric Christopher  <echristo@redhat.com>
7241
7242         * config/rs6000/40x.md: Split into two automatons.
7243
7244 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
7245             Andrew Pinski  <apinski@apple.com>
7246
7247         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
7248         on when we have more than one input file.
7249         (c_common_parse_file): Restore loop over all input files.
7250         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
7251
7252         * c-decl.c (set_type_context): New function.
7253         (pop_scope): Use it to set context of types.  When we
7254         encounter a TYPE_DECL, set the context of the attached type too.
7255         (pop_file_scope): Don't call cpp_undef_all here.
7256         (diagnose_mismatched_decls): Do not complain about a second
7257         definition of an 'extern inline' function if it's not in the
7258         same translation unit.  Do not complain about inline
7259         declaration after use if the use was in a different
7260         translation unit.
7261         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
7262         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
7263         the external scope.
7264         (pushdecl_top_level): Likewise.
7265         (grokdeclarator): Clarify what is going on with setting
7266         DECL_EXTERNAL on function types, a little.
7267         (c_write_global_declarations): Don't do anything if
7268         -fsyntax-only or errors have been encountered.
7269
7270 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
7271
7272         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
7273
7274 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7275
7276         PR target/16459
7277         * pa.c (output_indirect_call): Use %r2 as the link register when
7278         calling $$dyncall with a pc-relative branch.
7279
7280 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
7281
7282         * doc/install.texi (Binaries): Mention OpenPKG.
7283
7284 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
7285
7286         Fix PR tree-optimization/15555
7287         * tree-dfa.c (dump_variable): If the variable is a pointer
7288         SSA_NAME, also dump its points-to information.
7289         * tree-flow.h (struct ptr_info_def): Add field
7290         is_dereferenced.
7291         (dump_points_to_info_for): Declare.
7292         (debug_points_to_info_for): Declare.
7293         * tree-optimize.c (init_tree_optimization_passes): Add a
7294         second alias analysis pass after DOM2.
7295         Move pass_del_pta to a later spot.
7296         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
7297         create a name tags when we find a dereferenced pointer.  Just
7298         mark the pointer dereferenced.
7299         (collect_points_to_info_for): Move code to clear points-to
7300         information to create_name_tags.
7301         (create_name_tags): New function.
7302         (compute_flow_sensitive_aliasing): Call it.
7303         (setup_pointers_and_addressables): Mark type tags for renaming
7304         here instead of ...
7305         (create_memory_tag): ... here.
7306         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
7307         (dump_points_to_info_for): Declare extern.
7308         (debug_points_to_info_for): New function.
7309
7310 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
7311
7312         * config/arc/arc.md: Switch to DFA-based scheduler description.
7313         * config/arc/arc.c: Switch to DFA-based scheduler description.
7314
7315 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
7316
7317         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
7318         pointer.
7319
7320 2004-07-09  Richard Henderson  <rth@redhat.com>
7321
7322         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
7323         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7324         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
7325         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
7326
7327         * config/v850/v850-protos.h (v850_va_arg): Remove.
7328         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7329         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
7330         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
7331         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
7332         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
7333
7334 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
7335
7336         PR target/12133
7337         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
7338         and DImode to use +/-4k offset.
7339
7340 2004-07-09  Richard Henderson  <rth@redhat.com>
7341
7342         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
7343         Remove.
7344         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7345         (xstormy16_gimplify_va_arg_expr): Rewrite from
7346         xstormy16_expand_builtin_va_arg.
7347         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
7348
7349         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
7350         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
7351
7352         * config/sh/sh-protos.h (sh_va_arg): Remove.
7353         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7354         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
7355         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
7356
7357         * config/pa/pa-protos.h (hppa_va_arg): Remove.
7358         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7359         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
7360         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
7361
7362         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
7363         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7364         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
7365         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
7366
7367 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
7368
7369         * config/sparc/sparc.md (return): Rewrite length formula.
7370         * config/sparc/sparc.c (output_return): Pass 1 as 5th
7371         argument to final_scan_insn when in a delay slot.
7372         (output_sibcall): Likewise.
7373
7374 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
7375
7376         * arm.c (arm_cpp_interwork): New variable.
7377         (arm_override_options): Set it if TARGET_INTERWORK was on the command
7378         line.
7379         * arm.h (arm_cpp_interwork): Declare it.
7380         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
7381         __THUMB_INTERWORK__ in the preprocessor.
7382
7383 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
7384
7385         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
7386
7387 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
7388
7389         PR target/16416
7390         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
7391         Override default settings to account for -m32 and -m64.
7392
7393 2004-07-08  Randolph Chung  <tausq@debian.org>
7394
7395         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
7396
7397 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
7398
7399         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
7400         before comparing it as such.
7401
7402 2004-07-08  Richard Henderson  <rth@redhat.com>
7403
7404         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
7405         temporary.  Use bit arithmetic to align.
7406
7407 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
7408
7409         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
7410         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
7411         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
7412         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
7413         add_labels_and_missing_jumps, find_jump_block,
7414         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
7415         Likewise.
7416         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
7417         link_btr_uses, move_btr_def): Likewise.
7418         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
7419         expand_builtin_expect_jump): Likewise.
7420         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
7421         * calls.c (expand_call, emit_library_call_value_1): Likewise.
7422         * cfganal.c (forwarder_block_p): Likewise.
7423         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
7424         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
7425         find_bb_boundaries): Likewise.
7426         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
7427         merge_blocks_move_predecessor_nojumps,
7428         merge_blocks_move_successor_nojumps, insns_match_p,
7429         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
7430         try_optimize_cfg): Likewise.
7431         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
7432         * cfglayout.c (skip_insns_after_block, label_for_bb,
7433         record_effective_endpoints, insn_locators_initialize,
7434         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
7435         * cfgmainloop.c (create_loop_notes): Likewise.
7436         * cfgrtl.c (delete_insn, delete_insn_chain,
7437         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
7438         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
7439         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
7440         redirect_branch_edge, force_nonfallthru_and_redirect,
7441         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
7442         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
7443         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
7444         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
7445         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
7446         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
7447         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
7448         * combine.c (combine_instructions, can_combine_p, try_combine,
7449         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
7450         distribute_notes, distribute_links, insn_cuid): Likewise.
7451         * cse.c (fold_rtx, cse_insn, cse_around_loop,
7452         invalidate_skipped_block, cse_set_around_loop,
7453         cse_end_of_basic_block, cse_main, cse_basic_block,
7454         cse_condition_code_reg): Likewise.
7455         * cselib.c (cselib_process_insn): Likewise.
7456         * ddg.c (create_ddg): Likewise.
7457         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
7458         Likewise.
7459         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
7460         gen_label_die, dwarf2out_var_location): Likewise.
7461         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
7462         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
7463         last_call_insn, active_insn_p, next_label, prev_label,
7464         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
7465         add_insn_before, remove_insn, add_function_usage_to,
7466         reorder_insns, find_line_note, remove_unnecessary_notes,
7467         emit_insn_after_1, classify_insn): Likewise.
7468         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
7469         connect_post_landing_pads, sjlj_mark_call_sites,
7470         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
7471         can_throw_internal, can_throw_external, set_nothrow_function_flags,
7472         convert_to_eh_region_ranges): Likewise.
7473         * explow.c (optimize_save_area_alloca): Likewise.
7474         * expr.c (expand_expr_real): Likewise.
7475         * final.c (insn_current_reference_address, compute_alignments,
7476         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
7477         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
7478         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
7479         propagate_block_delete_insn, propagate_one_insn,
7480         init_propagate_block_info, propagate_block, libcall_dead_p,
7481         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
7482         Likewise.
7483         * function.c (instantiate_virtual_regs, reorder_blocks_1,
7484         expand_function_start, expand_function_end, contains,
7485         thread_prologue_and_epilogue_insns,
7486         reposition_prologue_and_epilogue_notes): Likewise.
7487         * gcse.c (constprop_register, bypass_conditional_jumps,
7488         insert_insn_end_bb, gcse_after_reload): Likewise.
7489         * genemit.c (gen_expand, gen_split): Likewise.
7490         * genpeep.c (gen_peephole, main): Likewise.
7491         * global.c (build_insn_chain): Likewise.
7492         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
7493         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
7494         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
7495         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
7496         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
7497         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
7498         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
7499         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
7500         dead_or_predicable): Likewise.
7501         * integrate.c (try_constants): Likewise.
7502         * jump.c (rebuild_jump_labels, cleanup_barriers,
7503         purge_line_number_notes, init_label_info, mark_all_labels,
7504         squeeze_notes, get_label_before, get_label_after,
7505         reversed_comparison_code_parts, simplejump_p, pc_set,
7506         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
7507         delete_barrier, delete_prior_computation, delete_computation,
7508         delete_related_insns, delete_for_peephole, redirect_jump):
7509         Likewise.
7510         * lcm.c (optimize_mode_switching): Likewise.
7511         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
7512         Likewise.
7513         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
7514         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
7515         * loop-iv.c (simplify_using_assignment): Likewise.
7516         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
7517         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
7518         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
7519         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
7520         check_insn_for_givs, check_final_value, update_giv_derive,
7521         basic_induction_var, product_cheap_p, check_dbra_loop,
7522         loop_insn_first_p, last_use_this_basic_block,
7523         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
7524         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
7525         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
7526         sms_schedule_by_order): Likewise.
7527         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
7528         * postreload.c (reload_cse_simplify_operands, reload_combine,
7529         reload_cse_move2add): Likewise.
7530         * predict.c (can_predict_insn_p, estimate_probability,
7531         expected_value_to_br_prob, process_note_predictions): Likewise.
7532         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
7533         * profile.c (branch_prob): Likewise.
7534         * ra-build.c (live_out_1, livethrough_conflicts_bb,
7535         detect_webs_set_in_cond_jump): Likewise.
7536         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
7537         ra_print_rtl_with_bb): Likewise.
7538         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
7539         * recog.c (next_insn_tests_no_inequality, find_single_use,
7540         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
7541         * reg-stack.c (next_flags_user, record_label_references,
7542         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
7543         compensate_edge, convert_regs_1): Likewise.
7544         * regclass.c (scan_one_insn): Likewise.
7545         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
7546         regmove_optimize, fixup_match_1, single_set_for_csa,
7547         combine_stack_adjustments_for_block): Likewise.
7548         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
7549         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
7550         find_equiv_reg): Likewise.
7551         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
7552         reload_as_needed, emit_input_reload_insns, do_output_reload,
7553         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
7554         Likewise.
7555         * reorg.c (find_end_label, emit_delay_sequence,
7556         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
7557         get_jump_flags, rare_destination, mostly_true_jump,
7558         try_merge_delay_insns, redundant_insn, own_thread_p,
7559         fill_simple_delay_slots, fill_slots_from_thread,
7560         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
7561         dbr_schedule): Likewise.
7562         * resource.c (find_basic_block, next_insn_no_annul,
7563         find_dead_or_set_registers, mark_target_live_regs): Likewise.
7564         * rtl.h (RTX_PREV): Likewise.
7565         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
7566         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
7567         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
7568         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
7569         tablejump_p, computed_jump_p, insns_safe_to_move_p,
7570         find_first_parameter_load, can_hoist_insn_p): Likewise.
7571         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
7572         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
7573         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
7574         schedule_ebbs): Likewise.
7575         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
7576         is_conditionally_protected, can_schedule_ready_p,
7577         add_branch_dependences, debug_dependencies): Likewise.
7578         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
7579         Likewise.
7580         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
7581         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
7582         set_dominates_use, ujump_to_loop_cont): Likewise.
7583         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
7584         * varasm.c (output_constant_pool_1): Likewise.
7585
7586 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7587
7588         * tree-scalar-evolution.c: New file.
7589         * tree-scalar-evolution.h: New file.
7590         * tree-ssa-loop-niter.c: New file.
7591         * Makefile.in (SCEV_H): New.
7592         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
7593         * cfgloop.h (struct loop): Add bounds field.
7594         * tree-flow.h (struct tree_niter_desc): New type.
7595         (number_of_iterations_cond, number_of_iterations_exit,
7596         loop_niter_by_eval, find_loop_niter_by_eval,
7597         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
7598         free_numbers_of_iterations_estimates): Declare.
7599         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
7600         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
7601         * doc/invoke.texi (max-iterations-to-track): Document.
7602
7603 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7604
7605         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
7606         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
7607         (MODE_AFTER): Add cast appropriately.
7608         * config/sh/sh.md (movdi splitter): Likewise.
7609         (casesi_worker_2): Add const qualifier appropriately.
7610         (eh_return): Remove unused variable.
7611         (insv): Initialize v;
7612
7613 2004-07-08  Richard Henderson  <rth@redhat.com>
7614
7615         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
7616         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7617         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
7618         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
7619         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
7620
7621         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
7622         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7623         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
7624         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
7625
7626         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
7627         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7628         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
7629         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
7630
7631         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
7632         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7633         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
7634         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
7635
7636         * config/i860/i860-protos.h (i860_va_arg): Remove.
7637         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7638         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
7639         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
7640
7641 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
7642
7643         * system.h: Prototype getpagesize if missing.
7644         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
7645         * configure: Regenerate.
7646         * config.in: Regenerate.
7647
7648 2004-07-08  Richard Henderson  <rth@redhat.com>
7649
7650         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
7651         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7652         (fr30_gimplify_va_arg_expr): New.
7653         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
7654         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
7655
7656 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
7657
7658         PR target/16414
7659         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
7660         of asm_noperands result.
7661
7662 2004-07-08  Richard Henderson  <rth@redhat.com>
7663
7664         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
7665         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7666         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
7667         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
7668
7669 2004-07-08  Richard Henderson  <rth@redhat.com>
7670
7671         * builtins.c (ind_gimplify_va_arg_expr): New.
7672         * tree.h (ind_gimplify_va_arg_expr): Declare.
7673         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
7674
7675 2004-07-08  Jan Beulich  <jbeulich@novell.com>
7676
7677         * expmed.c (extract_bit_field): Correct condition to use vec_extract
7678         patterns also on vector elements other than the first one.
7679         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
7680         break statements.
7681
7682 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
7683
7684         * config/rs6000/darwin-ldouble.c: Correct reference
7685         to the Linnainmaa paper.
7686
7687 2004-07-08  Richard Henderson  <rth@redhat.com>
7688
7689         * config/arc/arc-protos.h (arc_va_arg): Remove.
7690         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7691         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
7692         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
7693
7694         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
7695         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
7696         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
7697         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
7698
7699 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7700
7701         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
7702
7703 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
7704
7705         * c-decl.c (static_ctors, static_dtors): Make static.
7706         (pop_file_scope): Call c_common_write_pch and
7707         cgraph_finalize_compilation_unit here.
7708         (build_cdtor): Moved here from c-objc-common.c; simplify.
7709         (c_write_global_declarations_1): Clarify comment.
7710         (c_write_global_declarations): Close the external scope before
7711         doing anything else.  Call build_cdtor, cgraph_optimize, and
7712         mudflap_finish_file here.
7713         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
7714         Clarify comment.
7715         * c-objc-common.c: No need to include cgraph.h.
7716         (build_cdtor): Moved to c-decl.c.
7717         (c_objc_common_finish_file): Delete.
7718         * c-tree.h: Update to match.
7719         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
7720         (generate_static_references): Set TREE_USED before calling finish_decl.
7721         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
7722         on the static_instances_decl.
7723
7724 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
7725
7726         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
7727         decls when there is only one input translation unit.
7728         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
7729         change of 2004-07-05; do not treat declarations with
7730         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
7731         * opts.c (cur_in_fname): Delete.
7732         * opts.h: Likewise.
7733         * tree.c: Revert changes of 2004-07-05; no special treatment
7734         for TRANSLATION_UNIT_DECLs.
7735         * Makefile.in (tree.o): Update dependencies.
7736
7737 2004-07-08  Roger Sayle  <roger@eyesopen.com>
7738
7739         * builtins.c (fold_builtin_strcpy): Merge functionality from
7740         simplify_builtin_strcpy.  Add additional len argument.  No longer
7741         static.  Remove function prototype.
7742         (fold_builtin_strncpy): Likewise integrate functionality from
7743         simplify_builtin_strncpy.  Add additional slen argument.  No
7744         longer static.  Remove function prototype.
7745         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
7746         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
7747         types of "ignore" and "unlocked" parameters to bool.
7748         (fold_builtin_1):  Add additional ignore argument.  Call renamed
7749         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
7750         builtins.  Update arguments to fold_builtin_strncpy and
7751         fold_builtin_strcpy.  Add function prototype.
7752         (fold_builtin): Add additional Boolean ignore argument to pass
7753         to fold_builtin_1.
7754         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
7755         and fold_builtin_strncpy instead of simplify_builtin_fputs,
7756         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
7757
7758         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
7759         simplify_builtin_strncpy): Delete function prototypes.
7760         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
7761         fold_builtin_strncpy): Add function prototypes here.
7762         (fold_builtin): Update function prototype with new "bool ignore".
7763
7764         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
7765         (ccp_fold_builtin):  Update call to fold_builtin.  Call
7766         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
7767         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
7768         simplify_builtin_strncpy respectively.
7769         * fold-const.c (fold): Update call to fold_builtin.
7770
7771 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
7772
7773         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
7774         to strcpy.
7775
7776         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
7777         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
7778         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
7779         * calls.c: Remove ifdefs of macros above.
7780         * functions.c: Likewise.
7781         * expr.c: Likewise.
7782
7783 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7784
7785         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
7786         (arch attribute): Delete.
7787         (current_function_calls_alloca attribute): Rename into calls_alloca.
7788         (calls_eh_return): New attribute.
7789         (leaf_function): Likewise.
7790         (length attribute): Fix formula for sibcalls.
7791         (return insn): Correctly compute the 'length' attribute.
7792         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
7793
7794 2004-07-08  Richard Henderson  <rth@redhat.com>
7795
7796         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
7797         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
7798         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
7799         * tree-eh.c (lower_eh_constructs_1): Likewise.
7800         * tree-sra.c (sra_walk_modify_expr): Likewise.
7801         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
7802         (eliminate_unnecessary_stmts): Likewise.
7803         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
7804         * tree-tailcall.c (optimize_tail_call): Likewise.
7805         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
7806
7807 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
7808             Jakub Jelinek  <jakub@redhat.com>
7809
7810         * config/i386/i386.c (override_options): Enable
7811         SSE prefetches with -mtune, as long as we are
7812         compiling for i686 or higher.  All i686 processors
7813         accept SSE prefetches as NOPS, some i586's don't.
7814
7815 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7816
7817         PR target/10567
7818         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
7819
7820 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
7821
7822         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
7823         the handling of clobbering ASM_EXPRs.
7824
7825 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7826
7827         PR target/16430
7828         * config/sparc/sparc.c (function_value): In 64-bit mode,
7829         return the aggregates larger than 16 bytes like unions.
7830
7831 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7832
7833         PR target/16199
7834         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
7835         'temp' is zero, generate new pseudos as needed and emit the
7836         sequence of insns in single-assignment form.  Resync comments
7837         with code.
7838         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
7839         function before reload.
7840
7841 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
7842
7843         * vec.c (vec_assert_fail): Remove duplicate 'function'.
7844
7845         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
7846
7847         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
7848         Allocation is signed.
7849         (VEC_reserve): Return flag, allocation is signed.
7850
7851 2004-07-08  Richard Henderson  <rth@redhat.com>
7852
7853         * tree-ssa-ccp.c (fold_stmt): Get type directly from
7854         OBJ_TYPE_REF_OBJECT.
7855
7856 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7857             Neil Booth  <neil@daikokuya.co.uk>
7858
7859         PR c/2511
7860         PR c/3325
7861         * c-decl.c (finish_struct): Ensure bit-fields are given the
7862         correct type.
7863         * c-common.c (c_common_signed_or_unsigned_type): For C, require
7864         the precision to match as well as the mode.
7865         * expr.c (reduce_to_bit_field_precision): New function.
7866         (expand_expr_real_1): Reduce expressions of bit-field type to
7867         proper precision.
7868         * langhooks.h (reduce_bit_field_operations): New hook.
7869         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7870         Define.
7871         * c-lang.c, objc/objc-lang.c
7872         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
7873         * objc/objc-act.c (check_ivars): Convert types to bit-field types
7874         before checking.
7875         * tree.c (build_nonstandard_integer_type): New function.
7876         * tree.h (build_nonstandard_integer_type): New prototype.
7877         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
7878         conversions between integer and boolean types as useless.
7879
7880 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
7881
7882         * c-common.c (c_common_nodes_and_builtins): Do not
7883         create __builtin_ptrdiff_t and __builtin_size_t.
7884
7885 2004-07-08  Andrew Pinski  <apinski@apple.com>
7886
7887         * Makefile.in (libbackend.o): Add -combine to the gcc
7888         command line.
7889
7890 2004-07-08  Nick Clifton  <nickc@redhat.com>
7891
7892         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
7893         Set to -Os.
7894
7895 2004-07-08  Richard Henderson  <rth@redhat.com>
7896
7897         * except.c (expand_eh_region_start, expand_eh_region_end,
7898         expand_eh_handler, expand_eh_region_end_cleanup,
7899         expand_start_all_catch, expand_start_catch, expand_end_catch,
7900         expand_end_all_catch, expand_eh_region_end_allowed,
7901         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
7902         expand_eh_region_end_fixup): Remove.
7903         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
7904         cleanups, outer_cleanups, label_chain, exception_region.
7905         (struct goto_fixup): Remove stack_level, cleanup_list_list.
7906         (struct label_chain): Remove.
7907         (struct stmt_status): Remove x_stack_block_stack.
7908         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
7909         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
7910         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
7911         end_cleanup_deferral, last_cleanup_this_contour,
7912         containing_blocks_have_cleanups_or_stack_level,
7913         any_pending_cleanups): Remove.
7914         (expand_null_return_1): Take no arguments.
7915         (expand_label, expand_naked_return, expand_return,
7916         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
7917         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
7918         expand_end_case_type): Don't use any of them.
7919         * calls.c (expand_call): Likewise.
7920         * dojump.c (do_jump): Likewise.
7921         * function.c (expand_function_end): Likewise.
7922         * expr.c (store_expr, expand_expr_real_1): Likewise.
7923         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
7924         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
7925         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
7926         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
7927         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
7928         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
7929         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
7930         for WITH_CLEANUP_EXPR.
7931         (gimple_push_cleanup): Likewise.
7932         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
7933         * print-tree.c (print_node): Likewise.
7934         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
7935         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
7936         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
7937         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
7938         (GOTO_SUBROUTINE_EXPR): Remove.
7939         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
7940         (DECL_TOO_LATE): Remove.
7941         * except.h, tree.h: Update decls.
7942
7943 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
7944
7945         * explow.c (optimize_save_area_alloca): Do not accept parameters.
7946         * passes.c (rest_of_handle_final): Handle symout.
7947         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
7948         Push timevar here.
7949         (rest_of_handle_sched): Break out SMS.  Remove ifs for
7950         flag_schedule_insns and flag_modulo_sched.
7951         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
7952         collect at the end.
7953         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
7954         (rest_of_handle_partition_blocks, rest_of_handle_sms,
7955         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
7956         rest_of_handle_mode_switching, rest_of_handle_jump,
7957         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
7958         rest_of_handle_jump2, rest_of_handle_postreload,
7959         rest_of_handle_flow2, rest_of_clean_state,
7960         rest_of_handle_shorten_branches,
7961         rest_of_handle_prologue_epilogue,
7962         rest_of_handle_branch_target_load_optimize): New.
7963         (rest_of_compilation): Call the above.  Remove ggc_collect
7964         calls moved to rest_of_handle_*.
7965         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
7966
7967         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
7968         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
7969         * except.h (set_nothrow_function_flags): Update comment.
7970         * function.c (current_function_nothrow): Remove.
7971         * output.h (current_function_nothrow): Remove.
7972         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
7973         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
7974
7975 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7976
7977         PR bootstrap/16326
7978         * reorg.c: Revert 2004-06-30 change.
7979         (find_end_label): If HAVE_epilogue and !HAVE_return,
7980         return 0 instead of creating a label at the end of the insn chain.
7981         (optimize_skip): Account for the failure mode of find_end_label.
7982         (fill_simple_delay_slots): Likewise.
7983         (fill_slots_from_thread): Likewise.
7984         (relax_delay_slots): Likewise.
7985
7986 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
7987
7988         * tree-flow.h (addressable_vars): Declare.
7989         * tree-ssa-alias.c (addressable_vars): Define.
7990         (setup_pointers_and_addressables): Add addressable variables
7991         to addressable_vars.
7992         * tree-ssa-operands.c (get_stmt_operands): Move
7993         handling of ASM_EXPRs ...
7994         (get_asm_expr_operands): ... here.
7995         When the ASM_EXPR clobbers memory, also clobber addressable
7996         variables.
7997         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
7998         (delete_tree_ssa): Reset addressable_vars.
7999
8000 2004-07-07  Jan Beulich  <jbeulich@novell.com>
8001             Richard Henderson  <rth@redhat.com>
8002
8003         * varasm.c (assemble_variable): Use assemble_zeros for
8004         zero-initialized variables.
8005         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
8006         for SECCAT_BSS and SECCAT_TBSS.
8007
8008 2004-07-07  Jan Beulich  <jbeulich@novell.com>
8009
8010         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
8011
8012         * expmed.c (emit_store_flag): Also special-case double-word
8013         (in-)equality comparison against -1.
8014
8015         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
8016         passing arguments the containers for which are registers.
8017
8018         * calls.c (emit_library_call_value_1): Use mode of function parameter
8019         rather than that of argument since constants have none.
8020
8021 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
8022
8023         Introduce H8SX support.
8024         * expr.c (expand_strcpy): Renamed and moved to...
8025         * builtins.c (expand_movstr): ... here.  Tweak.
8026         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
8027         computed or has side effects.
8028         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
8029         unused, or if mempcpy fails.  Adjust the return value in the
8030         latter case.  Use movstr if everything else fails.
8031         * doc/md.texi (movstr): Document.
8032         (movmemM, clrmemM): Fix explanation of memory block operands.
8033         * config/h8300/h8300.md (stpcpy): Renamed to...
8034         (movstr): ... this.  Adjust.
8035         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
8036         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
8037         movmem* and clrstr* to clrmem*.
8038         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
8039         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
8040         GENERAL_REGS, always.
8041         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
8042         getting the stack pointer as addr.
8043         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
8044         from general_operand_dst.
8045         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
8046         variant of...
8047         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
8048         instead of requiring it to match only before reload.
8049         (stpcpy_internal_normal): New, normal-mode variant of...
8050         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
8051         `D' instead of requiring it to match only before reload.
8052         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
8053         mode argument.
8054         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
8055         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
8056         h8300_get_index.
8057         * config/h8300/h8300.md (attr type): Add call.
8058         (attr can_delay): If type is call, set it no.
8059         (call, call_value): Set type to call.
8060         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
8061         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
8062         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
8063         * tree.c (get_narrower): Don't narrow integral types into
8064         non-integral types.
8065         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
8066         frame_size *before* the first use.
8067         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
8068         on input.
8069         (peephole2): Don't widen instructions that push SP.  Move
8070         decrement of SP to the end of all stm-generating peepholes.
8071         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
8072         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
8073         and OR to set it to all ones.
8074         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
8075         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
8076         (call, call_value): Set can_delay to "no".
8077         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
8078         * config/h8300/h8300.md (extzv): Make subreg check more robust.
8079         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
8080         * config/h8300/h8300.md (*brabit): Remove.
8081         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
8082         zero_extract.  Use bit_memory_operand as the predicate for
8083         operand 1 and 'WU' as the constraint.  Check the difference
8084         between the base length and the final one when deciding which
8085         type of branch to use.
8086         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
8087         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
8088         Use convert_move to extend the result for TARGET_H8300SX.  Check
8089         for QImode memory references.  Optimize the case where the
8090         destination is a paradoxical subreg.
8091         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
8092         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
8093         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
8094         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
8095         * config/h8300/h8300.md: Include mova.md
8096         (length_table): Add mova and mova_zero.
8097         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
8098         after all constant addresses for '%R', '%X', '%T' and '%S'.
8099         (h8300_mova_length): New function.
8100         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
8101         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
8102         dependencies for s-config, etc.
8103         * config/h8300/gemova.sh: New file.
8104         * config/h8300/mova.md: Generated.
8105         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
8106         * config/h8300/h8300.c (h8300_bitfield_length): New.
8107         (nibble_operand): Adjust.
8108         (h8300_binary_length): Handle conditional binary op.
8109         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
8110         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
8111         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
8112         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
8113         constraints.  WU is introduced as a variant of U that requires a
8114         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
8115         * config/h8300/h8300.md (attr type): Added bitbranch.
8116         (attr length_table): Added bitfield and bitbranch.
8117         (attr length): Compute bitbranch length.
8118         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
8119         least-significant bit of a byte.
8120         (brabit, brabc, brabs): New.
8121         (insv, extzv): Emit bfst and bfld on H8300SX.
8122         (bfld, bfst, seq, sne): New.
8123         (bstzhireg, cmpstz, bstz, bistz): New.
8124         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
8125         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
8126         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
8127         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
8128         (h8sx_unary_memory_operator): New function.
8129         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
8130         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
8131         * config/h8300/h8300.md: Add peepholes to combine reloads and
8132         arithmetic insns.
8133         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
8134         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
8135         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
8136         (and?i, ior?i, xor?i): Likewise.
8137         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
8138         * config/h8300/h8300.c: Move enums and prototypes to head of file.
8139         Various whitespace fixes.
8140         (h8300_constant_length): New function, split out from...
8141         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
8142         (h8300_classify_operand): Use IN_RANGE.
8143         (h8300_classify_operand): Use h8300_constant_length.
8144         (h8300_short_move_mem_p): Tighten size check.
8145         (h8sx_mergeable_memrefs_p): Tighten equality check.
8146         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
8147         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
8148         for -msx.
8149         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
8150         * config/h8300/crtn.asm: Likewise.
8151         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
8152         if __H8300SX__ is defined.
8153         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
8154         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
8155         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
8156         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
8157         addresses as mode-dependent.
8158         * config/h8300/h8300.c (print_operand_address): Update call to
8159         h8300_get_index.
8160         (h8300_get_index): Take a mode argument.  Rework to fix an
8161         earlier misunderstanding.
8162         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
8163         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
8164         into a register if TARGET_H8300SX.
8165         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
8166         TARGET_H8300SX.  Also disable related define_splits.
8167         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
8168         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
8169         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
8170         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
8171         * config/h8300/h8300.h (OK_FOR_Z): New macro.
8172         (EXTRA_CONSTRAINT_STR): Check it.
8173         * config/h8300/h8300.c (h8300_classify_operand): Accept null
8174         class arguments.
8175         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
8176         * config/h8300/h8300.md (length_table): Add mov_imm4.
8177         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
8178         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
8179         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
8180         be a label.
8181         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
8182         * config/h8300/h8300.c (h8300_reorg): New function.
8183         (TARGET_MACHINE_DEPENDENT_REORG): Define.
8184         * config/h8300/h8300.md (length): Subtract the length of the
8185         delay slot from (pc) when checking the range of forward branches.
8186         (delay_slot, can_delay): New attributes.
8187         (define_delay): Add bra/s handling.
8188         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
8189         (jump): Add delayed-branch handling.
8190         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
8191         * expr.c (expand_strcpy): New function.
8192         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
8193         (expand_builtin_stpcpy): Likewise.
8194         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
8195         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
8196         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
8197         handling to improve register allocation for -fno-omit-frame-pointer.
8198         (h8sx_split_movmd): Delete, moving er6 handling into...
8199         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
8200         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
8201         (movmd): Add calls to copy_rtx.
8202         (movmd_internal): In the second alternative, allow the initial and
8203         final destination registers to be different .  Update the splitter
8204         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
8205         instead of h8sx_split_movmd.
8206         (stpcpy, movsd): New expanders.
8207         (movsd_internal): New define_insn.
8208         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
8209         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
8210         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
8211         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
8212         and DESTINATION_REGS.
8213         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
8214         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
8215         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
8216         (h8300_move_ratio): Declare.
8217         (MOVE_RATIO): Use it.
8218         * config/h8300/h8300.c (h8300_move_ratio): New variable.
8219         (h8300_init_once): Initialize it.
8220         (h8300_reg_class_from_letter): New function.
8221         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
8222         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
8223         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
8224         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
8225         (movstrsi, movmd): New expanders.
8226         (movmd_internal): New insn.
8227         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
8228         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
8229         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
8230         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
8231         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
8232         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
8233         * config/h8300/h8300.c (nibble_operand): Fix warning.
8234         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
8235         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
8236         (movsf_h8300h): Disable for TARGET_H8300SX.
8237         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
8238         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
8239         h8300_stm_parallel and h8300_return_parallel.
8240         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
8241         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
8242         h8300_stm_parallel, h8300_return_parallel): New functions.
8243         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
8244         if TARGET_H8300SX.  Use h8300_push_pop.
8245         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
8246         and final pop when generating h8sx code.  Always emit some form
8247         of return insn.
8248         * config/h8300/h8300.md: Don't enforce register alignment in
8249         stm peepholes if TARGET_H8300SX.
8250         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
8251         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
8252         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
8253         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
8254         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
8255         (MULTILIB_DIRNAMES): Add a directory for it.
8256         (MULTILIB_MATCHES): Delete.
8257         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
8258         * final.c (walk_alter_subreg): Handle addresses with subregs
8259         inside a ZERO_EXTEND or AND.
8260         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
8261         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
8262         if TARGET_H8300SX.
8263         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
8264         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
8265         @(dd,Rn.w) and @(dd,ERn.L).
8266         (h8300_displacement_size): Take the whole address as argument.
8267         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
8268         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
8269         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
8270         (h8sx_mergeable_memrefs_p): Declare.
8271         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
8272         (HAVE_PRE_INCREMENT): Likewise.
8273         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
8274         addresses for TARGET_H8300SX,
8275         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
8276         and POST_DEC.
8277         (movb_length_table, movl_length_table): New tables.
8278         (movw_length_table): Define to movb_length_table.
8279         (h8300_displacement_size): New, split out from...
8280         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
8281         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
8282         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
8283         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
8284         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
8285         (compute_plussi_length, compute_plussi_cc): Update accordingly.
8286         (h8sx_unary_shift_operator): Get the mode from the operator.
8287         (binary_shift_operator): Likewise.
8288         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
8289         a memory reference, check whether the reference is offsettable.
8290         (length_table): Add movb, movw and movl.
8291         (movqi): Add new h8sx pattern.  Don't force one operand to be a
8292         register when generating h8sx code.
8293         (movhi, movsi, movsf): Likewise.
8294         (movstrictqi): Use the length_table attribute.
8295         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
8296         (addqi3): Split into a define_expand and define_insn.  Don't accept
8297         memory operands in the expander.  Use h8300_operands_match_p to
8298         check for matching operands in the define_insn.
8299         (subqi3, negqi2, one_cmplqi2): Likewise.
8300         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
8301         in any patterns that are unused in h8sx code.  In the h8sx patterns,
8302         use h8300_operands_match_p to check whether operands match.
8303         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
8304         one_cmpl[hs]i3): Likewise.
8305         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
8306         in the expander.
8307         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
8308         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
8309         (h8300_insn_length_from_table): Add a second parameter.
8310         (output_h8sx_shift): Declare.
8311         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
8312         (EXTRA_CONSTRAINT): Replace with...
8313         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
8314         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
8315         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
8316         and h8sx_binary_shift_operator.
8317         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
8318         for TARGET_H8300SX.
8319         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
8320         (bit_memory_operand, fix_bit_operand): Likewise.
8321         (h8300_length_table_for_insn): Remove.
8322         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
8323         instructions.
8324         (h8300_short_immediate_length, h8300_binary_length): New functions.
8325         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
8326         (output_plussi): Use sub to add negative constants.
8327         (compute_plussi_length): Adjust accordingly.
8328         (h8sx_single_shift_type): New enum.
8329         (h8sx_single_shift, h8sx_unary_shift_operator,
8330         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
8331         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
8332         single h8sx instruction.  Return false in this case.
8333         * config/h8300/h8300.md (length_table): Add short_immediate.
8334         (length): Pass the operand array to h8300_insn_length_from_table.
8335         (adjust_length): Assume "no" for insns with a length_table attribute.
8336         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
8337         (*addhi3_h8300hs): Don't use for h8sx.
8338         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
8339         and sub.w #xx:3.
8340         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
8341         1's predicate to nonimmediate_operand.  Only skip default expansion
8342         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
8343         for single h8sx shift instructions.
8344         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
8345         * config/h8300/h8300.c (nibble_operand): Split out of...
8346         (reg_or_nibble_operand): ... this.
8347         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
8348         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
8349         umulhisi3): Introduce expand, and introduce separate insns for
8350         sign- or zero-extended REG and already-extended CONST_INT.
8351         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
8352         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
8353         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
8354         (subhi3): Likewise.  Don't accept immediates for operand 1.
8355         Remove the early clobber from second alternative of the h8300s pattern.
8356         (subsi3): Generalize for h8sx.  Force operand 2 into a register
8357         on plain h8300 targets.
8358         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
8359         (subsi3_h8300h): Generalize for h8sx.
8360         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
8361         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
8362         * config/h8300/h8300.c (reg_or_nibble_operand): New.
8363         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
8364         (TARGET_H8300SXMUL): New.
8365         (CONST_OK_FOR_P): New.
8366         (CONST_OK_FOR_LETTER_P): Adjust.
8367         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
8368         umulhisi3): Accept 4-bit immediate on H8SX.
8369         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
8370         (udivsi3, divhi3, udivsi3, divsi3): New.
8371         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
8372         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
8373         * config/h8300/h8300.h (OK_FOR_Q): New macro.
8374         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
8375         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
8376         Add ADDRESSOF to the bit_operand entry.
8377         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
8378         (h8300_src_operand): Likewise.
8379         (bit_operand): Check nonimmediate_operand rather than general_operand.
8380         Accept any nonimmediate_operand in h8sx code.
8381         (h8300_and_costs): Initialize operands[1].
8382         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
8383         (h8300_operand_class): New enum.
8384         (h8300_length_table): New typedef.
8385         (addb_length_table, addw_length_table, addl_length_table,
8386         logicl_length_table): New tables.
8387         (logicb_length_table, logicw_length_table): New macros.
8388         (h8300_classify_operand, h8300_length_from_table,
8389         h8300_length_table_for_insn, h8300_unary_length,
8390         h8300_insn_length_from_table): New functions.
8391         (output_plussi): Only use adds and subs for register destinations.
8392         Disable redundant clause.
8393         (compute_plussi_cc): Likewise.
8394         (compute_plussi_length): Likewise.  Use h8300_length_from_table
8395         to work out the length of an insn.
8396         (output_logical_op): Only use narrower immediate instructions
8397         if the destination is a register.
8398         (compute_logical_op_cc): Likewise.
8399         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
8400         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
8401         * config/h8300/h8300.md (length_table): New attribute.
8402         (length): When an instruction has a length_table attribute, use
8403         h8300_insn_length_from_table to calculate its default length.
8404         (cmpqi): Use h8300_dst_operand for the first operand and
8405         h8300_src_operand for the second.
8406         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
8407         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
8408         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
8409         iorsi3, xorhi3, xorsi3): Likewise.
8410         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
8411         so that it allows any combination of operands for TARGET_H8300SX.
8412         (iorqi3, xorqi3): Likewise.
8413         (cmpqi): Use the length_table attribute.
8414         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
8415         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
8416         (cmpqi): Add 'Q' constraint.
8417         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
8418         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
8419         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
8420         * config/h8300/h8300.h (MASK_H8300SX): New macro.
8421         (TARGET_H8300S): True for both -ms and -msx.
8422         (TARGET_H8300SX): New macro.
8423         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
8424         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
8425         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
8426         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
8427         [Temporary change.]
8428         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
8429         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
8430         16-bit pointers and 32-bit ints.
8431         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
8432         CONST_DOUBLE with mode no wider than SImode.
8433         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
8434         output operand.
8435         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
8436         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
8437         or SUBREG thereof.
8438         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
8439         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
8440         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
8441
8442 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
8443
8444         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
8445
8446 2004-07-07  Per Bothner  <per@bothner.com>
8447
8448         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
8449
8450 2004-07-07  Mike Stump  <mrs@apple.com>
8451
8452         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
8453         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
8454         (machopic_finish): Likewise.
8455
8456 2004-07-07  Richard Henderson  <rth@redhat.com>
8457
8458         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
8459         through any value-preserving cast.
8460
8461 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
8462
8463         * function.c (assign_parm_find_data_types): Call
8464         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
8465
8466 2004-07-07  Steven Bosscher  <stevenb@suse.de>
8467
8468         * tree-cfg.c (group_case_labels): Remove case labels that have
8469         the same target as the default case.
8470
8471 2004-07-07  Steven Bosscher  <stevenb@suse.de>
8472
8473         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
8474         regardless of DECL_LANG_SPECIFIC being present or not.
8475         * tree.h (DECL_NUM_STMTS): Purge.
8476
8477 2004-07-07  Andrew Pinski  <apinski@apple.com>
8478
8479         * configure: Regenerate with the right autoconf.
8480
8481 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
8482
8483         * ifcvt.c (total_bb_rtx_cost): New function.
8484         (find_if_case_1): Compare rtx_cost of basic block to cost of
8485         BRANCH_COST insns.
8486         (find_if_case_2): Same.
8487
8488 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
8489
8490         PR target/10567
8491         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
8492         (output_return): Likewise.
8493         (output_sibcall): Abort if !flag_delayed_branch.
8494         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
8495         (emit_and_preserve): New function.
8496         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
8497         indirect jump to the thunked-to function if !flag_delayed_branch.
8498         * config/sparc/sparc.md (delayed_branch): New attribute.
8499         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
8500         attribute to compute the length of the insn.
8501         (goto_handler_and_restore): Likewise.
8502
8503 2004-07-07  Andrew Pinski  <apinski@apple.com>
8504
8505         PR tree-optimization/15777
8506         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
8507
8508         * expr.c (expand_expr_real_1): Fix formating.
8509         BUFFER_REF and IN_EXPR are dead.
8510         * fold-const.c (non_lvalue): BUFFER_REF is dead.
8511         * tree-inline.c (estimate_num_insns_1): Likewise.
8512         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
8513         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
8514         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
8515
8516 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
8517
8518         * collect2.c (dump_file): Don't call cplus_demangle if
8519         HAVE_LD_DEMANGLE is defined.
8520         (main): Pass "--demangle" to ld if no_demangle is not 0 and
8521         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
8522         if HAVE_LD_DEMANGLE is defined.
8523
8524         * configure.ac (--with-demangler-in-ld): Added
8525         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
8526         --with-demangler-in-ld is used.
8527         * config.in: Regenerated.
8528         * configure: Likewise.
8529
8530 2004-07-07  Roger Sayle  <roger@eyesopen.com>
8531
8532         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
8533         for simple floating point operations "fp", double precision
8534         multiplication "dmul", and single and double precision division
8535         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
8536         (ppc630_cost): New table split from ppc620_cost, to distinguish
8537         differences in floating point latencies.
8538         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
8539         (rs6000_rtx_costs): Add support for single and double precision
8540         floating point addition, subtraction, multiplication, division,
8541         fused-multiply-add, fused-multiply-sub, negation, absolute value
8542         and negative absolute value.  Tweak MEM case to use prefered idiom.
8543
8544 2004-07-07  Richard Henderson  <rth@redhat.com>
8545
8546         * tree-flow-inline.h (may_propagate_copy): Move...
8547         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
8548         attempt to copy between types requiring conversion.
8549         * tree-flow.h (may_propagate_copy): Update decl.
8550         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
8551
8552 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
8553
8554         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
8555         from -mtune= option.
8556
8557 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
8558
8559         * builtins.c: Rename movstr*, except for movstrict*, to
8560         movmem* and clrstr* to clrmem*.
8561         * expr.c: Likewise.
8562         * expr.h: Likewise.
8563         * genopinit.c: Likewise.
8564         * integrate.c: Likewise.
8565         * local-alloc.c: Likewise.
8566         * optabs.c: Likewise.
8567         * optabs.h: Likewise.
8568         * config/alpha/alpha.h: Likewise.
8569         * config/alpha/alpha.md: Likewise.
8570         * config/arm/arm-protos.h: Likewise.
8571         * config/arm/arm.c: Likewise.
8572         * config/arm/arm.md: Likewise.
8573         * config/avr/avr.md: Likewise.
8574         * config/c4x/c4x.c: Likewise.
8575         * config/c4x/c4x.md: Likewise.
8576         * config/frv/frv.md: Likewise.
8577         * config/i386/i386-protos.h: Likewise.
8578         * config/i386/i386.c: Likewise.
8579         * config/i386/i386.h: Likewise.
8580         * config/i386/i386.md: Likewise.
8581         * config/i860/i860.c: Likewise.
8582         * config/i860/i860.md: Likewise.
8583         * config/ip2k/ip2k.md: Likewise.
8584         * config/ip2k/libgcc.S: Likewise.
8585         * config/ip2k/t-ip2k: Likewise.
8586         * config/m32r/m32r.c: Likewise.
8587         * config/m32r/m32r.md: Likewise.
8588         * config/mcore/mcore.md: Likewise.
8589         * config/mips/mips.c: Likewise.
8590         * config/mips/mips.md: Likewise.
8591         * config/ns32k/ns32k.c: Likewise.
8592         * config/ns32k/ns32k.h: Likewise.
8593         * config/ns32k/ns32k.md: Likewise.
8594         * config/pa/pa.c: Likewise.
8595         * config/pa/pa.md: Likewise.
8596         * config/pdp11/pdp11.h: Likewise.
8597         * config/pdp11/pdp11.md: Likewise.
8598         * config/rs6000/rs6000.c: Likewise.
8599         * config/rs6000/rs6000.md: Likewise.
8600         * config/s390/s390-protos.h: Likewise.
8601         * config/s390/s390.c: Likewise.
8602         * config/s390/s390.md: Likewise.
8603         * config/sh/lib1funcs.asm: Likewise.
8604         * config/sh/sh.c: Likewise.
8605         * config/sh/sh.md: Likewise.
8606         * config/sh/t-sh: Likewise.
8607         * config/sparc/sparc.h: Likewise.
8608         * config/vax/vax.md: Likewise.
8609         * config/xtensa/xtensa.c: Likewise.
8610         * config/xtensa/xtensa.md: Likewise.
8611         * doc/invoke.texi: Likewise.
8612         * doc/md.texi: Likewise.
8613         * doc/rtl.texi: Likewise.
8614
8615 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
8616
8617         PR target/16407
8618         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
8619         * config/mips/mips.c (mips_declare_common_object): New function,
8620         mostly split out from...
8621         (mips_output_aligned_decl_common): ...here.
8622         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
8623         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
8624         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
8625         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
8626
8627 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8628
8629         PR c/16392
8630         * function.c (assign_parms): Fix typo from previous change.
8631
8632 2004-07-07  Jason Merrill  <jason@redhat.com>
8633
8634         PR c++/15815
8635         * doc/extend.texi (C++ Interface): Correct information and
8636         discourage use.
8637
8638 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
8639
8640         PR target/16130
8641         PR target/16142
8642         PR target/16143
8643         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
8644         insn.
8645
8646 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
8647
8648         PR target/1679.
8649         * config/m32r/m32r.c (m32r_function_symbol): New function:
8650         Generate a symbol name RTX with the correct m32r specific flags
8651         set.
8652         (block_move_call): Use new function to generate correct symbol.
8653         * config/m32r/m32r-protos.h: Add prototype for new funcion.
8654         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
8655         function.
8656
8657 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
8658
8659         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
8660         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
8661         TYPE_BINFO_BASETYPE): Remove.
8662         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
8663         to ...
8664         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
8665         here.
8666         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
8667         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
8668         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
8669         (struct tree_binfo): Rename base_types to base_binfos.
8670         * alias.c (record_component_aliases): Adjust BINFO macros.
8671         * dbxout.c (dbxout_type): Likewise.
8672         * dwarf2out.c (gen_member_die): Likewise.
8673         * sdbout.c (sdbout_one_type): Likewise.
8674         * tree-dump.c (deque_and_dump): Likewise.
8675         * config/i386/i386.c (classify_argument,
8676         contains_128bit_aligned_vector_p): Likewise.
8677
8678 2004-07-07  Nick Clifton  <nickc@redhat.com>
8679
8680         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
8681         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
8682
8683 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
8684
8685         * vec.h: Fix the example use.
8686
8687 2004-07-06  Richard Henderson  <rth@redhat.com>
8688
8689         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
8690         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
8691         * tree-inline.c (copy_body_r, setup_one_parameter,
8692         initialize_inlined_parameters, expand_call_inline,
8693         declare_inline_vars): Don't check it.
8694         (expand_calls_inline): Remove old version, rename new version
8695         from gimple_expand_calls_inline.
8696         * tree-optimize.c (execute_gimple): Remove.
8697         (pass_gimple): Don't run anything.
8698
8699 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
8700
8701         * doc/sourcebuild.texi: Use semicolons instead of commas in
8702         section title.
8703
8704 2004-07-06  Richard Henderson  <rth@redhat.com>
8705
8706         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
8707         (sra_walk_modify_expr, scan_init): Likewise.
8708         (generate_element_zero): Check visited before scanning children.
8709         (generate_element_init): Set visited on error.
8710         (scalarize_init): Handle generate_element_init failure similar
8711         to use_block_copy.
8712
8713 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
8714
8715         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
8716         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
8717
8718 2004-07-06  Richard Henderson  <rth@redhat.com>
8719
8720         * config/i386/i386.c (legitimize_pic_address): Make static.
8721         (legitimize_address): Handle CONST with TLS operand.
8722         (ix86_expand_move): Don't call legitimize_pic_address directly.
8723         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
8724
8725 2004-07-06  Roger Sayle  <roger@eyesopen.com>
8726
8727         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
8728         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
8729         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
8730         is currently executed unconditionally, i.e. not in "else_bb".
8731
8732 2004-07-06  Steven Bosscher  <stevenb@suse.de>
8733
8734         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
8735         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8736         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
8737         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8738         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
8739         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8740         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
8741         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8742         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
8743         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8744         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
8745         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8746         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
8747         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8748         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
8749         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8750
8751 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
8752
8753         * dojump.c (do_jump): REFERENCE_EXPR is dead.
8754         * expr.c (expand_expr_real_1): Ditto.
8755         * tree-inline.c (estimate_num_insns_1): Ditto.
8756         * tree-pretty-print.c (dump_generic_node): Ditto.
8757         (op_symbol): Ditto.
8758         * tree.def: Ditto.
8759
8760 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
8761
8762         * tree-ssa-pre.c (reference_node_pool): New pool.
8763         (find_or_generate_expression): Class 'r' is okay too.
8764         (create_value_expr_from): Ditto.
8765         (add_to_sets): LHS should not include vuses.
8766         (eliminate): Ditto.
8767         (compute_avail): Reverse ordering of tests.
8768         Valuize INDIRECT_REF as well.
8769
8770 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
8771
8772         PR rtl-optimization/16380
8773         * loop.c (check_dbra_loop): Sink comparison instructions if they
8774         do something other than set cc0.
8775
8776 2004-07-06  James E Wilson  <wilson@specifixinc.com>
8777
8778         * doc/interface.texi (longjmp and automatic variables): Delete
8779         paragraph recommending taking the address of a variable.
8780
8781 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
8782
8783         * vec.h (VEC_embedded_alloc): Remove.
8784         (VEC_embedded_size, VEC_embedded_init): New.
8785         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
8786         MEM_STAT_INFO.
8787         (VEC_truncate): New.
8788         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
8789         (vec_embedded_alloc): Remove.
8790         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
8791         (vec_embedded_alloc): Remove.
8792
8793 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
8794
8795         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
8796         (gt-langhooks.h): Remove.
8797
8798 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
8799
8800         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
8801
8802 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
8803
8804         * config/sparc/sparc.c (get_pc_symbol): Rename into
8805         add_pc_to_pic_symbol.
8806         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
8807         (load_pic_register): Account for previous changes.
8808         Use reg_names.  Don't create the label twice.
8809         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
8810         UNSPEC_LOAD_PCREL_SYM.
8811         (get_pc): Rename into load_pcrel_sym.  Add predicate to
8812         operands.  Remove condition.
8813
8814 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
8815
8816         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
8817         RECORD, UNION & QUAL_UNION is actually a binfo.
8818
8819         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
8820         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
8821         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
8822         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
8823         * dwarf2out.c (add_data_member_location_attribute): Likewise.
8824         (gen_inheritance_die): Likewise.
8825         * tree-dump.c (deque_and_dump): Likewise.
8826         * doc/c-tree.texi (Binfos): Add under reconstruction note.
8827
8828 2004-07-06  Steven Bosscher  <stevenb@suse.de>
8829
8830         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
8831         Define.
8832         * config/mcore/mcore.md: Model memory latency with a simple DFA
8833         pipeline description instead of a define_function_unit.
8834
8835 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8836
8837         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
8838         * langhooks.h (var_mod_type_p): Likewise.
8839         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
8840         * expr.c (count_type_elements): Properly handle return from
8841         array_type_nelts and properly test for overflow.
8842         * gimplify.c (gimplify_init_constructor): Properly handle return
8843         from array_type_nelts.
8844         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
8845         * integrate.c (copy_decl_for_inlining): Correct comments.
8846         * tree-inline.c (remap_decl): Update comments, remove dead code,
8847         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
8848         (remap_type): Only remap if variably modified by vars in function
8849         being inlined.
8850         (copy_body_r): Use compatible_type langhooks to see when can fold.
8851         (setup_one_parameter): Don't remap type.
8852         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
8853         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
8854         compute TREE_INVARIANT for decl case.
8855         (find_var_from_fn): New function.
8856         (variably_modified_type_p): Add arg and call new function.
8857         * tree.h (variably_modified_type_p): Add extra arg.
8858
8859 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
8860
8861         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
8862         (goto_handler_and_restore_v9): Delete disabled insn.
8863         (goto_handler_and_restore_v9_sp64): Likewise.
8864
8865 2004-07-05  Roger Sayle  <roger@eyesopen.com>
8866
8867         * calls.c (load_register_parameters): Call expand_shift instead
8868         of expand_binop with ashl_optab (or other shift optab) directly.
8869         * expr.c (emit_group_load, emit_group_store): Likewise.
8870         * function.c (assign_parm_setup_block): Likewise.
8871         * stmt.c (shift_return_value): Likewise.
8872
8873 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
8874
8875         * expr.c (expand_assignment): Disable the bitfield += optimizations.
8876
8877 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8878
8879         * doc/sourcebuild.texi: Revert previous patch.
8880
8881 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8882
8883         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
8884         TARGET_MEM_FUNCTIONS.
8885         * system.h: Poison TARGET_MEM_FUNCTIONS.
8886         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
8887         bcmp_libfunc, bzero_libfunc): Remove.
8888         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
8889         bzero_libfunc.
8890         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
8891         * doc/standards.texi: Don't mention calling BSD string functions.
8892         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
8893         * config/vax/t-memfuncs: New.
8894         * config/memcmp.c, config/memcpy.c, config/memmove.c,
8895         config/memset.c: New.
8896         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
8897         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
8898         vax/t-memfuncs.
8899         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
8900         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
8901         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
8902         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
8903         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
8904         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
8905         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
8906         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
8907         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
8908         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
8909
8910 2004-07-05  Richard Henderson  <rth@redhat.com>
8911
8912         * function.c (assign_parm_setup_reg): Properly rename variables in
8913         FUNCTION_ARG_CALLEE_COPIES section.
8914
8915 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
8916
8917         * tree-mudflap.c: Include cgraph.h.
8918         (mf_init_extern_trees): Rename to mudflap_init.  Export.
8919         Rewrite to create synthetic declarations instead of looking
8920         up declarations from mf-runtime.h.
8921         (mf_make_builtin, mf_make_cache_struct_type): New functions.
8922         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
8923         Correct commentary.
8924         (execute_mudflap_function_decls, mudflap_register_call):
8925         Don't call mf_init_extern_trees.
8926         (mudflap_finish_file): Use cgraph_build_static_cdtor.
8927
8928         * tree-mudflap.h: Update prototypes.
8929         * c-mudflap.c: Delete file.
8930         * c-common.c: Include tree-mudflap.h.
8931         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
8932         * Makefile.in: Remove all references to c-mudflap.o.
8933         Update dependencies.
8934
8935 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8936
8937         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
8938         displacements with the spatial-locality cache-control completer.
8939
8940 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
8941
8942         * langhooks.c: Don't include gt-langhooks.h.
8943         (var_labelno): Delete.
8944         (lhd_set_decl_assembler_name): Do not append a distinguishing
8945         number to file-scope internal-linkage declarations for the first
8946         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
8947         the declaration itself (if at block scope), or its containing
8948         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
8949         number.
8950
8951         * opts.c (cur_in_fname): New global.
8952         * opts.h: Declare it.
8953         * tree.c: Include opts.h.
8954         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
8955         DECL_UID equal to cur_in_fname.
8956         (copy_node_stat): Do not change DECL_UID when copying a
8957         TRANSLATION_UNIT_DECL.
8958         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
8959         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
8960
8961         * c-decl.c (c_static_assembler_name): Delete.
8962         * c-tree.h (c_static_assembler_name): Delete prototype.
8963         * c-lang.c, objc/objc-lang.c: Don't override
8964         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
8965
8966         * Makefile.in (tree.o): Update dependencies.
8967         (GTFILES): Remove langhooks.c.
8968
8969 2004-07-05  Roger Sayle  <roger@eyesopen.com>
8970
8971         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
8972         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
8973         Normalize "X % C" as "X % -C" for signed modulus and negative C.
8974         Optimize "X % -Y" as "X % Y" for signed modulus.
8975         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
8976         into "((unsigned) X % Y) == 0".
8977
8978 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8979
8980         * sourcebuild.texi (Config Fragments): Use @comma{} in
8981         cross-reference to section title.
8982
8983 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8984
8985         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
8986         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
8987         (gimplify_target_expr, gimplify_expr): Likewise.
8988         (copy_if_shared_r): No longer need special case for BIND_EXPR.
8989         (unshare_body, unvisit_body): Only look at nested if BODY_P is
8990         whole function.
8991         (gimplify_compound_lval): See if we can strip any useless conversion.
8992         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
8993         from RHS, not LHS.
8994         (gimplify_modify_expr_to_memset): Likewise.
8995         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
8996         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
8997         (declare_inline_vars): Likewise.
8998         (walk_type_fields): New function.
8999         (walk_tree): Use it.
9000         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
9001
9002         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
9003         (sra_walk_modify_expr): Allow init function to fail.
9004         (scan_init): Now returns bool.
9005         (generate_element_init): If can't understand INIT, return false.
9006         (scalarize_init): Return false if generate_element_init does.
9007
9008         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
9009         print bounds.
9010
9011         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
9012         bounds if bounds aren't constant.
9013
9014         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
9015
9016         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
9017         to type hooks; remove bogus PARAMS.
9018
9019 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
9020
9021         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
9022         * dwarf2out.c (add_data_member_location_attribute): Check for
9023         TREE_BINFO.
9024         * tree.c (tree_node_kinds): Add "binfos".
9025         (binfo_lang_slots): New.
9026         (make_node_stat): Add TREE_BINFO.
9027         (make_tree_binfo_stat): New.
9028         (tree_node_structure): Add TREE_BINFO.
9029         * tree.def (TREE_BINFO): New.
9030         * tree.h (REC_OR_UNION_CHECK): Rename to ...
9031         (RECORD_OR_UNION_CHECK): ... here.
9032         (NOT_RECORD_OR_UNION_CHECK): New.
9033         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
9034         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
9035         RECORD_OR_UNION_CHECK.
9036         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
9037         (TYPE_LANG_SLOT_1): New.
9038         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
9039         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
9040         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
9041         (BINFO_ELTS): Remove.
9042         (BINFO_LANG_SLOT): New.
9043         (struct tree_binfo): New.
9044         (binfo_lang_slots): Declare.
9045         (enum tree_node_structure_enum): Add TS_BINFO.
9046         (union tree_node): Add binfo.
9047         (make_tree_binfo_stat): Declare.
9048         (make_tree_binfo): New.
9049         (enum tree_node_kind): Add binfo_kind.
9050
9051         * objc/objc-act.c (start_class, objc_declare_protocols,
9052         start_protocols): Use TYPE_LANG_SLOT_1.
9053         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
9054         to ...
9055         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
9056         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
9057         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
9058         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
9059
9060 2004-07-05  Steven Bosscher  <stevenb@suse.de>
9061
9062         * rtl.h (struct rtx_def): Remove the integrated flag.
9063         Use the return_val flag for MEM_SCALAR_P.
9064         Reshuffle and update flags in CLEAR_RTX_FLAGS.
9065
9066 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
9067
9068         PR target/16357
9069         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
9070         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
9071         move_by_pieces.
9072
9073 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
9074
9075         * var-tracking.c: Fix some comments.
9076         (frame_stack_adjust): New.
9077         (vt_stack_adjustments): Init stack_adjust of entry block to
9078         minus stack adjustment of function prologue.
9079         (adjust_stack_reference): Do not adjust if adjustment == 0.
9080         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
9081         (emit_notes_in_bb): Likewise.
9082         (vt_add_function_parameters): Do not adjust locations of
9083         function arguments.
9084         (vt_initialize): Compute the stack adjustment of function
9085         prologue and offset the initial "location" of frame_base_decl
9086         from the stack pointer after prologue.
9087
9088 2004-07-04  Richard Henderson  <rth@redhat.com>
9089
9090         * function.c (struct assign_parm_data_all): New.
9091         (struct assign_parm_data_one): New.
9092         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
9093         assign_parm_find_data_types, assign_parms_setup_varargs,
9094         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
9095         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
9096         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
9097         assign_parm_setup_block, assign_parm_setup_reg,
9098         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
9099         (assign_parms): ... here.
9100
9101 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
9102
9103         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
9104         now are bitmap_set_t's.
9105         (bitmap_insert_into_set): No point in inserting the value if
9106         it's invariant.
9107         (bitmap_set_contains): New function.
9108         (bitmap_set_replace_value): Add comment on why we do it
9109         this way.
9110         (set_contains): Removed.
9111         (bitmap_set_subtract_from_value_set): New name of
9112         set_subtract now that it's arguments are two different
9113         types of sets.
9114         Update callers.
9115         (bitmap_find_leader): Change algorithm used.
9116         (find_or_generate_expression): Update use of functions for new
9117         bitmap sets.
9118         (create_expression_by_pieces): Ditto.
9119         (insert_aux): Ditto.
9120         (insert): Ditto.
9121         (add_to_sets): Ditto.
9122         (init_pre): Ditto.
9123         (execute_pre): Ditto.
9124         (compute_avail): Ditto.
9125         Also ignore virtual phis.
9126
9127 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
9128
9129         * combine.c (simplify_comparison): Fix comment typo.
9130
9131 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9132
9133         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
9134         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
9135         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
9136         (output_restore): Change parameter from 'insn' to 'pat'.
9137         (output_return): Adjust call to output_restore.
9138         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
9139         Adjust call to output_restore.
9140
9141 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
9142
9143         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
9144         and assert system is bsd.
9145
9146 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
9147
9148         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
9149         (TARGET_SWITCHES): Remove -mdebugc.
9150         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
9151         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
9152         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
9153         (sle_[sd]i_reg): Delete.
9154
9155 2004-07-04  Steven Bosscher  <stevenb@suse.de>
9156
9157         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
9158         Define.
9159         * config/iq2000/iq2000.md: Translate old pipeline description to an
9160         equivalent new one.
9161
9162 2004-07-04  Roger Sayle  <roger@eyesopen.com>
9163
9164         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
9165         Ensure the replacement rhs is valid gimple before performing
9166         the substitution.  Return false if these sanity checks fail.
9167         (fold_stmt): Only set changed to true, if set_rhs returns true.
9168         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
9169         succeeds.
9170
9171 2004-07-04  Richard Henderson  <rth@redhat.com>
9172
9173         PR c/16348
9174         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
9175
9176 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
9177
9178         * configure.ac (ranlib_flags): New variable.
9179         * Makefile.in (RANLIB_FLAGS): New variable.
9180         (libbackend.a): Use it.
9181         * configure: Regenerated.
9182
9183 2004-07-04  Roger Sayle  <roger@eyesopen.com>
9184
9185         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
9186         a "sign mask" instead of using ashr_optab directly.
9187
9188 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
9189
9190         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
9191         * doc/cppopts.texi: Clarify processing of command-line defines.
9192
9193 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
9194
9195         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
9196
9197 2004-07-04  Richard Henderson  <rth@redhat.com>
9198
9199         * rtl.def (ADDRESSOF): Remove.
9200         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
9201         (find_base_term, memrefs_conflict_p): Likewise.
9202         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
9203         (fold_rtx, cse_insn, set_live_p): Likewise.
9204         * dwarf2out.c (mem_loc_descriptor): Likewise.
9205         (add_location_or_const_value_attribute): Likewise.
9206         * emit-rtl.c (copy_insn_1): Likewise.
9207         * explow.c (memory_address): Likewise.
9208         * expmed.c (store_split_bit_field): Likewise.
9209         * expr.c (expand_expr_real_1): Likewise.
9210         * function.c (instantiate_decl
9211         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
9212         * genrecog.c (preds, validate_pattern): Likewise.
9213         * integrate.c (copy_rtx_and_substitute): Likewise.
9214         * recog.c (general_operand, register_operand): Likewise.
9215         (memory_address_p): Likwise.
9216         * reload1.c (eliminate_regs, elimination_effects): Likewise.
9217         * rtl.c (copy_rtx): Likewise.
9218         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
9219         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
9220         * rtlhooks.c (gen_lowpart_general): Likewise.
9221         * stmt.c (expand_asm_operands): Likewise.
9222         * web.c (entry_register, replace_ref, web_main): Likewise.
9223         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
9224         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
9225         * config/arm/arm.c (thumb_rtx_costs): Likewise.
9226         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
9227         * config/frv/frv.c (move_destination_operand, move_source_operand,
9228         condexec_dest_operand, condexec_source_operand,
9229         condexec_memory_operand): Likewise.
9230         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
9231         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
9232         (destination_xfmode_operand): Likewise.
9233         * config/mips/mips.h (PREDICATE_CODES): Likewise.
9234         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
9235         * config/s390/s390.c (general_s_operand): Likewise.
9236         * config/s390/s390.md (mov*): Likewise.
9237         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
9238
9239         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
9240         * expr.c (expand_expr_real_1): Likewise.
9241         * stmt.c (expand_decl): Likewise.
9242         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
9243
9244         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
9245         postponed_insns, put_var_into_stack, put_reg_into_stack,
9246         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
9247         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
9248         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
9249         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
9250         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
9251         purge_bitfield_addressof_replacements, purge_addressof_replacements,
9252         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
9253         struct insns_for_mem_walk_info, insns_for_mem_walk,
9254         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
9255         setjmp_protect_args): Remove.
9256         (push_function_context_to): Don't handle var_refs_queue.
9257         (pop_function_context_from, free_after_compilation): Likewise.
9258         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
9259         (assign_parms, allocate_struct_function): Likewise.
9260         (use_register_for_decl): New.
9261         (expand_function_end): Don't setjmp_protect.
9262         * function.h (struct emit_status): Update commentary.
9263         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
9264         (max_parm_reg, parm_reg_stack_loc): Remove.
9265         * passes.c (DFI_addressof): Remove.
9266         (dump_file_info): Remove addressof.
9267         (rest_of_handle_addressof): Remove.
9268         (rest_of_compilation): Don't call it.
9269         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
9270         * stmt.c (expand_decl): Use use_register_for_decl.
9271         * tree.h: Update decls.
9272         * web.c (mark_addressof): Remove.
9273         * doc/invoke.texi (-dF): Remove.
9274
9275 2004-07-03  Richard Henderson  <rth@redhat.com>
9276
9277         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
9278         instead of gen_mem_addressof.
9279         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
9280         TImode output register.
9281
9282 2004-07-03  Richard Henderson  <rth@redhat.com>
9283
9284         PR tree-optimization/16341
9285         * tree-sra.c (sra_walk_function): Increment to next stmt before
9286         processing the current stmt.
9287         (sra_insert_after): Always use BSI_SAME_STMT.
9288
9289 2004-07-03  Richard Henderson  <rth@redhat.com>
9290
9291         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
9292         fp plus with minus.
9293
9294 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
9295
9296         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
9297         with tree_int_cst_equal.
9298
9299 2004-07-03  Andreas Schwab  <schwab@suse.de>
9300
9301         * config/ia64/ia64.md: Define new attribute "empty".
9302         (prologue_use, nop_x, insn_group_barrier): Set it.
9303
9304         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
9305         skip over "empty" insns.
9306
9307 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9308
9309         * tree-inline.c (initialize_inlined_parameters): Pass proper function
9310         context to gimplify_body.
9311         (walk_tree): Don't walk into types twice.
9312         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
9313
9314         * tree-sra.c (generate_element_init): Remove any useless conversions.
9315
9316         * gimplify.c (gimplify_conversion): Remove stripping useless
9317         conversions from here.
9318         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
9319         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
9320         Unshare before substituting PLACEHOLDER_EXPR.
9321         (gimplify_modify_expr_to_memset): Likewise.
9322         Pass address of TO to memset, not TO itself.
9323         (gimplify_init_constructor): Make copy of OBJECT so we have it each
9324         time we make an expression (to match a PLACEHOLDER_EXPR).
9325
9326         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
9327         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
9328         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
9329         * tree-ssa-dom.c (local_fold): Likewise.
9330
9331         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
9332         * langhooks.h (strct lang_hooks): New field type_max_size.
9333         * function.c (assign_temp): Call it.
9334
9335 2004-07-03  Steven Bosscher  <stevenb@suse.de>
9336
9337         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
9338         * config/sh/sh.md: Convert the SH1 pipeline description to
9339         a DFA model.
9340
9341 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
9342
9343         * c-decl.c (struct c_binding): Remove contour field; add
9344         depth, invisible, nested fields.
9345         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
9346         (B_IN_EXTERNAL_SCOPE): New convenience macros.
9347         (bind): Add invisible and nested arguments. Initialize
9348         new fields of struct c_binding; adjust loop scanning for
9349         insertion point.
9350         (free_binding_and_advance): Clear structure with memset.
9351         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
9352         in file scope, even if it's in external scope too.
9353         (pushdecl): Adjust to match.  Create invisible file-scope
9354         declarations for block-scope forward declarations of static functions.
9355         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
9356         (undeclared_variable, lookup_label, declare_label, define_label)
9357         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
9358         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
9359         (store_parm_decls_oldstyle): Adjust to match.
9360         (diagnose_mismatched_decls): Correct handling of linkage clashes.
9361         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
9362
9363         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
9364         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
9365
9366 2004-07-02  Richard Henderson  <rth@redhat.com>
9367
9368         * c-decl.c (grokdeclarator): Don't frob current_function_decl
9369         around variable_size.
9370         (set_decl_nonlocal): Remove.
9371         (store_parm_decls): Add stmts for pending sizes.
9372         * calls.c (calls_function, calls_function_1): Remove.
9373         (precompute_arguments): Don't call it.
9374         * cfgexpand.c (set_save_expr_context): Remove.
9375         (tree_expand_cfg): Don't call it.
9376         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
9377         (dwarf2out_finish): Likewise.
9378         * expr.c (emit_block_move): Adjust addresses to BLKmode.
9379         (store_constructor): Don't pre-evaluate SAVE_EXPR.
9380         (safe_from_p): Don't queue SAVE_EXPRs.
9381         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
9382         or build plain VAR_DECLs.
9383         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
9384         (fold): Likewise.
9385         (fold_checksum_tree): Don't special-case SAVE_EXPR.
9386         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
9387         (put_var_into_stack): Don't handle SAVE_EXPR.
9388         (gen_mem_addressof): Likewise.
9389         * function.h (struct function): Remove x_save_expr_regs.
9390         (save_expr_regs): Remove.
9391         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
9392         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
9393         * stor-layout.c (variable_size): Don't set it.
9394         (force_type_save_exprs, force_type_save_exprs_1): Remove.
9395         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
9396         all callers.  Don't set SAVE_EXPR_CONTEXT.
9397         * tree-inline.h (remap_save_expr): Update decl.
9398         * tree.c (save_expr): Update build size.
9399         (first_rtl_op): Don't handle SAVE_EXPR.
9400         (unsave_expr_1, contains_placeholder_p): Likewise.
9401         (decl_function_context): Likewise.
9402         * tree.def (SAVE_EXPR): Remove args 1 and 2.
9403         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
9404         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
9405
9406 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
9407
9408         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
9409         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
9410         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
9411         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
9412         some first-person references and patronizing comments.  Based on
9413         printed manual.
9414         * doc/invoke.texi: Don't reference fortran@gnu.org.
9415         * doc/trouble.texi (Warning when a non-void function value is
9416         ignored): Rewrite.  From Russ Allbery and Chris Devers.
9417
9418 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
9419
9420         * tree-ssa-pre.c (bitmap_set_t): New.
9421         (bb_value_sets): avail_out is now a bitmap_set_t.
9422         (bitmap_find_leader): New function.
9423         (bitmap_value_insert_into_set): Ditto.
9424         (bitmap_set_copy): Ditto.
9425         (bitmap_value_replace_in_set): Ditto.
9426         (bitmap_set_contains_value): Ditto.
9427         (bitmap_set_new): Ditto.
9428         (bitmap_set_pool): New pool.
9429         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
9430         (insert_aux): Ditto.
9431         (add_to_sets): Ditto.
9432         (compute_avail): Ditto
9433         (eliminate): Ditto.
9434         (init_pre): Ditto.
9435         (fini_pre): Ditto.
9436         (execute_pre): Ditto.
9437
9438 2004-07-02  Roger Sayle  <roger@eyesopen.com>
9439
9440         * config/rs6000/rs6000.c (struct processor_costs): New structure
9441         used to hold instruction latencies/sizes for processor types.
9442         (rs6000_cost): New global variable pointing to current CPU's costs.
9443         (rs6000_override_options): Initialize rs6000_cost to point to the
9444         appropriate cost table based upon rs6000_cpu and optimize_size.
9445         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
9446         timings inline.
9447
9448 2004-07-02  Richard Henderson  <rth@redhat.com>
9449
9450         * expmed.c (make_tree): Don't use SET_DECL_RTL.
9451
9452 2004-07-02  Steven Bosscher  <stevenb@suse.de>
9453
9454         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
9455
9456 2004-07-01  Richard Henderson  <rth@redhat.com>
9457
9458         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
9459         (alpha_gp_save_rtx): Use assign_stack_local instead of
9460         gen_mem_addressof.
9461
9462 2004-07-01  Richard Henderson  <rth@redhat.com>
9463
9464         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
9465         (alpha_rtx_cost_data): Update to match.
9466         (alpha_rtx_cost_size): New.
9467         (alpha_rtx_costs): Honor optimize_size.
9468
9469 2004-07-01  Richard Henderson  <rth@redhat.com>
9470
9471         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
9472         * cfgexpand.c (tree_expand_cfg): Do it here.
9473         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
9474         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
9475         * config/mips/mips.c (mips_output_mi_thunk): And here.
9476         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
9477         * config/sh/sh.c (sh_output_mi_thunk): And here.
9478         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
9479
9480 2004-07-01  Richard Henderson  <rth@redhat.com>
9481
9482         * tree.def (RTL_EXPR): Remove.
9483         * c-typeck.c (lvalue_p): Don't handle it.
9484         * expr.c (safe_from_p): Likewise.
9485         (expand_expr_real_1): Likewise.
9486         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
9487         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
9488         * gengtype.c (adjust_field_tree_exp): Likewise.
9489         * stmt.c (warn_if_unused_value): Likewise.
9490         * tree-gimple.c (recalculate_side_effects): Likewise.
9491         * tree-pretty-print.c (dump_generic_node): Likewise.
9492         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
9493         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
9494         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
9495
9496         * stmt.c (struct stmt_status): Remove x_last_expr_type,
9497         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
9498         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
9499         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
9500         all the bits that tracked last_expr.
9501         (expand_end_bindings): Don't track last_expr.
9502         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
9503         (clear_last_expr): Remove.
9504         (expand_asm): Don't call it.
9505         (expand_asm_operands, expand_end_cond): Likewise.
9506         (expand_naked_return, expand_null_return_1): Likewise.
9507         * c-typeck.c (c_begin_compound_stmt): Likewise.
9508         * cfgexpand.c (expand_block): Use expand_expr_stmt.
9509         * expr.c (expand_expr_real_1): Likewise.
9510         * tree.h: Update prototypes.
9511
9512         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
9513         (struct emit_status): Remove sequence_rtl_expr.
9514         (struct function): Remove x_rtl_expr_chain.
9515         (seq_rtl_expr, rtl_expr_chain): Remove.
9516         * function.c (struct temp_slot): Remove rtl_expr.
9517         (assign_stack_temp_for_type): Don't set it.
9518         (free_temp_slots, pop_temp_slots): Don't check it.
9519         (free_after_compilation): Don't clear x_rtl_expr_chain.
9520         (fixup_var_refs): Don't search it.
9521         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
9522         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
9523         or seq_rtl_expr.
9524         (push_topmost_sequence): Likewise.
9525         (end_sequence, init_emit): Likewise.
9526         (start_sequence_for_rtl_expr): Remove.
9527         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
9528         * rtl.h (preserve_rtl_expr_result): Remove.
9529
9530 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
9531
9532         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
9533         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
9534         typos.
9535
9536 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9537
9538         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
9539         (STANDARD_STARTFILE_PREFIX_2): Define.
9540         (standard_startfile_prefix_1): Initialize to
9541         STANDARD_STARTFILE_PREFIX_1.
9542         (standard_startfile_prefix_2): Initialize to
9543         STANDARD_STARTFILE_PREFIX_2.
9544         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
9545         (STANDARD_STARTFILE_PREFIX_1): Define.
9546         (STANDARD_STARTFILE_PREFIX_2): Define.
9547         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
9548         (STANDARD_STARTFILE_PREFIX_2): Document.
9549
9550 2004-07-01  Richard Henderson  <rth@redhat.com>
9551
9552         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
9553         in order to disable scalarization.  Instead set a flag and wait
9554         for a candidate decl.
9555
9556 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
9557
9558         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
9559         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
9560         Use terminology "testsuite" and "enumerated".
9561
9562 2004-07-01  Richard Henderson  <rth@redhat.com>
9563
9564         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
9565         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
9566         (initial_return_save): Likewise.
9567         (flush_queued_reg_saves): Remap register numbers.
9568         (dwarf2out_return_reg): Likewise.
9569
9570 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9571
9572         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
9573
9574         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
9575         access functions for lower bound and element size and only output
9576         if lower bound nonzero or element size not same as that of type.
9577         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
9578
9579 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
9580
9581         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
9582
9583 2004-07-01  Per Bothner  <per@bothner.com>
9584
9585         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
9586
9587 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
9588
9589         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
9590         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
9591         first operand.  Don't optimize if the bitfield is volatile.
9592
9593 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
9594
9595         * c-pretty-print.c (pp_c_postfix_expression): Handle
9596         floating-point comparison operators.
9597         (pp_c_expression): Pass floating-point comparison
9598         operators to pp_c_postfix_expression.
9599
9600 2004-07-01  Roger Sayle  <roger@eyesopen.com>
9601
9602         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
9603         rtx_cost instead of "had_mult" to determine whether the transformed
9604         expression is cheaper than the original.
9605
9606 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
9607
9608         * alias.c (get_alias_set, canon_rtx, get_addr,
9609         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
9610         Use MEM_P.
9611         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
9612         expand_builtin): Likewise.
9613         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
9614         Likewise.
9615         * combine.c (can_combine_p, combinable_i3pat, try_combine,
9616         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
9617         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
9618         record_dead_and_set_regs_1, get_last_value_validate,
9619         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
9620         * cse.c (check_dependence, canon_hash, equiv_constant,
9621         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
9622         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
9623         count_reg_usage): Likewise.
9624         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
9625         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
9626         cselib_record_sets): Likewise.
9627         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
9628         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
9629         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
9630         * df.c (df_uses_record): Likewise.
9631         * dojump (do_jump): Likewise.
9632         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
9633         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
9634         decl_start_label): Likewise.
9635         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
9636         operand_subword, change_address_1, make_safe_from): Likewise.
9637         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
9638         stabilize, force_not_mem): Likewise.
9639         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
9640         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
9641         * expr.c (convert_move, convert_modes, emit_block_move,
9642         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
9643         emit_move_insn_1, expand_assignment, store_expr,
9644         store_constructor_field, store_constructor, store_field,
9645         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
9646         Likewise.
9647         * final.c (cleanup_subreg_operands, alter_subreg,
9648         get_mem_expr_from_op): Likewise.
9649         * flow.c (notice_stack_pointer_modification_1,
9650         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
9651         Likewise.
9652         * function.c (mark_temp_addr_taken, preserve_temp_slots,
9653         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
9654         optimize_bit_field, flush_addressof, purge_addressof_1,
9655         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
9656         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
9657         keep_stack_depressed): Likewise.
9658         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
9659         noce_process_if_block, find_memory): Likewise.
9660         * integrate.c (subst_constants, allocate_initial_values): Likewise.
9661         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
9662         update_equiv_regs): Likewise.
9663         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
9664         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
9665         * optabs.c (expand_abs, emit_unop_insn): Likewise.
9666         * passes.c (rest_of_handle_final): Likewise.
9667         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
9668         move2add_note_store): Likewise.
9669         * ra-build.c (detect_remat_webs): Likewise.
9670         * ra-debug.c (dump_static_insn_cost): Likewise.
9671         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
9672         * recog.c (validate_change, apply_change_group, cancel_changes,
9673         validate_replace_rtx_1, general_operand, register_operand,
9674         nonmemory_operand, push_operand, pop_operand, memory_operand,
9675         indirect_operand, asm_operand_ok, offsettable_memref_p,
9676         offsettable_nonstrict_memref_p, constrain_operands,
9677         store_data_bypass_p): Likewise.
9678         * reg-stack.c (subst_stack_regs_pat): Likewise.
9679         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
9680         copy_cost, reg_scan_mark_refs): Likewise.
9681         * regmove.c (optimize_reg_copy_3, stack_memref_p,
9682         combine_stack_adjustments_for_block): Likewise.
9683         * regrename.c (copyprop_hardreg_forward_1): Likewise.
9684         * reload.c (can_reload_into, push_reload, decompose, immune_p,
9685         find_reloads, find_reloads_address, find_reloads_address_1,
9686         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
9687         find_equiv_reg): Likewise.
9688         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
9689         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
9690         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
9691         delete_address_reloads): Likewise.
9692         * resource.c (mark_referenced_resources): Likewise.
9693         * rtlanal.c (get_jump_table_offset, count_occurrences,
9694         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
9695         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
9696         num_sign_bit_copies1): Likewise.
9697         * rtlhooks.c (gen_lowpart_general): Likewise.
9698         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9699         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
9700         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
9701         sdbout_global_decl): Likewise.
9702         * simplify-rtx.c (simplify_subreg): Likewise.
9703         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
9704         expand_anon_union_decl, expand_end_case_type): Likewise.
9705         * unroll.c (calculate_giv_inc): Likewise.
9706         * var-tracking.c (stack_adjust_offset_pre_post,
9707         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
9708         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
9709         vt_add_function_parameters): Likewise.
9710         * varasm.c (make_var_volatile, notice_global_symbol,
9711         assemble_external, decode_addr_const, mark_weak,
9712         default_encode_section_info): Likewise.
9713
9714 2004-07-01  Steven Bosscher  <stevenb@suse.de>
9715
9716         * stmt.c (check_seenlabel): Remove.
9717         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
9718
9719 2004-07-01  Richard Henderson  <rth@redhat.com>
9720
9721         * function.h (struct function): Remove x_function_call_count.
9722         (function_call_count): Remove.
9723         * calls.c (expand_call): Don't set it.
9724         * integrate.c (copy_rtx_and_substitute): Likewise.
9725
9726         * function.h (struct function): Remove x_cleanup_label.
9727         (cleanup_label): Remove.
9728         * stmt.c (expand_value_return): Don't use it.
9729         * function.c (free_after_compilation): Don't set it.
9730         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
9731         * cfgexpand.c (tree_expand_cfg): Update call.
9732         * tree.h (expand_function_start): Update decl.
9733
9734 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
9735
9736         PR c/1027
9737         * c-lang.c (c_initialize_diagnostics): Move from here ...
9738         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
9739         (c_tree_printer): Use pretty-printer to format %T.
9740         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
9741         before '*' if not C++.
9742         (pp_c_direct_abstract_declarator): Don't try to print array upper
9743         bound for flexible array members.
9744         * c-tree.h: Include "diagnostic.h".
9745         (c_initialize_diagnostics): Declare.
9746         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
9747         * c-format.c (format_type_warning): New function.  Improve
9748         diagnostics for incorrect format argument types.
9749         (check_format_types): Use it.  Add two parameters.  Use the
9750         TYPE_MAIN_VARIANT of wanted_type.
9751         (check_format_info_main): Pass new parameters to
9752         check_format_types.
9753         (struct format_wanted_type): Update comment.
9754
9755 2004-07-01  Nick Clifton  <nickc@redhat.com>
9756
9757         * target.h (struct gcc_target): Add new field to struct cxx:
9758         import_export_class.
9759         * target-def.h (TARGET_CXX): Initialise the new field.
9760         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
9761         the new field.
9762         * doc/tm.texi: Document the new target hook.
9763
9764 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
9765
9766         * builtins.c (fold_builtin_classify): Fix typo.
9767
9768 2004-07-01  Richard Henderson  <rth@redhat.com>
9769
9770         * function.c (identify_blocks, identify_blocks_1): Remove.
9771         * function.h (identify_blocks): Remove.
9772         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
9773
9774 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
9775
9776         * builtins.c (fold_builtin_classify): New.
9777         (fold_builtin_unordered_cmp): Fix commentary.
9778         (fold_builtin): Use it.
9779         * builtins.def: Define builtins for isnan,
9780         isnanf, isnanl, finite, finitef, finitel,
9781         isinf, isinff, isinfl.
9782
9783 2004-07-01  Richard Henderson  <rth@redhat.com>
9784
9785         * function.h (struct function): Remove dont_emit_block_notes.
9786         * gimple-low.c (lower_function_body): Don't set it.
9787         * cfgexpand.c (expand_block): Don't check it.
9788         * cfglayout.c (insn_locators_initialize): Likewise.
9789         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
9790         * passes.c (rest_of_compilation): Likewise.
9791         * stmt.c (expand_start_bindings_and_block): Likewise.
9792         (expand_end_bindings): Likewise.
9793
9794 2004-07-01  Richard Henderson  <rth@redhat.com>
9795
9796         * cgraph.h (cgraph_build_static_cdtor): Declare.
9797         * cgraphunit.c (cgraph_build_static_cdtor): New.
9798         * c-objc-common.c (build_cdtor): Use it.
9799         * coverage.c (create_coverage): Likewise.
9800         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
9801         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
9802
9803 See ChangeLog.11 for earlier changes.