]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
tree.def (ALIGN_INDIRECT_REF, [...]): New tree-codes.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
7ccf35ed
DN
12004-09-23 Dorit Naishlos <dorit@il.ibm.com>
2
3 * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
4 New tree-codes.
5 * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
6 MISALIGNED_INDIRECT_REF.
7 * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
8 * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
9 Likewise.
10 * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
11 (find_interesting_uses_address): Likewise.
12 * fold-const.c (non_lvalue, operand_equal_p): Likewise.
13 (build_fold_addr_expr_with_type): Likewise.
14 * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
15 * print-rtl.c (print_mem_expr): Likewise.
16 * tree-dump.c (dequeue_and_dump): Likewise.
17 * tree-eh.c (tree_could_trap_p): Likewise.
18 * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
19 * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
20 * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
21 Likewise.
22 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
23 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
24 * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
25 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
26 (add_address_candidates, rewrite_address_base): Likewise.
27 * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
28 Likewise.
29 * tree.c (staticp, build1_stat): Likewise.
30
31 * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
32 * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
33 * tree-ssa-operands.c (get_expr_operands): Likewise.
34 * expr.c (expand_expr_real_1): Likewise.
35
36 * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
37 optabs.
38 (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
39 for the new optabs.
40 (expand_ternary_op): New function.
41 * genopinit.c (optabs): Handle the new optabs.
42 * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
43 (init_optabs): Initialize vec_realign_load_optab.
44 (expand_ternary_op): New functions.
45
46 * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
47 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
48 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
49 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
50 * target.h (struct vectorize): New member for struct gcc_target.
51 (misaligned_mem_ok): New member for targetm.vectorize.
52 (builtin_mask_for_load): Likewise.
53 (builtin_mask_for_store): Likewise.
54 * targethooks.c (default_vect_misaligned_mem_ok): New function.
55 * targethooks.h (default_vect_misaligned_mem_ok): New function.
56
57 * config/rs6000/altivec.md (build_vector_mask_for_load): New
58 define_expand.
59 (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
60 (vec_realign_load_v16qi): New define_insn.
61 * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
62 (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
63 * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
64 (altivec_builtin_mask_for_store): New variables.
65 (rs6000_builtin_mask_for_load): New function. Implements
66 TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
67 (rs6000_builtin_mask_for_store): New function. Implements
68 TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
69 (rs6000_expand_builtin): Expand the target builtins
70 builtin_mask_for_load and builtin_mask_for_store.
71 (altivec_init_builtins): Initialize the new target builtins.
72 * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
73 Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
74
75 * tree-vectorizer.c (vect_create_data_ref): Renamed to
76 vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
77 (vect_create_addr_base_for_vector_ref): Additional argument (offset).
78 (vectorizable_store): Call vect_create_data_ref_ptr with additional
79 arguments, and create an indirect_ref with its return value data_ref.
80 Check aligned_access_p.
81 (vectorizable_load): Handle misaligned loads, using software-pipelined
82 scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
83 vec_realign_load_optab is supported, or using a scheme without
84 software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
85 misaligned_mem_ok is supported.
86
87 (vect_finish_stmt_generation): Typo.
88 (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
89 (vect_analyze_data_refs_alignment): Don't fail vectorization in the
90 presence of misaligned loads.
91 (vect_analyze_data_ref_access): Add check for constant init.
92 (vect_get_symbl_and_dr): Remove duplicate line.
93 * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
94
d31012b7
KH
952004-09-23 Kazu Hirata <kazu@cs.umass.edu>
96
97 * builtins.c: Fix a comment typo.
98
aa26df17
JH
992004-09-23 Jan Hubicka <jh@suse.cz>
100
101 * profile.c (branch_prob): Do not verify flow info in the middle of the
102 pass.
103
92fc4a2f
ZD
1042004-09-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
105
106 * cfgloop.h (update_single_exits_after_duplication): Declare.
107 (loopify, split_loop_bb): Declaration changed.
108 * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
109 of rtx.
110 (loopify): Added redirect_all_edges argument.
111 (update_single_exits_after_duplication): Export.
112 * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
113 * tree-flow.h (tree_duplicate_loop_to_header_edge,
114 tree_ssa_loop_version): Declare.
115 * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
116 set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
117 lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
118 lv_update_pending_stmts, tree_ssa_loop_version): New functions.
119
120 * tree-ssa-loop-unswitch.c: New file.
121 * Makefile.in (tree-ssa-loop-unswitch.o): Add.
122 * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
123 * tree-flow.h (tree_ssa_unswitch_loops): Declare.
124 * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
125 * tree-pass.h (pass_unswitch): Declare.
126 * tree-ssa-loop.c (tree_ssa_loop_unswitch,
127 gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
128 * doc/passes.texi: Documen tree level loop unswitching.
129
d7e9e62a
KH
1302004-09-23 Kazu Hirata <kazu@cs.umass.edu>
131
132 * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
133
d3147f64
EC
1342004-09-22 Eric Christopher <echristo@redhat.com>
135
136 * builtins.c (simplify_builtin_va_start): Remove.
137 (simplify_builtin): Ditto.
138 (fold_builtin_strchr): Ditto.
139 (simplify_builtin_*): Rename remainders to fold_builtin_*.
140 (expand_builtin): Fix up for above changes.
141 (fold_builtin_1): Add new folders. Change for above.
142 (expand_builtin_va_start): Call fold_builtin_next_arg.
143 * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
144 * tree.h: Remove prototype for simplify_builtin.
145
e53de54d
JH
1462004-09-23 Jan Hubicka <jh@suse.cz>
147
60108d34
JH
148 PR debug/17389
149 * dwarf2out.c (dwarf2out_finish): Deal with nested functions
150 of fully inlined functions.
151 * tree-inline.c (inline_forbidden_p_1): Nested functions can be
152 inlined.
153
e53de54d
JH
154 * cfgexpand.c (add_reg_br_prob_note): New function.
155 (expand_gimple_cond_expr): Use it.
156 (tree_expand_cfg): No longer kill the profile.
157 * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
158 only if it is present.
159 * passes.c (rest_of_handle_loop_optimize): Kill the profile.
160 * predict.c (combine_predictions_for_insn): Set the probabilities
161 based on REG_BR_PROB note if present.
162 * predict.c (branch_prob): Profile is read only with
163 flag_branch_probabilities.
164
dfb77e37
KC
1652004-09-22 Kelley Cook <kcook@gcc.gnu.org>
166
167 * aclocal.m4: Add in gettext's m4 includes.
168 (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
a9db2a29 169 * configure.ac: Add in check for iconv.h
dfb77e37 170 * configure: Regenerate.
d3147f64 171
88fa57d7
KC
1722004-09-22 Kelley Cook <kcook@gcc.gnu.org>
173
174 * aclocal.m4: Update for rename of gettext-sister.m4.
175
8eee3528
DB
1762004-09-22 Daniel Berlin <dberlin@dberlin.org>
177
178 Fix PR tree-optimization/17587
179 * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
180 (insert_aux): Instead of here.
181
c04f07f4
DN
1822004-09-22 Diego Novillo <dnovillo@redhat.com>
183
184 PR tree-optimization/16721
185 * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
186 * tree-ssa-alias.c (create_memory_tag): Move setting of
187 TREE_THIS_VOLATILE ...
188 (get_tmt_for): ... here.
189
ba652ba9
EB
1902004-09-22 Eric Botcazou <ebotcazou@libertysurf.fr>
191
192 * config/sparc/sparc.md (cmove splitter): Fix formatting.
193 (conditional_trap expander): Reject inappropriate CCmodes.
8db6bcda 194 (conditional trap insn): Use V9 syntax if possible.
ba652ba9 195
588d1952
JM
1962004-09-22 Joseph S. Myers <jsm@polyomino.org.uk>
197
198 PR c/16566
199 * c-typeck.c (build_component_ref): Don't special-case
200 COMPOUND_EXPR.
201
08fb229e
FCE
2022004-09-22 Frank Ch. Eigler <fche@redhat.com>
203
204 * dominance.c (verify_dominators): Don't SEGV if recount_dominator
205 returns NULL.
206
9b270cce
KH
2072004-09-22 Kazu Hirata <kazu@cs.umass.edu>
208
209 * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
210 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
211 TRUTH_XOR_EXPR): Mention the restriction on types.
212
8739ed59
MA
2132004-09-22 Matt Austern <austern@apple.com>
214
8921359e 215 * config/darwin.c (darwin_make_decl_one_only):
8739ed59 216 Allow coalesced symbol to appear in static archive's table of contents
d3147f64 217
a338ab5a
KH
2182004-09-22 Kazu Hirata <kazu@cs.umass.edu>
219
220 PR tree-optimization/17512
221 * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
222 special cases.
223
39cf49a1
DE
2242004-09-22 David Edelsohn <edelsohn@gnu.org>
225
226 * dbxout.c (get_lang_number): Do not define if
227 DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
228
d1c343cb
RC
2292004-09-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
230
1afd063a 231 PR target/15583
d1c343cb
RC
232 * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
233 builtin_define ("__USE_INIT_FINI__").
234
4798630c
D
2352004-09-22 P.J. Darcy <darcypj@us.ibm.com>
236
237 * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
238 * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
239 * config/s390/s390.h (TARGET_TPF): New macro.
240 * config/s390/s390.md ("eh_return"): New expander.
241 * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
242 unwind-dw2-fde-glibc.c. Add config/s390/tpf-eh.c.
243 (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
244 * config/s390/tpf.h (TARGET_TPF): Define to 1.
245 (STACK_POINTER_OFFSET): Increase to 448.
246 (TARGET_DEFAULT): Set -mtpf-trace on as default.
247 (TPF_LOC_DIFF_OFFSET): New macro.
248 (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
249 encoding.
250 (__isPATrange): Add prototype.
251 (MD_FALLBACK_FRAME_STATE_FOR): Define.
252 * config/s390/tpf-eh.c: New file.
253
6a97296a
DN
2542004-09-22 Diego Novillo <dnovillo@redhat.com>
255
256 * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
257 operands in an integer comparison.
258 * tree-cfg.c (find_taken_edge): Call fold() to determine
259 whether the predicate is known.
260
3b620440
KC
2612004-09-22 Kelley Cook <kcook@gcc.gnu.org>
262
263 * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
264 * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
265 Create build and doc directories along with the language directories.
266 Don't create doc directory separately.
267 * configure: Regenerate.
268 * Makefile.in: Create all object and executables files built
269 with the build compiler in a build/ directory.
270 (genobjnames): Add missing build objects.
271 (STAGESTUFF): Don't stage the gen* programs.
272 (ggc-none.o): Define dependencies for the target compiler.
273 (build-print-rtl.o): Rename to build/print-rtl.o.
274 (build-errors.o): Rename to build/errors.o.
275 (build-varray.o): Rename to build/varray.o.
276 (maintainerclean): Delete the contents of the build directory.
277 ($(genobjs): %.o): Explicitly use -o.
278 (build/insn-conditions.o): Delete specfic rule to use generic rule.
279 (build/gengtype-lex.o): Likewise.
280 (build/gengtype-yacc.o): Likewise.
281 (build/gcov-iov.o): Likewise.
282
0e64e323
NS
2832004-09-22 Nathan Sidwell <nathan@codesourcery.com>
284
285 * vec.h (VEC_space): Return true if there _is_ space.
286 (VEC_reserve): Adjust.
287
e1aeeae9
RS
2882004-09-22 Richard Sandiford <rsandifo@redhat.com>
289
290 * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
291 use FPRs for scalar, complex and vector types only.
292
195da47b
JL
2932004-09-21 Jeff Law <law@redhat.com>
294
23530866
JL
295 * tree-ssa-dom.c (opt_stats): Move so that it lives just after
296 the opt_stats_d structure.
297 (vrp_data): Change from a varray into a hash table.
298 (vrp_hash_elt): New structure for elements in the vrp hash table.
299 (vrp_hash, vrp_eq):New functions for hashing and testing equality
300 in the vrp hash table.
301 (tree_ssa_dominator_optimize): Initialize VRP_DATA. Reorganize
302 initialization slightly to make it easier to read. No longer need
303 to grow/clear the varray. Instead empty and delete the hash table.
304 (dom_opt_finalize_block): Update due to change of VRP_DATA from
305 a varray to a hash table.
306 (simplify_cond_and_loop_avail_expr, record_range): Similarly.
307
195da47b
JL
308 * tree-ssa-ccp.c (get_default_value): If we have a constant
309 value recorded for an SSA_NAME, then use that constant as
310 the initial lattice value.
311 (substitute_and_fold): Transfer equivalences discovered into
312 SSA_NAME_EQUIV.
d3147f64 313
195da47b
JL
314 * tree.h (SSA_NAME_EQUIV): Add comments.
315 (SET_SSA_NAME_EQUIV): Similarly.
316
0a4f0294
DE
3172004-09-21 David Edelsohn <edelsohn@gnu.org>
318
319 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
320
321 * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
322
1ae57298
MM
3232004-09-21 Mark Mitchell <mark@codesourcery.com>
324
325 * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
326 (finish_decl): Likewise.
327
ad9f20cb
DP
3282004-09-21 Devang Patel <dpatel@apple.com>
329
330 * tree.def (VEC_COND_EXPR): New tree node.
331 * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
d3147f64 332
76419821
SS
3332004-09-21 Stan Shebs <shebs@apple.com>
334
335 * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
336 * config/rs6000/darwin-world.asm: Likewise.
d3147f64 337
7bab95ba
DB
3382004-09-21 Daniel Berlin <dberlin@dberlin.org>
339
340 * tree-ssa.c (verify_def): Use print_generic_stmt,
341 not debug_generic_stmt.
342 (verify_use): Ditto.
343 (verify_phi_args): Ditto.
344 (verify_ssa): Ditto.
345
a13fd905
PB
3462004-09-21 Paul Brook <paul@codesourcery.com>
347
348 * varasm.c (default_assemble_integer): Return false for values wider
349 than the target word size. Works around GAS bug.
350
52c5701b
ZW
3512004-09-21 Zack Weinberg <zack@codesourcery.com>
352
353 * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
354 gets value 0.
355 * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
356 if it has value 0.
357
f0c721ad 3582004-09-21 Daniel Berlin <dberlin@dberlin.org>
52c5701b 359
f0c721ad
DB
360 * c-typeck.c (build_function_call): Give name of object
361 we are attempting to call in error message.
362 * c-objc-common.c (c_tree_printer): Call pp_expression,
363 not return false, for 'E' case.
364
c93320c4
SB
3652004-09-21 Steven Bosscher <stevenb@suse.de>
366
367 PR rtl-optimization/17482
368 * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
369 load_killed_in_block_p): Clarify comments.
370 (record_last_reg_set_info): Make static inline.
371 (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
372 (record_opr_changes): New function to replace the above.
373 (compute_hash_table): Clarify comments. Use record_opr_changes.
374 (reg_set_between_after_reload_p): Clean up.
375 (reg_used_between_after_reload_p): Likewise.
376 (eliminate_partially_redundant_load): Clarify comments.
377
15ee342b
EB
3782004-09-21 Eric Botcazou <ebotcazou@libertysurf.fr>
379
380 PR rtl-optimization/17266
381 * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
382
79b82df3
UB
3832004-09-21 Uros Bizjak <uros@kss-loka.si>
384
385 PR rtl-optimization/14851
386 * rtlanal.c (commutative_operand_precedence): Calculate
387 precedence of stripped constant.
388
6f2aec07 3892004-09-20 Jeff Law <law@redhat.com>
52c5701b 390 Jan Hubicka <jh@suse.cz>
6f2aec07
JL
391
392 * tree-ssanames.c (make_ssa_name): No longer need to clear, then
393 initialize key elements here.
394 (release_ssa_name): Zero the released SSA_NAME here.
395 * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
396 (struct tree_ssa_name): Add new "equiv" field.
397 * tree-ssa-dom.c (const_and_copies): Kill the global varray.
398 (tree_ssa_dominator_optimize): No longer allocate, resize or
399 clear CONST_AND_COPIES.
400 (get_value_for, set_value_for): Kill.
401 (thread_across_edge): Get/set the equivalency using
402 SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
403 (restore_vars_to_original_value): Likewise.
404 (record_equivalences_from_phis): Likewise.
405 (record_dominating_conditions): Likewise.
406 (record_const_or_copy, record_equality): Likewise.
407 (lookup_avail_expr): Likewise.
408 (record_equivalences_from_stmt, cprop_operand): Likewise.
409 (cprop_into_successor_phis): No longer need to pass around
410 CONST_AND_COPIES. Callers updated. Get equivalences via
411 SSA_NAME_EQUIV.
412 (cprop_into_phis): Likewise.
413
c162c75e
MA
4142004-09-20 Matt Austern <austern@apple.com>
415 Zack Weinberg <zack@codesourcery.com>
416
417 * c-common.c (fix_string_type): Build the unqualified array
418 type unconditionally, then use c_build_qualified_type to get
419 the proper const-qualified variant, and set its
420 TYPE_MAIN_VARIANT to refer to the unqualified type.
421 * c-lex.c (c_lex_return_raw_string): New global.
422 (c_lex_with_flags): Honor it.
423 * c-pragma.h: Declare it.
424
5cfa8766
DB
4252004-09-20 Daniel Berlin <dberlin@dberlin.org>
426
427 * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
428
d21bede3
JH
4292004-09-21 Jan Hubicka <jh@suse.cz>
430
431 PR middle-end/17126
432 * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
433 (tree_rest_of_compilation): Cleanup.
434
37337e55
UW
4352004-09-20 Ulrich Weigand <uweigand@de.ibm.com>
436
437 * config/s390/s390.c (s390_select_rtx_section): Remove.
438 (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
439
455786b6
KK
4402004-09-20 Kaz Kojima <kkojima@gcc.gnu.org>
441
442 * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
443 note to pretend a direct save from the original register when an
444 intermediate register is used for the save.
445
2c82eecc
KG
4462004-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
447
448 * tsystem.h (alloca): Provide a default definition.
449
450 Revert:
451 2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
452 * unwind-dw2.c: Call __builtin_alloca, not alloca.
453
b1940f0c
AP
4542004-09-20 Andrew Pinski <pinskia@physics.uc.edu>
455
456 PR tree-opt/17558
457 * tree-ssa-copy.c (may_propagate_copy): Only allow if the
458 aliasing sets are the same rather than just conflicting.
459
8f235343
JH
4602004-09-20 Jan Hubicka <jh@suse.cz>
461
462 PR middle-end/16460
463
464 * cgraph.c (cgraph_unnest_node): New function.
465 (c_finalize): Rename to ....
466 (c_warn_unused_result_recursivly): ... this one; do only the warning
467 (finish_function): Finalize the toplevel function; do not lower nested tree.
468 * cgraph.h (cgraph_unnest_node): Declare.
469 * cgraphunit.c (decide_is_function_needed): Do not use cgraph
470 nestedness datastructure.
471 * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
472 * reload1.c (set_label_offsets): Fix call of set_label_offsets.
473 * tree-nested.c (finlize_nesting_tree_1): Use un-nesting code.
474
04161e2b
RH
4752004-09-20 Richard Henderson <rth@redhat.com>
476
477 * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
478 from some_small_symbolic_operand_1; export.
479 (some_small_symbolic_operand): Remove.
480 * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
481 extra C check.
482 * config/alpha/predicates.md (some_small_symbolic_operand): New.
483
bb033fd8
JH
4842004-09-20 Jan Hubicka <jh@suse.cz>
485
486 * predict.c (return_prediction): New function.
487 (apply_return_prediction): Likewise.
488 (tree_bb_level_predictions): Likewise.
489 (tree_estimate_probability): Add noreturn exit edges; call
490 bb_level_predictions; fix logic of return heuristics.
491 (predict_paths_leading_to): Rescuesce from old CVS version of
492 process_note_prediction function.
493 * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
494
ea506297
AK
4952004-09-20 Andreas Krebbel <krebbel1@de.ibm.com>
496
497 * config/s390/s390.c (s390_frame_info): Added alignment statement for
498 floating point register area on stack.
499
096759eb
JJ
5002004-09-20 Jakub Jelinek <jakub@redhat.com>
501
502 * predict.c (expr_expected_value): Use *_CLASS_P macros.
503
d6fd4b8d
DB
5042004-09-20 Daniel Berlin <dberlin@dberlin.org>
505
c162c75e 506 * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
d6fd4b8d
DB
507 generating useless garbage.
508
c2dda19b
PB
5092004-09-20 Paolo Bonzini <bonzini@gnu.org>
510
511 * builtins.c (fold_builtin): Call the new omonymous
512 target hook for machine-dependent built-ins.
513 * target-def.h (TARGET_FOLD_BUILTIN): New.
514 * target.h (struct gcc_target): Add the fold_builtin hook.
515 * targhooks.c (default_fold_builtin): New.
516 * targhooks.h (default_fold_builtin): Declare it.
517
d4a9b3a3
KH
5182004-09-20 Kazu Hirata <kazu@cs.umass.edu>
519
520 * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
521 comment typos.
522
073cbad3
RS
5232004-09-20 Richard Sandiford <rsandifo@redhat.com>
524
525 PR target/17565
526 * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
527
58016611
JH
5282004-09-20 Jan Hubicka <jh@suse.cz>
529
530 * predict.c (estimate_probability): Remove unnecesary code.
531
6775f1f3
IR
5322004-09-19 Ira Rosen <irar@il.ibm.com>
533
534 * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
535 (STMT_VINFO_VECT_DR_BASE): Declare.
536 (VECT_SMODULO): Declare.
537 * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
538 (vect_compute_array_base_alignment): New function.
539 (vect_analyze_data_ref_access): Check array indices. Remove one
540 dimensional arrays restriction.
541 (vect_get_ptr_offset): New function.
542 (vect_get_symbl_and_dr): New function.
543 (vect_get_base_and_bit_offset): Support additional data refs. Renamed
544 (former name vect_get_base_decl_and_bit_offset).
545 (vect_create_index_for_array_ref): Removed.
546 (vect_create_index_for_vector_ref): New function.
547 (vect_create_addr_base_for_vector_ref): New function.
548 (vect_create_data_ref): Handle additional data refs. Call
549 vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
550 (vect_compute_data_ref_alignment): Support the changes. Call
551 vect_get_base_and_bit_offset.
552 (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
553 data refs. Store vect_dr_base.
554 (vect_analyze_data_ref_accesses): Support nonconstant init.
555 (new_stmt_vec_info): Initialize vect_dr_base field.
556 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
557 (get_vectype_for_scalar_type): Check for BLKmode.
558 * tree-chrec.h (initial_condition_in_loop_num): Declare.
559 * tree-chrec.c (initial_condition_in_loop_num): New function.
560 (chrec_component_in_loop_num): New function.
561 (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
562 * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
563 to be pointer to varray_type.
564
15db5571
JH
5652004-09-19 Jan Hubicka <jh@suse.cz>
566
567 * basic-block.h (update_bb_profile_after_threading): Declare.
568 * cfg.c (update_bb_profile_after_threading): Break out from ...
569 * cfgcleanup.c (try_forward_edges): ... here; use it.
570 * tree-ssa-dom.c (thread_across_edge): Use it.
571 * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
572 profile of the new BB.
573
97141338
DB
5742004-09-19 Daniel Berlin <dberlin@dberlin.org>
575
576 * tree-ssa-pre.c (insert_into_set): Don't put
577 is_gimple_min_invariant values into the set.
578
76fd4fd7
AJ
5792004-09-19 Andreas Jaeger <aj@suse.de>
580
581 * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
582 prototype.
583
938688cd
KH
5842004-09-18 Kazu Hirata <kazu@cs.umass.edu>
585
586 * config/cris/cris.h: Preserve the original spelling in a
587 quote.
588
fdabe5c2
JL
5892004-09-18 Jeff Law <law@redhat.com>
590
591 * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
592 global varrays to replace the block local varrays.
593 (struct dom_walk_block_data): Remove, no longer used.
594 (get_eq_expr_value): No longer need to pass around pointers to local
595 varrays. Callers updated. Unused markers added to unused parameters.
596 (record_range, record_equivalences_from_stmt): Likewise.
597 (record_equivalences_from_incoming_edge): Likewise.
598 (record_var_is_nonzero): Likewise. Update now that we have a
599 single global varray of SSA_NAMEs that need restoring.
600 (dom_opt_initialize_block_local_data): Kill, no longer used.
601 (tree_ssa_dominator_optimize): Initialize new global varrays.
602 Update callbacks in dominator walker structure.
603 (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
604 VRP_VARIABLES_STACK.
605 (restore_nonzero_vars_to_original_value): Update now that we have
606 a single global varray of SSA_NAMEs that need restoring.
607 (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
608 Remove unused variables.
609 (optimize_stmt): Remove unused variable.
610
0eac5feb
JH
6112004-09-18 Jan Hubicka <jh@suse.cz>
612
4d539f68
JH
613 * tree-cfg.c (thread_jumps): Fix updating of the profile.
614
0eac5feb
JH
615 * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
616 verify_cgraph call.
617
454ff5cb
KH
6182004-09-18 Kazu Hirata <kazu@cs.umass.edu>
619
620 * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
621 gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
622 optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
623 tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
624 tree-ssa-operands.c, tree-ssa-phiopt.c,
625 tree-ssa-threadupdate.c: Fix comment typos.
626
112cdef5
KH
6272004-09-18 Kazu Hirata <kazu@cs.umass.edu>
628
629 * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
630 config/arm/README-interworking, config/arm/arm-cores.def,
631 config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
632 config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
633 config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
634 config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
635 config/frv/frv.md, config/i386/winnt.c,
636 config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
637 config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
638 config/m68hc11/m68hc11.md, config/m68k/m68k.c,
639 config/mcore/mcore.c, config/mips/mips.h,
640 config/mn10300/mn10300.md, config/pa/pa.c,
641 config/pa/pa64-regs.h, config/pdp11/pdp11.c,
642 config/rs6000/rs6000.c, config/sh/symbian.c,
643 config/sparc/sparc.h: Fix comment typos. Follow spelling
644 conventions.
645
ad97f4be
JM
6462004-09-18 Joseph S. Myers <jsm@polyomino.org.uk>
647
648 PR c/17424
649 * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
650
57e28d7d
DN
6512004-09-18 Diego Novillo <dnovillo@redhat.com>
652
653 * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
654 remove TREE_ADDRESSABLE from RESULT_DECL.
655
d804d490
DN
6562004-09-18 Diego Novillo <dnovillo@redhat.com>
657
658 * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
659
8b547e44
JH
6602004-09-18 Jan Hubicka <jh@suse.cz>
661
662 * tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return
663 NULL.
664 * tree-ssa-alias.c (init_alias_info): Likewise.
665 * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
666 (verify_ssa): Likewise.
667 * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
668
b8771ace
JH
6692004-09-18 Jan Hubicka <jh@suse.cz>
670
671 * i386.c (legitimize_pic_address): Fix splitting of PLUS with
672 huge offset.
673
f4966f8c
KK
6742004-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
675
676 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
677 * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
678 DW_EH_PE_sdata* for data.
679 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
680
a396f8ae
GK
6812004-09-17 Geoffrey Keating <geoffk@apple.com>
682
683 * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
684 shared anyway.
685
686 PR pch/13361
687 * c-typeck.c (constructor_asmspec): Delete.
688 (struct initializer_stack): Delete field 'asmspec'.
689 (start_init): Delete saving of asmspec.
690 (finish_init): Don't update constructor_asmspec.
691 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
692 * stmt.c (expand_asm): Duplicate strings from tree.
693 (expand_asm_operands): Likewise.
694 * tree.c (tree_size): Update computation of size of STRING_CST.
695 (make_node): Don't make STRING_CST nodes.
696 (build_string): Allocate string with tree node.
697 (tree_code_size): Clean up assertions, don't allow requests
698 for "the size of a STRING_CST".
699 * tree.def (STRING_CST): Update comment.
700 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
701 (tree_string): Place contents of string in tree node.
702 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
703 from tree.
704
9aa44508
ZW
7052004-09-17 Zack Weinberg <zack@codesourcery.com>
706
707 * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
708 * objc/Make-lang.in (objc/objc-parse.o): Likewise.
709
bf3b7cd3
JD
7102004-09-17 Jones Desougi <jones@ingate.com>
711
712 * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
713 * configure, config.in: Regenerate.
714
b85e3643
ZW
7152004-09-17 Zack Weinberg <zack@codesourcery.com>
716
717 * tree.c, tree.h (tree_class_strings): Make array const.
718 Reindent per coding convention. Move asterisk to proper place
719 per coding convention.
720
6e336333
AS
7212004-09-18 Andreas Schwab <schwab@suse.de>
722
723 * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
724 (tree-vectorizer.o): Likewise.
725 (targhooks.o): Likewise.
726
6615c446
JO
7272004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
728 Zack Weinberg <zack@codesourcery.com>
729
730 * alias.c (find_base_decl): Remove unreachable case '3' block.
731 * expr.c (safe_from_p): Abort if passed a type.
732 * tree-gimple.c (recalculate_side_effects): Abort if passed
733 anything other than an expression.
734 * tree-ssa-pre.c (phi_translate): Return expr immediately if
735 is_gimple_min_invariant is true for it. Reorder cases for clarity.
736 Abort on un-handled tree classes.
737 (valid_in_set): Likewise.
738 * tree.c (tree_code_class_strings): New static data.
739
740 * tree.h (enum tree_code_class): New.
741 (tree_code_class_strings): Declare.
742 (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
743 (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
744 (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
745 (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
746 (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
747
748 * tree.def, c-common.def, objc/objc-tree.def: Use
749 tree_code_class enumeration constants instead of code letters.
750
751 * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
752 * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
753 * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
754 * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
755 * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
756 * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
757 * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
758 * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
759 * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
760 * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
761 * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
762 * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
763 * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
764 Update to match.
765
766 * LANGUAGES: Add note about change.
767
823f0809
DN
7682004-09-17 Diego Novillo <dnovillo@redhat.com>
769
770 PR tree-optimization/17319
771 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
772 examine pointers on the LHS of an assignment.
773 (collect_points_to_info_r): Handle RETURN_EXPR.
774
b5fefcf6
JL
7752004-09-17 Jeff Law <law@redhat.com>
776
777 * tree-ssa-dom.c (const_and_copies_stack): New.
778 (dom_walk_block_data): Remove const_and_copies field.
779 (record_const_or_copy): No longer need to pass in varray_type *.
780 Use CONST_AND_COPIES_STACK rather than passed in block local stack.
781 Callers updated.
782 (record_equality): Similarly.
783 (restore_vars_to_original_value): Similarly. Revamp to use new
784 single global stack rather than per-block stacks.
785 (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
786 (thread_across_edge): Remove now unused parameters.
787 (dom_opt_initialize_block_local_data): No longer test the block
788 local CONST_AND_COPIES.
789 (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
790
2c459e74
JH
7912004-09-17 Jan Hubicka <jh@suse.cz>
792
793 PR tree-optimization/17509
794 * tree-optimize.c (update_inlined_to_pointers): New function.
795 (tree_rest_of_compilation): Use it.
796
0456cbf6
DP
7972004-09-17 Devang Patel <dpatel@apple.com>
798
799 * dbxout.c (get_lang_number): New.
800 (dbxout_init): Include lang number in N_SO stab.
801 * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
802 N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
6615c446 803
7eae8eb2
DN
8042004-09-17 Diego Novillo <dnovillo@redhat.com>
805
806 PR tree-optimization/17273
807 * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
808 replacement is a constant.
809
98c3a782
JM
8102004-09-17 Joseph S. Myers <jsm@polyomino.org.uk>
811
812 * c-tree.h (enum c_typespec_keyword): New.
813 (struct c_declspecs): Adjust description of "type". Remove
814 specbits, explicit_int_p and explicit_char_p. Rename
815 typedef_signed_p to explicit_signed_p. Add default_int_p, long_p,
816 short_p, signed_p, unsigned_p and complex_p.
817 (finish_declspecs): New.
818 * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
819 typename): Call finish_declspecs.
820 * c-decl.c (finish_declspecs): New.
821 (declspecs_add_type): Check for combinations which cannot occur in
822 valid specifier lists. Update comments.
823 (shadow_tag_warned): Remove checks done in finish_declspecs.
824 Don't report useless type name if type defaulted to int.
825 (grokdeclarator): Remove checks and actions done in
826 finish_declspecs. Don't allow for type being NULL. Update for
827 datastructures changes. Initialize decl_attr.
828 (build_null_declspecs, quals_from_declspecs): Update for
829 datastructures changes.
830
254ea84c
SP
8312004-09-17 Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
832
6615c446 833 * doc/extend.texi: Fix duplicated word.
254ea84c 834
fa151acf
TM
8352004-09-17 Toon Moene <toon@moene.indiv.nluug.nl>
836
837 * doc/invoke.texi: Remove stray explanation on
838 -freduce-all-givs and -fmove-all-movables.
839
cd1a8088
JM
8402004-09-17 James Morrison <phython@gcc.gnu.org>
841
842 * doc/cfg.texi: Use @smallexample.
843 * doc/md.texi: Likewise.
844 * doc/tree-ssa.texi: Likewise.
845 * doc/extend.texi: Likewise. Use @r{} in comments.
846 * doc/trouble.texi: Use @r{} in comments.
847
58ea87a9
HPN
8482004-09-17 Hans-Peter Nilsson <hp@bitrange.com>
849
850 * configure.ac (gcc_cv_gld_version): Handle whitespace before
851 "VERSION=".
852 * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
853 * configure: Regenerate.
854
788bb47d
JR
8552004-09-17 J"orn Rennecke <joern.rennecke@superh.com>
856
857 * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
858 (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
859 * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
860 * t-sh64 (MULTILIB_CPU_DIRS): Likewise. Match dashes and trailing
861 slashes in substitutions.
862 (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
863
b01d837f
KH
8642004-09-17 Kazu Hirata <kazu@cs.umass.edu>
865
866 * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
867 gimplify.c, lambda-code.c, optabs.c, predict.c,
868 tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
869 tree-ssa.c, vec.h: Fix comment typos. Follow spelling
870 conventions.
871
4ec7afd7
KH
8722004-09-17 Kazu Hirata <kazu@cs.umass.edu>
873
874 * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
875 doc/extend.texi, doc/install.texi, doc/invoke.texi,
876 doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
877 doc/trouble.texi: Use @option around options.
878
6eab2bc3
RS
8792004-09-17 Richard Sandiford <rsandifo@redhat.com>
880
881 * Makefile.in (gen-protos.o): Depend on errors.h.
882
275a4187
SB
8832004-09-17 Steven Bosscher <stevenb@suse.de>
884
6615c446 885 PR tree-optimization/17513
275a4187
SB
886 * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
887 for successors of the entry block.
888
b355f222
UB
8892004-09-17 Uros Bizjak <uros@kss-loka.si>
890
891 PR rtl-optimization/15187
892 * ifcvt.c (noce_try_cmove_arith): Exit early if total
893 insn_rtx_cost of both branches > BRANCH_COST
894
7a116211
DN
8952004-09-16 Diego Novillo <dnovillo@redhat.com>
896
897 PR tree-optimization/17528
898 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
899 erase the may-alias set for a tag when merging it with
900 another.
901
e57450ce
KK
9022004-09-16 Kaz Kojima <kkojima@gcc.gnu.org>
903
904 * config/sh/sh.md (call): Extend 32-bit addresses to DImode
905 for 32-bit TARGET_SHMEDIA.
906 (call_value): Likewise.
907
1800536a
DN
9082004-09-16 Diego Novillo <dnovillo@redhat.com>
909
910 * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
911 test apply only to TREE_STATIC and DECL_EXTERNAL.
912
42759f1e
ZD
9132004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
914
915 * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
916 * basic-block.h (get_dominated_by_region): Declare.
917 * dominance.c (get_dominated_by_region): New function.
918 * tree-cfg.c: Include cfglayout.h.
919 (tree_duplicate_bb): Duplicate also phi nodes.
920 (struct ssa_name_map_entry): New type.
921 (add_phi_args_after_copy_bb, add_phi_args_after_copy,
922 ssa_name_map_entry_hash, ssa_name_map_entry_eq,
923 allocate_ssa_names, rewrite_to_new_ssa_names_def,
924 rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
925 rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
926 * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
927 add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
928 rewrite_to_new_ssa_names, allocate_ssa_names,
929 rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
930 * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
931 (copy_loop_headers): Use tree_duplicate_sese_region.
932
2731cf24
FCE
9332004-09-16 Frank Ch. Eigler <fche@redhat.com>
934
935 * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
936
9fae925b
JL
9372004-09-16 Jeff Law <law@redhat.com>
938
939 * tree-into-ssa.c (block_defs_stack): New toplevel varray.
940 (rewrite_block_data): Remove, no longer used.
941 (rewrite_initialize_block_local_data): Remove, no longer used.
942 (rewrite_initialize_block): Mark parameters as unused as needed.
943 Change references to the block local block_defs to be block_defs_stack.
944 Push a marker onto the block_defs_stack.
945 (ssa_rewrite_initialize_block): Similarly.
946 (rewrite_stmt, ssa_rewrite_stmt): Similarly.
947 (ssa_register_new_def): No longer needs varray argument. Use
948 block_defs_stack instead. No longer handle possibly null block_defs
949 varray. Reverse order of items we push on the stack to make it
950 easier to identify our marker.
951 (register_new_def): No longer handle possibly null block_defs
952 varray.
953 (rewrite_finalize_block): Revamp to look for markers in the global
954 block_defs_stack varray rather than wiping a block local varray.
955 Mark arguments as unused as needed.
956 (ssa_rewrite_finalize_block): Similarly.
957 (rewrite_into_ssa): Update initialization of dom walker structure
958 to reflect that we don't need block local data anymore. Initialize
959 the block_defs_stack varray.
960 (rewrite_ssa_into_ssa): Similarly.
961 * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
962 (struct dom_walk_data): Kill block_defs field.
963 (tree_ssa_dominator_optimize): Initialize block_defs_stack.
964 (thread_across_edge): Use the global block_defs_stack instead of
965 the old block_defs varray.
966 (dom_opt_initialize_block_local_data): Update now that we don't have
967 block_defs field to check anymore.
968 (dom_opt_initialize_block): Push a marker onto block_defs_stack.
969 (restore_currdefs_to_original_value): Use the new block_defs_stack
970 instead of a block local varray.
971 (dom_opt_finalize_block): Similarly.
972 (record_equivalencs_from_phis): Similarly.
973 (optimize_stmt, register_definitions_for_stmt): Similarly.
974
49f48e9f
AM
9752004-09-16 Andrew MacLeod <amacleod@redhat.com>
976
977 PR tree-optimization/17517
6615c446 978 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
49f48e9f
AM
979 coalesce same-root variables without checking for abnormal PHI usage.
980
f67d92e9 9812004-09-16 Daniel Berlin <dberlin@dberlin.org>
6615c446 982
f67d92e9
DB
983 * cfgloop.h (duplicate_loop): Add prototype.
984 * cfgloopmanip.c (duplicate_loop): Make non-static.
985 * lambda-code.c (perfect_nestify): Factor out test whether
986 we can handle this loop into separate function.
987 Call it.
988 (can_convert_to_perfect_nest): New function.
989 (replace_uses_of_x_with_y): Add modify_stmt call.
990 * tree-loop-linear.c (linear_transform_loops): Call
991 rewrite_into_loop_closed_ssa and free_df.
992
9932004-09-16 Daniel Berlin <dberlin@dberlin.org>
994
995 * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
996 loop invariant as well.
997 (perfect_nestify): new function.
998 (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
6615c446 999 upper bounds, and steps.
f67d92e9
DB
1000 Set outerinductionvar properly.
1001 (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
1002 parameters.
1003 Return NULL if we need a perfect loop and can't make one.
1004 (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
1005 (not_interesting_stmt): New function.
1006 (phi_loop_edge_uses_def): Ditto.
1007 (stmt_uses_phi_result): Ditto.
1008 (stmt_is_bumper_for_loop): Ditto.
1009 (perfect_nest_p): Ditto.
1010 (nestify_update_pending_stmts): Ditto.
1011 (replace_uses_of_x_with_y): Ditto.
1012 (stmt_uses_op): Ditto.
1013 (perfect_nestify): Ditto.
1014 * lambda-mat.c (lambda_matrix_id_p): New function.
1015 * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
1016 * lambda.h: Update prototypes.
1017 * tree-loop-linear (linear_transform_loop): Use new
1018 perfect_nest_p. Detect and ignore identity transform.
1019 * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
1020
10212004-09-16 Sebastian Pop <pop@cri.ensmp.fr>
1022
1023 * tree-loop-linear.c (gather_interchange_stats): Add more comments.
6615c446 1024 Gather also strides of accessed data. Pass in the data references
f67d92e9 1025 array.
6615c446 1026 (try_interchange_loops): Add a new heuristic for handling the temporal
f67d92e9
DB
1027 locality. Pass in the data references array.
1028 (linear_transform_loops): Pass the data references array to
1029 try_interchange_loops.
1030
83c99486
KH
10312004-09-16 Kazu Hirata <kazu@cs.umass.edu>
1032
1033 * doc/invoke.texi: Fix typos. Follow spelling conventions.
1034
4b30ad7e
NS
10352004-09-16 Nathan Sidwell <nathan@codesourcery.com>
1036
1037 * doc/c-tree.texi (Classes): Remove index entries for
1038 TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
1039
2f4675b4
ZD
10402004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1041
1042 * fold-const.c (fold): Fold difference of addresses.
1043 (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
1044 get_inner_reference.
1045 * tree-ssa-loop-ivopts.c (peel_address): Removed.
1046 (ptr_difference_const): Moved to fold-const.c.
1047 (split_address_cost): Use get_inner_reference instead of peel_address.
1048 (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
1049 * tree.h (ptr_difference_const): Export.
1050
1051 * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
1052 variable type to the dump. Fix indentation.
1053 (idx_find_step): Handle nonconstant array_ref_element_size and
1054 array_ref_low_bound.
1055 (idx_record_use): Handle array_ref_element_size and
1056 array_ref_low_bound.
1057 (find_interesting_uses_stmt): Handle memory = nontrivial_expression
1058 statements correctly.
1059 (get_computation_at, iv_value): Do not unshare expressions here.
1060 (rewrite_use_outer): Unshare the expression before it is emitted
1061 to code.
1062 * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
1063 Moved to tree.c.
1064 * tree.c (unsigned_type_for, signed_type_for): Moved from
1065 tree-ssa-loop-niter.c. Use langhooks.
1066 * tree.h (signed_type_for): Export.
1067
8210e4c4
DE
10682004-09-16 David Edelsohn <edelsohn@gnu.org>
1069
1070 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
1071 prototype.
1072
3dd53121
AP
10732004-09-15 Andrew Pinski <pinskia@physics.uc.edu>
1074
1075 PR target/11572
1076 * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
1077 Add two parameters to extra_includes.
1078 (C_INCPATH_INIT): Remove.
1079 * c-incpath.c (register_include_chains): Call extra_pre_includes
1080 before adding the standard include directory.
1081 Update call to extra_includes.
1082 (!defined TARGET_EXTRA_INCLUDES): Update
1083 hook_void_charptr_charptr_int and add !define
1084 TARGET_EXTRA_PRE_INCLUDES.
1085 (!define TARGET_EXTRA_INCLUDES): Define as
1086 hook_void_charptr_charptr_int.
1087 (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
1088 (target_c_incpath): Always declare.
1089 * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
1090 empty function.
1091 (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
1092 * config/darwin.h: (darwin_register_frameworks): Update for
1093 the two new parameters.
1094 (darwin_register_objc_includes): Add prototype.
1095 (TARGET_EXTRA_PRE_INCLUDES): Define.
1096 * config/darwin-c.c (darwin_register_objc_includes): New function.
1097 (darwin_register_frameworks): Update for the two new parameters.
1098 (target_c_incpath): Remove.
1099 * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
1100 the compile line.
1101 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
1102 parameters.
1103 (TARGET_EXTRA_PRE_INCLUDES): Document.
1104
1105 * gcc.c (spec_function): Add replace-outfile.
1106 (replace_outfile_spec_function): New function.
1107 * config/darwin.h (LINK_SPEC): Add replace
1108 -lobjc with -lobjc-gnu if -fgnu-runtime is
1109 supplied.
1110 * invoke.texi (replace-outfile): Document.
1111
42f97fd2
JH
11122004-09-13 Jan Hubicka <jh@suse.cz>
1113
1114 * predict.c (expr_expected_value, strip_builtin_expect): New function.
1115 (tree_predict_by_opcode): Use it.
1116 (tree_estimate_probability): Add, for now disabled,
1117 strip_builtin_expect call.
1118
097f3d48
JW
11192004-09-15 James E Wilson <wilson@specifixinc.com>
1120
1121 PR target/17455
1122 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
1123 if current_function_decl is a sibcall.
1124
04a75188
MM
11252004-09-15 Mark Mitchell <mark@codesourcery.com>
1126
1127 * varasm.c (default_function_rdodata_section): Make sure to pass
1128 along a decl for a link-once section.
1129
e776368b
RH
11302004-09-15 Richard Henderson <rth@redhat.com>
1131
1132 * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
1133 warning with code disable. Fix formatting.
1134
c7f90219
SB
11352004-09-15 Steven Bosscher <stevenb@suse.de>
1136
1137 * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
1138 * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
6615c446 1139 after propagating into an ADDR_EXPR.
c7f90219 1140
2f021b67
AP
11412004-09-15 Andrew Pinski <apinski@apple.com>
1142
1143 PR rtl-opt/17427
1144 * gcse.c (process_insert_insn): insn_invalid_p has side effects.
1145 Move it out of gcc_assert.
1146
971801ff
JM
11472004-09-15 Joseph S. Myers <jsm@polyomino.org.uk>
1148
1149 * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
1150 except.c, fold-const.c, function.c, langhooks.c, params.c,
1151 reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
1152 tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
1153 for quoting in diagnostics going through pretty-print.c. Use ''
1154 for quoting in other diagnostic text.
1155 * langhooks.c: Include intl.h. Mark text locating diagnostics for
1156 translation.
1157 * Makefile.in (langhooks.o): Update dependencies.
1158 * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
1159 formats.
1160
c18a5b6c
MM
11612004-09-15 Mark Mitchell <mark@codesourcery.com>
1162
1163 * configure.ac: Check for COMDAT support. Robustify check for
1164 SHF_MERGE support.
1165 * configure: Regenerated.
1166 * config.in: Likewise.
1167 * langhooks-def.h (lhd_comdat_group): New function.
1168 (LANG_HOOKS_COMDAT_GROUP): New macro.
1169 (LANG_HOOKS_DECLS): Use it.
1170 * langhooks.c (lhd_comdat_group): Define.
1171 * langhooks.h (lang_hooks_for_decls): Add comdat_group.
1172 * output.h (named_section_flags): Make it a macro.
1173 (named_section_real): New function.
1174 (default_no_named_section): Add decl parameter.
1175 (default_elf_asm_named_section): Likewise.
1176 (default_coff_asm_named_section): Likewise.
1177 (default_pe_asm_named_section): Likewise.
1178 * target.h (gcc_target): Adjust type of named_section.
1179 * varasm.c (named_section_flags): Rename to named_section_real.
1180 Add decl parameter.
1181 (default_no_named_section): Add decl parameter.
1182 (default_elf_asm_named_section): Use COMDAT, if available. Deal
1183 with the case that ASM_COMMENT_START is "@".
1184 (default_coff_asm_named_section): Add decl parameter.
1185 (default_pe_asm_named_section): Likewise.
1186 * config/alpha/alpha.c (vms_asm_named_section): Add decl
1187 parameter.
1188 (unicosmk_asm_named_section): Likewise.
1189 * config/arm/arm.c (arm_elf_asm_named_section): Remove.
1190 * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
1191 * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
1192 * config/cris/cris-protos.h (cris_target_asm_named_section):
1193 Likewise.
1194 * config/cris/cris.c (cris_target_asm_named_section):
1195 Likewise.
1196 * config/darwin/darwin-protos.h (darwin_asm_named_section):
1197 Likewise.
1198 * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
1199 * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
1200 * config/i386/i386-protos.h (i386_pe_asm_named_section):
1201 Likewise.
1202 * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
1203 * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
1204 * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
1205 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
1206 Likewise.
1207 * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
1208 * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
1209 * cp/cp-tree.h (cxx_comdat_group): Declare.
1210 * cp/decl.c (cxx_comdat_group): New function.
1211
fe7139ac
JH
12122004-09-15 Jan Hubicka <jh@suse.cz>
1213
87527e4b
JH
1214 * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
1215 * tree-tailcall.c (eliminate_tail_call): Release SSA name.
1216
fe7139ac
JH
1217 * tree-cfg.c (remove_bb): Release SSA defs.
1218
1a141fe1
KH
12192004-09-15 Kazu Hirata <kazu@cs.umass.edu>
1220
1221 * doc/tm.texi: Follow spelling conventions.
1222
b3a27618
KH
12232004-09-15 Kazu Hirata <kazu@cs.umass.edu>
1224
1225 * tree-ssa-dom.c: Fix comment typos.
1226
43e7c6a4
AM
12272004-09-15 Alan Modra <amodra@bigpond.net.au>
1228
1229 * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
1230 include ccr.
1231 (ppc_fallback_frame_state): Save location of CR.
1232
9a520f40
JJ
12332004-09-15 Jakub Jelinek <jakub@redhat.com>
1234
a45f71f5
JJ
1235 * expr.c (string_constant): Handle also read-only variables
1236 initialized to string literals.
1237
9a520f40
JJ
1238 * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
1239 into memcpy (x, y, 1) if memcpy can be expanded inline.
1240
b1d16eff
ZD
12412004-09-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1242
1243 PR tree-optimization/17468
1244 * tree-ssa.c (verify_use, verify_phi_args, verify_ssa): Verify that
1245 definition inside a block precede uses.
1246 * tree-tailcall.c (adjust_return_value): Emit statements in the
1247 correct order.
1248
36579192
RS
12492004-09-15 Richard Sandiford <rsandifo@redhat.com>
1250
1251 * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
1252
7c2f2b41
EB
12532004-09-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1254
1255 * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
1256
a5c965c1
JL
12572004-09-14 Jeff Law <law@redhat.com>
1258
48732f23
JL
1259 * tree-ssa-dom.c (avail_exprs_stack): New global varray.
1260 (struct dom_walk_block_data): Remove avail_exprs member.
1261 (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
1262 (lookup_avail_expr): No longer need to pass in address of
1263 the block local available exprs stack. All callers changed.
1264 (simplify_cond_and_lookup_avail_expr): Similarly.
1265 (simplify_switch_and_lookup_avail_expr): Similarly.
1266 (get_eq_expr_value, record_cond): Likewise.
1267 (record_dominating_conditions): Likewise.
1268 (update_rhs_and_lookup_avail_expr): Likewise.
1269 (record_equivalences_from_stmt): Likewise.
1270 (dom_opt_initialize_block_local_data): No longer test state of
1271 block local avail_exprs.
1272 (dom_opt_initialize_block): Mark unwind point in the global
1273 avail_expr stack.
1274 (remove_expressions_from_table): Update to unwind to the
1275 most recent unwind marker in the global avail_expr stack.
1276 All callers changed.
1277 (dom_opt_finalize_block): Mark unwind point in the global
1278 avail_expr stack as needed.
1279 (record_cond): Push elements into the global avail_exprs stack.
1280
a5c965c1
JL
1281 * tree-dfa.c (free_df_for_stmt): No longer static.
1282 (free_df): Update comments.
1283 * tree-flow.h (free_df_for_stmt): Prototype.
1284 * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also
1285 call release_defs.
1286
391f9afb
DN
12872004-09-14 Diego Novillo <dnovillo@redhat.com>
1288
1289 PR tree-optimization/17252
1290 * tree-ssa-alias.c (may_alias_p): Don't assume that a
1291 pointer may not point to itself when using relaxed
1292 aliasing rules.
1293
67f23620
RH
12942004-09-14 Richard Henderson <rth@redhat.com>
1295
1296 PR middle-end/17397
1297 * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
1298 while folding <ADDR_EXPR <INDIRECT_REF X>>.
1299
5ffcd779
AP
13002004-09-14 Andrew Pinski <apinski@apple.com>
1301
1302 * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
1303 sets of the pointers but the aliasing sets of what they point to.
1304
f6ae6c51
RS
13052004-09-14 Roger Sayle <roger@eyesopen.com>
1306
1307 PR rtl-optimization/9771
1308 * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
1309 conditional compilation in init_reg_sets_1.
1310 (init_reg_sets_1): Let global_regs[i] take priority over the frame
1311 (but not stack) pointer exceptions to regs_invalidated_by_call.
1312 (globalize_reg): Globalizing a fixed register may need to update
1313 regs_invalidated_by_call.
1314
1810f6ed
DN
13152004-09-14 Diego Novillo <dnovillo@redhat.com>
1316
1317 PR tree-optimization/15262
1318 * tree-dfa.c (dump_variable): Also print the type of the
1319 variable.
1320 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
1321 memory tags are of conflicting alias sets but have no aliased
1322 symbols in common, add one tag to the alias set of the other.
1323 (setup_pointers_and_addressables): Remove hack to deal with
1324 programs with no aliased symbols.
1325 (may_alias_p): Don't special case aggregate types.
1326
0e6d31fb
JM
13272004-09-14 Joseph S. Myers <jsm@polyomino.org.uk>
1328
1329 PR c/15498
1330 * doc/invoke.texi (Environment Variables): Correct example locale.
1331
ab3b6795
JH
13322004-09-14 Jan Hubicka <jh@suse.cz>
1333
1334 * cfg.c (expunge_block): Revert previous change adding ggc_free call.
1335
0c0f8409
MM
13362004-09-14 Mark Mitchell <mark@codesourcery.com>
1337
1338 * config.gcc: Do not build a shared libgcc for arm-none-eabi.
1339
3b53cddc
JM
13402004-09-14 Joseph S. Myers <jsm@polyomino.org.uk>
1341
1342 * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
1343 restrict_p.
1344 (struct c_declarator): Change u.array.quals and pointer_quals to
1345 int. Add u.array.attrs.
1346 (quals_from_declspecs): New.
1347 * c-decl.c (quals_from_declspecs): New.
1348 (shadow_tag_warned): Give more specific message for useless type
1349 qualifiers.
1350 (build_array_declarator, set_array_declarator_inner,
1351 grokdeclarator, make_pointer_declarator, build_null_declspecs,
1352 declspecs_add_qual): Update for changed structures.
1353
a6e1aa26
JL
13542004-09-14 Jeff Law <law@redhat.com>
1355
1356 * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
6615c446 1357 to a global varray.
a6e1aa26
JL
1358 (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
1359 (dom_opt_initialize_block_local_data): No longer test state
1360 of stmts_to_rescan.
1361 (dom_opt_finalize_block): Update due to change in scope of
1362 stmts_to_rescan.
1363 (optimize_stmt): Similarly.
1364
8e3c61c5
KH
13652004-09-14 Kazu Hirata <kazu@cs.umass.edu>
1366
1367 * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
1368 lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
1369 comment typos. Follow spelling conventions.
1370
0e40b5f2
KH
13712004-09-14 Kazu Hirata <kazu@cs.umass.edu>
1372
1373 * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
1374 config/i386/predicates.md, config/sparc/sparc.c: Follow
1375 spelling conventions.
1376
113d659a
ZD
13772004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1378 Steven Bosscher <stevenb@suse.de>
1379
1380 * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
1381 * basic-block.h (struct reorder_block_def): Add copy_number field.
1382 * cfgloop.h (biv_p): Declare.
1383 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
1384 * common.opt (fsplit-ivs-in-unroller): New flag.
1385 * loop-iv.c (biv_p): New function.
1386 * loop-unroll.c: Include hashtab.h and recog.h.
1387 (struct iv_to_split, struct split_ivs_info): New types.
1388 (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
1389 free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
1390 determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
1391 insert_base_initialization, split_iv): New functions.
1392 (peel_loop_completely, unroll_loop_constant_iterations,
1393 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1394 Use them.
1395 * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
1396
d840495b
ZD
13972004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1398
1399 * tree-cfg.c (thread_jumps): Update dominators correctly in
1400 case destination of threaded edge dominates its source.
1401
c94583fe
ZD
14022004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1403
1404 * unroll.c: Removed.
1405 * loop.h: Removed.
1406 * Makefile.in (LOOP_H, unroll.o): Removed.
1407 (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
1408 dependency.
1409 * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
1410 reference.
1411 * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
1412 * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
1413 * loop.c: Do not include loop.h.
1414 (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
1415 REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
1416 struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
1417 REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
1418 struct loop_regs, struct loop_movables, struct loop_info): Moved
1419 from loop.h.
1420 (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
1421 reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
1422 find_common_reg_term, loop_iterations, final_giv_value): Moved
1423 from unroll.c.
1424 (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
1425 loop_dump_stream, for_each_insn_in_loop, express_from,
1426 extend_value_for_giv, loop_iv_add_mult_emit_before,
1427 loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
1428 loop_insn_first_p, get_condition_for_loop,
1429 loop_insn_emit_before, loop_insn_hoist,
1430 loop_insn_sink): Made static.
1431 (loop_invariant_p): Made static. Removed flag_old_unroll_loops
1432 reference.
1433 (strength_reduce): Do not call unroller.
1434 (record_giv): Do not initialize unrolled field.
1435 (prescan_loop): Do not set loop_info->preconditioned.
1436 * passes.c: Do not include loop.h.
1437 (rest_of_handle_loop_optimize): Do not call unroller.
1438 * predict.c: Do not include loop.h.
1439 * rtl.h (NOTE_PRECONDITIONED): Removed.
1440 * stmt.c: Do not include loop.h.
1441 * toplev.c: Do not include loop.h.
1442 (process_options): Do not handle flag_old_unroll_loops.
1443
1444 * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
1445 Documentation removed.
1446 * doc/passes.texi (unroll.c, loop.h): Documentation removed.
1447
03261822
NS
14482004-09-14 Nathan Sidwell <nathan@codesourcery.com>
1449
1450 * Makefile.in (STAGE1_CHECKING): New variable.
1451 (stage1_build): Use it.
1452 * tree-ssa.c (verify_ssa): Preserve state of dominance
1453 information.
1454
869d095e
UB
14552004-09-14 Uros Bizjak <uros@kss-loka.si>
1456
1457 * config/i386/i386.c (output_fp_compare): Add generation
1458 of ftst instruction.
1459 * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
1460 Use output_fp_compare () function.
1461 (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
1462 (fix_truncdi_memory): Remove operands[5] copy.
1463
19525b57
KH
14642004-09-14 Kazu Hirata <kazu@cs.umass.edu>
1465
1466 * config/m32r/m32r.md, config/m68k/m68kelf.h,
1467 config/mcore/mcore.md, config/rs6000/linux64.h,
1468 config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
1469 typos.
1470
a140c081
JW
14712004-09-13 James E Wilson <wilson@specifixinc.com>
1472
1473 * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
1474 * gen-protos.c: Include errors.h.
1475 (progname): Delete.
1476
b6acab32
JH
14772004-09-14 Jan Hubicka <jh@suse.cz>
1478
1479 * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
1480 * predict.c: Include tree-scalar-evolution.h and cfgloop.h
1481 (predict_loops): Use number_of_iterations_exit to predict
1482 number of iterations on trees.
1483
c1bbfd3c
DJ
14842004-09-13 Dale Johannesen <dalej@apple.com>
1485
1486 PR 17408
1487 PR 17409
1488 * c-decl.c (start_decl): Repair TREE_STATIC for initialized
1489 objects declared extern.
1490
b9705a21
PB
14912004-09-14 Paul Brook <paul@codesourcery.com>
1492
1493 * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
1494 HOST_WIDE_INT.
1495
b9193259
DJ
14962004-09-13 Daniel Jacobowitz <dan@debian.org>
1497
1498 * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
1499 Only use TYPE_BINFO for aggregates.
1500
3ab0f290
DJ
15012004-09-13 Daniel Jacobowitz <dan@debian.org>
1502
1503 * expmed.c (synth_mult): Initialize latency. Check cost before
1504 checking ops count.
1505
fa9be75f 15062004-09-13 Kenneth Zadeck <Kenneth.Zadeck@NaturalBridge.com>
6674a6ce 1507
6674a6ce
KZ
1508 * tree-ssa-operands.c (get_call_expr_operands): Added parm to
1509 add_call_clobber_ops and add_call_read_ops.
1510 (add_call_clobber_ops, add_call_read_ops): Added code to reduce
1511 the number of vdefs and vuses inserted based on analysis of global
1512 variables across calls. * tree-dfa.c (find_referenced_vars):
1513 Needed to reset static var maps before each function is compiled.
1514 * cgraphunit.c:
1515 (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
1516 static_vars_info,functions_to_static_vars_info,module_statics_escape,
1517 all_module_statics,searchc_env,dfs_info): New fields to support
1518 analysis of static global variables.
1519 (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
1520 cgraph_reset_static_var_maps, get_global_static_vars_info,
1521 get_global_statics_not_read, get_global_statics_not_written,
1522 searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
1523 check_rhs_var, check_lhs_var, get_asm_expr_operands,
1524 process_call_for_static_vars, scan_for_static_refs,
1525 cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
1526 clear_static_vars_maps, cgraph_propagate_bits,
1527 cgraph_characterize_statics): New. Functions to support analysis
1528 of static global variables.
1529 (cgraph_mark_local_and_external_functions): Renamed from:
1530 (cgraph_mark_local_functions)
1531 (cgraph_expand_all_functions): Remove call to
1532 cgraph_mark_local_and_external_functions.
1533 (cgraph_optimize): Added driver to analyze static variables whose
1534 scope is within the compilation unit. * cgraph.h (struct
1535 cgraph_local_info, GTY): Added statics_read, statics_written,
1536 local, calls_read_all, calls_write_all, for_functions_valid.
1537 (struct cgraph_node): Added next_cycle. * cgraph.c
1538 (dump_cgraph_node): Added print routines for new fields. *
1539 makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
1540 list.
1541
61f4f1cc
JM
15422004-09-13 Joseph S. Myers <jsm@polyomino.org.uk>
1543
1544 * c-decl.c (grokdeclarator): Correct comments about where storage
1545 class specifiers are rejected by grammar and add corresponding
1546 asserts. Diagnose typedefs and parameters declared inline.
1547 Change warning for inline main to a pedwarn. Only diagnose inline
1548 main if hosted.
1549 (declspecs_add_scspec): Allow duplicate "inline".
1550
88ed5ef5
SE
15512004-09-13 Steve Ellcey <sje@cup.hp.com>
1552
1553 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
1554 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1555
a5bfe141
RH
15562004-09-13 Richard Henderson <rth@redhat.com>
1557
1558 PR 17436
1559 * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
1560 (tree_type): Replace spare with contains_placeholder_bits.
1561 (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
1562 make static. Remove seen_types list.
1563 (type_contains_placeholder_p): New.
1564
1823bf53
JW
15652004-09-13 James E Wilson <wilson@specifixinc.com>
1566
1567 * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
1568 (sb1_bdesc, bdesc_map, bdesc_arrays): New.
1569 (mips_expand_builtin): Add SB-1 support. Use bdesc_map and
1570 bdesc_arrays instead of mips_bdesc.
1571 (mips_init_builtins): Likewise.
1572 * config/mips/mips.h (TARGET_SB1): New.
1573 (HAVE_SQRT_P): Delete.
1574 * config/mips/mips.md (divide_condition): Support V2SF.
1575 (sqrt_condition, recip_condition): New.
1576 (div<mode>3): Use ANYF instead of SCALARF.
1577 (*div<mode>3): Use ANYF instead of SCALARF. Use UNITMODE instead of
1578 MODE.
1579 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
1580 instead of ISA_HAS_FP4. Use ANYF instead of SCALARF. Use UNITMODE
1581 instead of MODE.
1582 (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P. Use ANYF
1583 instead of SCALARF. Use UNITMODE instead of MODE.
1584
c8a52525
ZW
15852004-09-13 Zack Weinberg <zack@codesourcery.com>
1586
1587 * config.in: Regenerate after removal of libbanshee.
1588
a78e238e
AM
15892004-09-13 Andrew MacLeod <amacleod@redhat.com>
1590
1591 PR tree-optimization/17400
1592 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
1593 coalesce partitions when one occurs in an abnormal PHI.
6615c446 1594
5547b982
AP
15952004-09-13 Andrew Pinski <apinski@apple.com>
1596
1597 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
1598 name to _new_size.
1599
0d87c765 16002004-09-13 Richard Henderson <rth@redhat.com>
c8a52525 1601
c892972f
SB
1602 PR inline-asm/6806
1603 * cselib.c (cselib_invalidate_rtx): Export. Remove unused args.
1604 (cselib_invalidate_rtx_note_stores): New.
1605 (cselib_record_sets, cselib_process_insn): Update to match.
1606 * cselib.h (cselib_invalidate_rtx): Declare.
1607 * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
0d87c765 1608
84cce55d
RH
16092004-09-13 Richard Henderson <rth@redhat.com>
1610
1611 PR tree-opt/10528
1612 * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
1613 after copying its argument.
1614
bda67431
JM
16152004-09-13 Joseph S. Myers <jsm@polyomino.org.uk>
1616
1617 * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
1618 c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
1619 in diagnostics. Use %' for English apostrophes.
1620 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
1621 (pedwarn_c90, pedwarn_c99): Use it.
1622 * c-decl.c (lookup_label): Quote label name in diagnostic.
1623 * c-parse.in (yyprint): Use ' instead of ` for left quote.
1624 * c-typeck.c (warn_for_assignment): Likewise.
1625
ad7b96a9
JH
16262004-09-13 Jan Hubicka <jh@suse.cz>
1627
1628 * i386.c (x86_schedule): New global variable.
1629 (override_options): Disable scheduling when not supported.
1630 * i386.h (x86_schedule): Declare.
1631 (TARGET_SCHEDULE): New macro.
1632
373c0e7f
RH
16332004-09-12 Richard Henderson <rth@redhat.com>
1634
1635 PR c++/16254
1636 * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
1637 * tree.c, tree.h (has_cleanups): Remove.
1638
7fac6722
ZD
16392004-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1640
1641 * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
1642 arguments of the phi nodes correctly.
1643
85914593
JH
16442004-09-12 Jan Hubicka <jh@suse.cz>
1645
1646 * ggc-common.c (cmp_statistics): Fix sorting.
1647
3d520aaf
DE
16482004-09-12 David Edelsohn <edelsohn@gnu.org>
1649
1650 PR target/16795
1651 * expmed.c (expand_divmod): If cheap power of 2 divide is
1652 available, use it for negative constant as well.
1653
8f8ccdf3
AP
16542004-09-12 Andrew Pinski <apinski@apple.com>
1655
c92d8761
AP
1656 * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
1657 size of 0.
1658
8f8ccdf3
AP
1659 * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
1660
93330ea1
RH
16612004-09-12 Richard Henderson <rth@redhat.com>
1662
1663 * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
1664 or minus one.
1665 (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
1666 post-reload, and scratch NULL.
1667 * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
1668 (x86_shift_adj_2): Use ix86_expand_clear.
1669 (ashldi3): Remove CMOVE expansion difference.
1670 (ashldi3_1): Remove.
1671 (*ashldi3_1): Rename from *ashldi3_2. Use reg_or_pm1_operand and
1672 add constraints for immediates. New peephole for split-with-temp.
1673 Run splitter after peep2 pass.
1674 (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
1675 (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
1676 (setcc_2): Rename with *.
1677 * config/i386/predicates.md (reg_or_pm1_operand): New.
1678 (ashldi_input_operand): New.
1679
21076c8e
RH
16802004-09-12 Richard Henderson <rth@redhat.com
1681
1682 * print-rtl.c (print_decl_name): New.
1683 (print_mem_expr): Use it.
1684
f6a41d17
RH
16852004-09-12 Richard Henderson <rth@redhat.com
1686
c892972f
SB
1687 PR 17186, part deux
1688 * except.c (sjlj_emit_function_exit): Fix logic locating
1689 sjlj_exit_after in final block.
f6a41d17 1690
a924fe34
TM
16912004-09-12 Toon Moene <toon@moene.indiv.nluug.nl>
1692
1693 * common.opt: Remove flags -fmove-all-movables and
1694 -freduce-all-givs.
1695 * loop-invariant.c (find_invariants_to_move):
1696 Remove all uses of flag_move_all_movables.
1697 * loop.c (move_movables): Remove all uses of
1698 flag_move_all_movables.
1699 (strength_reduce): Remove all uses of
1700 flag_reduce_all_givs.
1701 * doc/invoke.texi: Remove documentation of flags
1702 -fremove-all-movables and -freduce-all-givs.
1703
ec76a0e0
RS
17042004-09-11 Roger Sayle <roger@eyesopen.com>
1705
1706 PR middle-end/17411
1707 * tree-sra.c (generate_element_zero): Revert recent build_int_cst
1708 change. elt->type may be a floating point type, so use fold_convert.
1709
ca472546
GK
17102004-09-11 Geoffrey Keating <geoffk@apple.com>
1711
1712 * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
1713 the thing referenced as used, not the stub itself.
1714
9a26d6ee
JM
17152004-09-11 Joseph S. Myers <jsm@polyomino.org.uk>
1716
1717 * c-tree.h (enum c_storage_class): New.
1718 (struct c_declspecs): Add storage_class, inline_p and thread_p.
1719 * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
1720 declarations and "auto" or "register" in file scope empty
1721 declarations. Give more specific warnings for other cases of
1722 storage class specifiers in empty declarations.
1723 (grokdeclarator): Update for new structures. Don't check for
1724 multiple storage classes. Diagnose file-scope "register" if
1725 pedantic.
1726 (build_null_declspecs): Update.
1727 (declspecs_add_scspec): Update. Diagnose multiple storage class
1728 specifiers and invalid uses of "__thread".
1729
a38b644b
ZW
17302004-09-11 Zack Weinberg <zack@codesourcery.com>
1731
1732 * tree.c (tree_code_size): New function, bulk of code from tree_size.
1733 (tree_size, make_node): Use it.
1734 * tree-ssa-pre.c (init_pre): Use it.
1735 * tree.h: Prototype it.
1736
30d396e3
ZD
17372004-09-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1738
1739 * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
1740 * tree-dfa.c (compute_immediate_uses, add_immediate_use,
1741 redirect_immediate_use): Use PHI_DF.
1742 * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
1743 (bb_for_stmt): Use PHI_BB.
1744 (get_immediate_uses): Use PHI_DF.
1745 * tree-ssa-dse.c (max_stmt_uid): New variable.
1746 (get_stmt_uid): New function.
1747 (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
1748 node annotations.
1749 * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
1750 (max_uid): Renamed to max_stmt_uid.
1751 (get_stmt_uid): New function.
1752 (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
1753 phi node annotations.
1754 * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
1755 * tree.h (PHI_BB, PHI_DF): New accessor functions.
1756 (struct tree_phi_node): Add bb and df fields.
1757
f4a6d54e
RH
17582004-09-11 Richard Henderson <rth@redhat.com>
1759
1760 PR middle-end/17416
1761 * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
1762 in conflict loop.
1763
f43329a5
JH
17642004-09-11 Jan Hubicka <jh@suse.cz>
1765
1d1df0df
JH
1766 * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
1767 (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
1768 * i386.md (i387_cw): Add 'uninitialized' mode.
1769
f43329a5
JH
1770 * profile.c (BB_TO_GCOV_INDEX): move more to the front.
1771 (output_location): Break out from ....
1772 (branch_prob): ... here; handle gcov output on trees.
1773 * toplev.c (process_options): No longer be sorry about coverage for
1774 trees.
1775
05cf561d
SB
17762004-09-11 Steven Bosscher <stevenb@suse.de>
1777
1778 PR c++/17412
1779 * fold-const.c (fold): Do not try to fold the operand of a
1780 CLEANUP_POINT_EXPR if that operand does itself not have any
1781 operands.
1782
1783 PR middle-end/17417
1784 * langhooks.c (lhd_decl_printable_name): Make sure that this
1785 function is called with is a decl node that has an identifier.
1786 * tree-pretty-print.c (dump_function_name): New function to
1787 wrap PRINT_FUNCTION_NAME and dump_decl_name.
1788 (print_call_name): Use it.
1789
547d057d
ME
17902004-09-11 Mohan Embar <gnustuff@thisiscool.com>
1791
1792 * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
1793 "config.h" if not.
1794
a17ea89b
JJ
17952004-09-11 Jakub Jelinek <jakub@redhat.com>
1796
1797 * tree-ssa-alias.c (collect_points_to_info_r): Handle
1798 pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
1799 to OFFSET.
1800
70bb498a
RH
18012004-09-11 Richard Henderson <rth@redhat.com>
1802
1803 * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
1804 (expand_expr_addr_expr): New function. Take ADDR_EXPR instead of the
1805 operand of the ADDR_EXPR.
1806 (expand_expr_real_1): Update to match.
1807
0c94cda4
DE
18082004-09-11 David Edelsohn <edelsohn@gnu.org>
1809
d1909f7b 1810 PR target/17277
0c94cda4
DE
1811 * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
1812 choose 64-bit version.
1813
5e55f99d
RH
18142004-09-11 Richard Henderson <rth@redhat.com>
1815
1816 PR c/17396
1817 * c-typeck.c (build_unary_op): Add legacy offsetof hack.
1818
431ae0bf
KH
18192004-09-11 Kazu Hirata <kazu@cs.umass.edu>
1820
1821 * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
1822 doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
1823 Insert @: after i.e. or e.g.
1824
70601cc2
GK
18252004-09-10 Geoffrey Keating <geoffk@apple.com>
1826
1827 * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
1828 D.xxx rather than <Dxxx>.
1829
a38b644b 18302004-09-10 Adam Nemet <anemet@lnxw.com>
8a45d680
AN
1831
1832 * configure.ac (AC_MSG_CHECKING(what linker to use)):
1833 in_tree_ld_is_elf should be true for LynxOS.
a38b644b 1834 * configure: Regenerate.
8a45d680 1835
ecc50d72
AN
18362004-09-10 Adam Nemet <anemet@lnxw.com>
1837
1838 * Makefile.in (all.cross): Add srcextra.
1839
3ae472c2
RS
18402004-09-10 Roger Sayle <roger@eyesopen.com>
1841
1842 PR middle-end/17024
1843 * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
1844 floating point comparison operators. Change aborts to gcc_asserts.
1845
dc9d0b14
GK
18462004-09-10 Geoffrey Keating <geoffk@apple.com>
1847
1848 * final.c (output_asm_insn): Correct problem with -fverbose-asm.
1849
a73b091d
JW
18502004-09-10 James E Wilson <wilson@specifixinc.com>
1851
1c8c309b
JW
1852 * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
1853 (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
1854
273d67e7
JW
1855 * convert.c (convert_to_vector): Replace recursive call with
1856 error_mark_node.
1857
a73b091d
JW
1858 * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
1859 Add integer argument named constant. Use const_tiny_rtx instead of
1860 CONST0_RTX.
1861 (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
1862 and CONST1_RTX.
1863 (init_emit_once): Fix users of gen_const_vector. Set CONST1_RTX for
1864 vector types.
1865 * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
1866 of gen_rtx_raw_CONST_VECTOR.
1867
110fce11
EC
18682004-09-10 Eric Christopher <echristo@redhat.com>
1869
1870 PR c/16046
1871 * c-parse.in (attribute): Add NULL_TREE for error case
1872 for error recovery.
1873
5d709b00
ZW
18742004-09-10 Zack Weinberg <zack@codesourcery.com>
1875
1876 * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
1877 (extract_interface_info): Delete prototype.
1878 * c-decl.c (extract_interface_info): Delete stub.
1879 * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
1880 it's not already been done ...
1881 (init_c_lex): ... not here.
110fce11
EC
1882 (fe_file_change): Don't call extract_interface_info.
1883
616aeba2
JM
18842004-09-11 Joseph S. Myers <jsm@polyomino.org.uk>
1885
1886 * c-tree.h (struct c_declspecs): Remove typedef_decl. Add
1887 typedef_p and typedef_signed_p.
1888 * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
1889 (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
1890 Check typedef_p and typedef_signed_p, not typedef_decl.
1891 (grokfield): Check typedef_p, not typedef_decl.
1892 (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
1893 not typedef_decl.
1894 (declspecs_add_type): Set typedef_p and typedef_signed_p, not
1895 typedef_decl.
1896
a8508d51
KH
18972004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1898
1899 * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
1900
18b3a02a
GK
19012004-09-10 Geoffrey Keating <geoffk@apple.com>
1902
769da818
GK
1903 * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
1904 temporary variables.
1905
375d2edc
GK
1906 * dbxout.c (dbxout_block): Update for
1907 current_function_func_begin_label a string.
1908 * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
1909 * except.c (dw2_output_call_site_table): Likewise.
1910 * toplev.c (current_function_func_begin_label): Likewise.
1911 * tree.h (current_function_func_begin_label): Likewise.
1912 * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
1913
c383c15f
GK
1914 * final.c (output_asm_insn): Use strtoul instead of atoi, save a
1915 loop.
1916
1adaa117
GK
1917 * config/darwin.c: Include target.h.
1918 (struct machopic_indirection): Make ptr_name a string.
1919 (machopic_indirection_hash): Update for ptr_name a string.
1920 (machopic_indirection_eq): Likewise.
1921 (machopic_indirection_name): Likewise.
1922 (machopic_output_indirection): Likewise.
1923 (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
1924 string. Don't expect stub names to be in the identifier hash table.
1925 Do call strip_name_encoding before looking up entry in ID hash table.
1926 * config/t-darwin (darwin.o): Add target.h to dependencies.
5d709b00 1927
fb5c67a7
GK
1928 * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
1929 of fprintf for register names.
5d709b00 1930
5f11bc8b
GK
1931 * output.h (unlikely_section_label): Delete declaration.
1932 (unlikely_text_section_name): Likewise.
1933 * varasm.c (unlikely_section_label_printed): Make static.
1934 (unlikely_section_label): Likewise.
1935 (unlikely_text_section_name): Likewise.
1936 (assemble_start_function): Use reconcat.
1937
18b3a02a
GK
1938 * rtl.def (REG): Add comment to describe third field.
1939
76f60aa5
AP
19402004-09-10 Andrew Pinski <apinski@apple.com>
1941
1942 * config/darwin.c (machopic_mcount_stub_name): Call
1943 machopic_indirection_name instead of making the string
1944 ourselves.
1945
e30b0ae2
DN
19462004-09-10 Diego Novillo <dnovillo@redhat.com>
1947
1948 Revert
1949
1950 2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
1951
1952 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
1953 memory tag is call clobbered, so are its aliases.
1954 (group_aliases): When two memory tags being grouped, if one is
1955 call clobbered, so are the other and its aliases.
1956 (add_may_alias): Remove call-clobbering stuff.
1957 (replace_may_alias): Likewise.
1958 (merge_pointed_to_info): Merge pt_global_mem
1959
89dbed81
KH
19602004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1961
1962 * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
1963 genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
1964 passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
1965 tree-scalar-evolution.c, tree-ssa-copyrename.c,
1966 tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
1967
094e84fa
RS
19682004-09-10 Richard Sandiford <rsandifo@redhat.com>
1969
1970 * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
1971 (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
1972 pair. Remove match_dup from inputs. Remove masaccs handling.
1973 (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
1974 (masaccs, mdasaccs): Turn into define_insns.
1975
85d62520
RS
19762004-09-10 Richard Sandiford <rsandifo@redhat.com>
1977
1978 * tree-tailcall.c (process_assignment): Only do accumulator transforms
1979 for floating-point types if flag_unsafe_math_optimizations.
1980
c112cf2b
KH
19812004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1982
1983 * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
1984 config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
1985 config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
1986 config/h8300/h8300.md, config/i386/gmm_malloc.h,
1987 config/ia64/ia64.md, config/ip2k/libgcc.S,
1988 config/mips/mips-ps-3d.md, config/mips/mips.c,
1989 config/rs6000/rs6000.c, config/s390/s390.c,
1990 config/sh/symbian.c: Fix comment typos.
1991
2790879f
AK
19922004-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
1993
1994 * config/s390/s390.c (s390_emit_prologue): Added missing
1995 "{}" brackets.
1996
27ef2cdd
KH
19972004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1998
1999 * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
2000 typos. Follow spelling conventions.
2001
108ebf88
JM
20022004-09-10 Joseph S. Myers <jsm@polyomino.org.uk>
2003
2004 * toplev.c (warn_deprecated_use): Correct logic for saying "type"
2005 in diagnostic. Don't dereference NULL TYPE_NAME.
2006
6cb38cd4
KH
20072004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2008
2009 * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
2010 tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
2011 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
2012 value-prof.c: Fix comment typos. Follow spelling conventions.
2013
b829f3fa
JH
20142004-09-10 Jan Hubicka <jh@suse.cz>
2015
2016 * tree-ssa-dce.c (remove_dead_stmt): Update profile.
2017 * tree-split_edge.c (tree_split_edge): Likewise.
2018 (thread_jumps): Likewise.
2019
229031d0
KH
20202004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2021
2022 * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
2023 typos.
2024
9b3e897d
PB
20252004-09-10 Paolo Bonzini <bonzini@gnu.org>
2026
2027 * cgraph.h (cgraph_dump_file): Do not declare.
2028 * cgraphunit.c (cgraph_dump_file): Declare as static.
2029 (init_cgraph): New.
2030 * toplev.c (cgraph_dump_file): Do not declare.
2031 (compile_file): Call init_cgraph.
2032 * tree-dump.c (dump_files): Add IPA dump file, remove
2033 XML dump of call graph.
2034 (get_dump_file_name): Support IPA dump file naming scheme.
2035 * tree.h (enum tree_dump_index): Add IPA dump file, remove
2036 XML dump of call graph.
2037 * doc/invoke.texi (Debugging Options): Document the new options.
2038
c3ee0579
RS
20392004-09-10 Richard Sandiford <rsandifo@redhat.com>
2040
2041 * doc/extend.texi: Document the FR-V built-in functions.
2042
236f9832
JW
20432004-09-09 James E Wilson <wilson@specifixinc.com>
2044
2045 * doc/sourcebuild.texi: Delete libbanshee reference.
2046
5a29def1
KC
20472004-09-10 Kelley Cook <kcook@gcc.gnu.org>
2048
2049 * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
2050
3274deff
JW
20512004-09-09 James E Wilson <wilson@specifixinc.com>
2052
2053 * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
2054 before calling vector_types_convertible_p.
2055 (digest_init): Check that inside_init has VECTOR_TYPE before calling
2056 vector_types_convertible_p. Don't give another error if
2057 convert_for_assignment returns error_mark_node.
2058
049e524f
RS
20592004-09-09 Roger Sayle <roger@eyesopen.com>
2060
2061 PR middle-end/17055
2062 * fold-const.c (build_zero_vector): New function to construct a
2063 vector (either floating point or integer) of zeros.
2064 (fold_convert): Internally, enable conversions of integer zero
2065 to arbitrary vector types, using the new build_zero_vector.
2066
1b83d209
RS
20672004-09-09 Roger Sayle <roger@eyesopen.com>
2068
2069 * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
2070 expand a left shift by an immediate constant as either an ashl or
2071 a sequence of additions.
2072 (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
2073 instead of calling gen_ashlsi3 with a constant directly.
2074
903a5059
RS
20752004-09-09 Roger Sayle <roger@eyesopen.com>
2076
2077 * config/i386/i386.c (ix86_split_long_move): When optimizing for
2078 size, and the low and high parts of a DImode constant are equal,
2079 copy one register to another instead of loading the same immediate
2080 value twice.
2081
469c26f1
RH
20822004-09-09 Richard Henderson <rth@redhat.com>
2083
2084 PR middle-end/17367
2085 * function.c (assign_parm_setup_block): Only put PARALLELs into
2086 a register if use_register_for_decl.
2087
1aee688e
EC
20882004-09-09 Eric Christopher <echristo@redhat.com>
2089
2090 * ra-colorize.c (reset_lists): Move variable declaration inside
2091 ENABLE_CHECKING to avoid unused variable warnings when
2092 not --enable-checking.
2093 (check_colors): Ditto.
2094
89029cd4
MS
20952004-09-09 Mike Stump <mrs@apple.com>
2096
2097 * version.c (version_string): Bump to 4.0.0.
693ff889 2098 * doc/include/gcc-common.texi (version-GCC): Likewise.
89029cd4 2099
3f3174b6
JJ
21002004-09-10 Jakub Jelinek <jakub@redhat.com>
2101
2102 * doc/extend.texi (nothrow attribute): The attribute is not
2103 implemented in 3.2 and earlier.
2104
4c80d5ac
SE
21052004-09-09 Steve Ellcey <sje@cup.hp.com>
2106
2107 * genrecog.c (compute_predicate_codes): Use op0_codes
2108 instead of codes.
2109
2ec3ab99
UW
21102004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
2111
2112 * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
2113 implementation changes.
2114
0b21d1dc
UW
21152004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
2116
2117 * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
2118 a PARALLEL instead of a SET due to added clobbers.
2119
7bb09d15
UW
21202004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
2121
1aee688e 2122 * reload.c (find_reloads_address): Pass correct operand to
7bb09d15
UW
2123 maybe_memory_address_p.
2124
0a050485
DB
21252004-09-09 Daniel Berlin <dberlin@dberlin.org>
2126
2127 * Makefile.in: Remove libbanshee, tree-alias-*.
2128 Remove tree-alias-common.h dependencies.
2129 * common.opt: Remove -ftree-points-to.
2130 * configure.ac: Remove libbanshee.
2131 * flags.h: Remove pta_type, flag_tree_points_to.
2132 * gengtype.c (open_base_files): Remove tree-alias-type.h.
2133 * opts.c (OPT_ftree_points_to): Remove.
2134 * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
2135 * tree-dfa.c: Remove tree-alias-common.h
2136 * tree-into-ssa.c: Ditto.
2137 * tree-outof-ssa.c: Ditto.
2138 * tree-ssa-copyrename.c: Ditto.
2139 * tree-ssa-live.c: Ditto.
2140 * tree-optimize.c: Ditto.
2141 * tree-ssa.c: Ditto.
2142 Remove pass_build_pta, pass_del_pta.
2143 * tree-pass.h: Ditto.
2144 * tree-ssa-alias.c: Remove tree-alias-common.h.
2145 (struct alias_stats_d): Remove pta_queries, pta_resolved.
2146 (pass_may_alias): Remove PROP_pta requirement.
2147 (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
2148 (get_tmt_for): Ditto.
2149 (dump_alias_stats): Ditto.
2150 * doc/passes.texi: Remove blurb about points-to analysis.
2151 * fortran/Make-lang.in: Remove tree-alias-*.o.
1aee688e 2152
c1a404bd
RS
21532004-09-09 Richard Sandiford <rsandifo@redhat.com>
2154
2155 * genattrtab.c (write_insn_cases): New function, split out from
2156 write_attr_case. Correctly handle define_peepholes when printing
2157 the instruction name.
2158 (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
2159
b2416742
HPN
21602004-09-09 Hans-Peter Nilsson <hp@axis.com>
2161
2162 PR target/17377
2163 * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
2164 * config/cris/cris.c (cris_return_address_on_stack): New function.
2165 * config/cris/cris.md ("return"): For location of return address,
2166 also check cris_return_address_on_stack.
2167
b49ce401
DN
21682004-09-09 Diego Novillo <dnovillo@redhat.com>
2169
2170 * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
2171 calling phi_ssa_name_p.
2172
116df786
RH
21732004-09-09 Richard Henderson <rth@redhat.com>
2174
2175 PR c/17322
2176 * c-typeck.c (valid_compound_expr_initializer): Use only
2177 initializer_constant_valid_p, and not TREE_CONSTANT.
2178 (digest_init): Likewise.
2179 (output_init_element): Likewise.
2180
41374e13
NS
21812004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2182
2183 * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
2184 live_out_1, prune_hardregs_for_mode, init_one_web_common,
2185 reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
2186 record_conflict, compare_and_free_webs, init_webs_defs_uses,
2187 parts_to_webs_1, parts_to_webs, reset_conflicts,
2188 check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
2189 ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
2190 * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
2191 put_move, remove_move, combine, select_spill, colorize_one_web,
2192 try_recolor_web, insert_coalesced_conflicts, check_colors,
2193 break_precolored_alias, restore_conflicts_from_coalesce,
2194 sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
2195 * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
2196 reloads_to_loads, rewrite_program2, emit_colors): Likewise.
2197 * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
2198 check_df): Likewise.
2199 * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
2200 real_arithmetic, real_compare, real_exponent, real_ldexp,
2201 real_identical, real_to_integer, real_to_integer2, real_to_decimal,
2202 real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
2203 real_digit, real_nan, real_maxval, round_for_format, real_convert,
2204 real_to_target, real_from_target, real_hash, encode_ieee_single,
2205 encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
2206 encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
2207 encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
2208 * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
2209 extract_insn, peep2_next_insn, peep2_reg_dead_p,
2210 peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
2211 if_test_bypass_p): Likewise.
2212 * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
2213 stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
2214 emit_swap_insn, swap_to_top, move_for_stack_reg,
2215 subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
2216 compensate_edge, convert_regs_1): Likewise.
2217 * regclass.c (init_reg_sets, init_reg_sets_1,
2218 memory_move_secondary_cost): Likewise.
2219 * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
2220 Likewise.
2221 * reload.c (push_secondary_reload, find_valid_class, push_reload,
2222 operands_match_p, decompose, immune_p, find_reloads,
2223 find_reloads_toplev, find_reloads_address_1, subst_reloads,
2224 copy_replacements, refers_to_regno_for_reload_p,
2225 reg_overlap_mentioned_for_reload_p): Likewise.
2226 * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
2227 count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
2228 verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
2229 reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
2230 choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
2231 do_output_reload, fixup_abnormal_edges): Likewise.
2232 * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
2233 fill_slots_from_thread, relax_delay_slots): Likewise.
2234 * resource.c (mark_referenced_resources, mark_set_resources):
2235 Likewise.
2236 * rtl.c (copy_rtx, rtx_equal_p): Likewise.
2237 * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
2238 dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
2239 subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
2240 find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
2241 hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
2242 * rtlhooks.c (gen_lowpart_general): Likewise.
2243 * sbitmap.c (sbitmap_difference): Likewise.
2244 * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
2245 sched_analyze, add_forward_dependence): Likewise.
2246 * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
2247 * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
2248 schedule_insns): Likewise.
2249 * sched-vis.c (print_pattern): Likewise.
2250 * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
2251 * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
2252 simplify_const_relational_operation, simplify_ternary_operation,
2253 simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
2254 Likewise.
2255 * sreal.c (copy, sreal_sub, sreal_div): Likewise.
2256 * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
2257 resolve_operand_name_1, expand_return, expand_decl,
2258 expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
2259 * stor-layout.c (put_pending_size, smallest_mode_for_size,
2260 int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
2261 set_sizetype, get_mode_bounds): Likewise.
2262
15072eb1
ZW
22632004-09-09 Zack Weinberg <zack@codesourcery.com>
2264
2265 * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
2266 * config/arm/pecoff.h, config/i386/beos-elf.h
2267 * config/i386/cygming.h, config/i386/i386-interix.h:
2268 Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove
2269 comment cloned from manual.
2270 * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
2271
c2433d7d
FCE
22722004-09-09 Frank Ch. Eigler <fche@redhat.com>
2273
2274 * builtins.c (build_va_arg_indirect_ref): New function.
2275 (std_gimplify_va_arg_expr): Call it instead of mudflap check and
2276 build_fold_indirect_ref.
2277 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
2278 * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
2279 * tree.h: Declare new function.
2280
41374e13 22812004-09-09 Nathan Sidwell <nathan@codesourcery.com>
1a2caa7a
NS
2282
2283 * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
2284 dumping for development builds.
2285 * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
2286 development builds only.
2287 * genattrtab.c (write_eligible_delay): Fix typo in previous
2288 commit.
2289 * tree.c (iterative_hash_expr): Replace gcc_unreachable with
2290 gcc_assert.
2291
41374e13 22922004-09-09 Nathan Sidwell <nathan@codesourcery.com>
282899df
NS
2293
2294 * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
2295 cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
2296 process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
2297 hoist_code, extract_mentioned_regs_helper, compute_store_table,
2298 insert_store): Use gcc_assert and gcc_unreachable.
2299 * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
2300 gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
2301 ggc_record_overhead): Likewise.
2302 * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
2303 init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
2304 ggc_pop_context, clear_marks, validate_free_objects,
2305 ggc_pch_read): Likewise.
2306 * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
2307 ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
2308 ggc_push_context, check_cookies, ggc_collect,
2309 ggc_print_statistics): Likewise.
2310 * gimple-low.c (lower_function_body, lower_stmt,
2311 lower_bind_expr): Likewise.
2312 * gimplify.c (gimple_tree_eq, push_gimplify_context,
2313 pop_gimplify_context, gimple_pop_condition, create_tmp_var,
2314 declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
2315 mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
2316 gimplify_case_label_expr, gimplify_exit_block_expr,
2317 canonicalize_component_ref, gimplify_compound_lval,
2318 gimplify_self_mod_expr, gimplify_call_expr,
2319 gimplify_init_ctor_eval, gimplify_init_constructor,
2320 gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
2321 gimplify_expr, check_pointer_types_r,
2322 force_gimple_operand): Likewise.
2323 * global.c (global_alloc, build_insn_chain): Likewise.
2324 * graph.c (clean_graph_dump_file,
2325 finish_graph_dump_file): Likewise.
2326 gcov-io.c (gcov_open): Use GCOV_CHECK.
2327
2a88ebca
RS
23282004-09-09 Richard Sandiford <rsandifo@redhat.com>
2329
2330 * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
2331
34132917
JH
23322004-09-09 Jan Hubicka <jh@suse.cz>
2333
2334 middle-end/17128
282899df
NS
2335 * tree-inline.c (expand_call_inline): Make overactive sanity check
2336 happy.
34132917 2337
9f7aa952
JH
23382004-09-09 Jan Hubicka <jh@suse.cz>
2339
2340 * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
2341 VIEW_CONVERT_EXPR.
2342
b2d59f6f
NS
23432004-09-09 Nathan Sidwell <nathan@codesourcery.com>
2344
2345 * Makefile.in (gengtype): Use $(BUILD_ERRORS).
2346 (gengtype.o): Depend on errors.h.
2347 * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
2348 (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
2349 attr_alt_subset_p, attr_alt_subset_of_compl_p,
2350 attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
2351 write_test_expr, write_attr_value, write_eligible_delay,
2352 make_internal_attr, make_numeric_value): Likewise.
2353 * genautomata.c (regexp_name, get_str_vect,
2354 gen_presence_absence_set, automaton_decl_hash,
2355 automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
2356 decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
2357 process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
2358 test_unit_reserv, it_is_empty_reserv_sets,
2359 reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
2360 reserv_sets_and, output_cycle_reservs, get_free_state,
2361 intersected_state_reservs_p, states_union, remove_arc,
2362 copy_insn_regexp, transform_1, transform_2, transform_3,
2363 regexp_transform_func, store_alt_unit_usage,
2364 check_regexp_units_distribution, process_seq_for_forming_states,
2365 process_alts_for_forming_states, make_automaton,
2366 form_arcs_marked_by_insn, create_composed_state,
2367 set_out_arc_insns_equiv_num, partition_equiv_class,
2368 process_insn_equiv_class, set_insn_equiv_classes,
2369 units_to_automata_heuristic_distr, form_regexp,
2370 longest_path_length, output_dfa_max_issue_rate, add_vect,
2371 out_state_arcs_num, add_vect_el, output_trans_table,
2372 output_state_alts_table, output_dead_lock_vect,
2373 output_max_insn_queue_index_def,
2374 output_min_insn_conflict_delay_func,
2375 output_internal_insn_latency_func, output_print_reservation_func,
2376 output_cpu_unit_reservation_p, output_state_arcs,
2377 make_insn_alts_attr, make_internal_dfa_insn_code_attr,
2378 make_default_insn_latency_attr,
2379 form_important_insn_automata_lists): Likewise.
2380 * genemit.c (gen_exp, output_add_clobbers,
2381 output_added_clobbers_hard_reg_p): Likewise.
2382 * genextract.c (print_path, main): Likewise.
2383 * genflags.c (gen_macro): Likewise.
2384 * gengenrtl.c: Include errors.h
2385 (type_from_format, accessor_from_format): Likewise.
2386 * gengtype.c (get_file_basename, output_mangled_typename,
2387 walk_type, write_types_process_field,
2388 write_types_local_process_field): Likewise.
2389 * genmodes.c (complete_mode): Likewise.
2390 * genopinit.c (gen_insn): Likewise.
2391 * genoutput.c (output_insn_data, check_constraint_len,
2392 constraint_len): Likewise.
2393 * genpreds.c (add_mode_tests):Likewise.
2394 * gen-protos.c (add_hash): Likewise.
2395 * genrecog.c (find_operand, find_matching_operand,
2396 validate_pattern, add_to_sequence, maybe_both_true,
2397 nodes_identical_1, merge_trees, write_switch, write_cond,
2398 write_action, is_unconditional, make_insn_sequence,
2399 debug_decision_2): Likewise.
2400 * gensupport.c (is_predicable, collect_insn_data,
2401 alter_predicate_for_insn, maybe_eval_c_test): Likewise.
2402
87022a6b
JH
24032004-09-09 Jan Hubicka <jh@suse.cz>
2404
2405 * basic-block.h (guess_outgoing_edge_probabilities): Declare.
b2d59f6f
NS
2406 * cfgbuild.c (compute_outgoing_frequencies): When probability is
2407 missing, guess it.
2408 (find_many_sub_basic_blocks): Do update profile only when it is
2409 present.
87022a6b 2410 * predict.c (set_even_probabilities): Break out from ...
b2d59f6f
NS
2411 (combine_predictions_for_insn): ... here; deal with
2412 !can_predict_insn_p insns.
87022a6b
JH
2413 (combine_predictions_for_bb): Use set_even_probabilities.
2414 (bb_estimate_probability_locally): Break out from ....
2415 (estimate_probability): ... here.
2416 (guess_outgoing_edge_probabilities): New entry point.
2417
e1537934
NS
24182004-09-09 Nathan Sidwell <nathan@codesourcery.com>
2419
3b5edfee
NS
2420 * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
2421 handle_braces, process_brace_body, main, used_arg,
2422 set_multilib_dir, print_multilib_info): Use fatal, not abort.
2423
d73d4593
NS
2424 * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
2425
e1537934
NS
2426 * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
2427 * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
2428 Morgan's theorem in last checkin.
2429
1e128c5f
GB
24302004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2431 Nathan Sidwell <nathan@codesourcery.com>
2432
2433 * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
2434 Use gcc_assert, gcc_unreachable & internal_error instead of abort.
2435 * timevar.c (timevar_push, timevar_pop, timevar_start,
2436 timevar_stop): Likewise.
2437 * toplev.c (default_pch_valid_p): Likewise.
2438 * tracer.c (tail_duplicate): Likewise.
2439 * tree-alias-common.c (get_alias_var_decl,
2440 get_values_from_constructor, create_alias_var, delete_alias_vars,
2441 empty_points_to_set, same_points_to_set, ptr_may_alias_var):
2442 Likewise.
2443 * tree.c (tree_size, make_node_stat, copy_node_stat,
2444 build_int_cst_wide, integer_all_onesp, list_length, chainon,
2445 tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
2446 substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
2447 build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
2448 lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
2449 build_method_type_directly, decl_type_context, get_callee_fndecl,
2450 get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
2451 tree_fold_gcd): Likewise.
2452 * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
2453 make_cond_expr_edges, group_case_labels, tree_merge_blocks,
2454 cleanup_control_expr_graph, find_taken_edge,
2455 find_taken_edge_switch_expr, phi_alternatives_equal,
2456 is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
2457 stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
2458 tree_split_edge, tree_verify_flow_info, thread_jumps,
2459 tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
2460 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
2461 chrec_fold_multiply_poly_poly): Likewise.
2462 * tree-complex.c (extract_component, expand_complex_division,
2463 expand_complex_comparison, expand_complex_operations_1,
2464 build_replicated_const, expand_vector_operations_1): Likewise.
2465 * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
2466 build_classic_dir_vector): Likewise.
2467 * tree-dfa.c (compute_immediate_uses_for_phi,
2468 compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
2469 create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
2470 * tree-dump.c (dequeue_and_dump): Likewise.
2471 * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
2472 record_in_finally_tree, replace_goto_queue_1,
2473 maybe_record_in_goto_queue, verify_norecord_switch_expr,
2474 do_return_redirection): Likewise.
2475 * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
2476 add_to_dst_predicate_list, find_phi_replacement_condition,
2477 replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
2478 Likewise.
2479 * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
2480 initialize_inlined_parameters, declare_return_variable,
2481 estimate_num_insns_1, expand_call_inline, expand_calls_inline,
2482 optimize_inline_calls, copy_tree_r): Likewise.
2483 * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
2484 ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
2485 * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
2486 tsi_split_statement_list_after, tsi_split_statement_list_before):
2487 Likewise.
2488 * tree-mudflap.c (mf_varname_tree): Likewise.
2489 * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
2490 lookup_tramp_for_decl, convert_all_function_calls): Likewise.
2491 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2492 * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
2493 coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
2494 free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
2495 Likewise.
2496 * tree-phinodes.c (resize_phi_node, add_phi_arg,
2497 remove_all_phi_nodes_for): Likewise.
2498 * tree-pretty-print.c (op_prio, print_call_name): Likewise.
2499 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2500 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
2501 * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
2502 sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
2503 generate_one_element_ref, generate_element_copy,
2504 generate_element_zero, scalarize_copy, scalarize_init,
2505 scalarize_ldst): Likewise.
2506 * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
2507 add_may_alias, add_pointed_to_expr, add_pointed_to_var,
2508 collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
2509 * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
2510 * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
2511 set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
2512 widen_bitfield, ccp_fold_builtin): Likewise.
2513 * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
2514 replace_exp_1, propagate_tree_value): Likewise.
2515 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
2516 * tree-ssa-dce.c (set_control_dependence_map_bit,
2517 find_control_dependence, find_pdom, mark_operand_necessary,
2518 mark_stmt_if_obviously_necessary,
2519 mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
2520 * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
2521 simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
2522 eliminate_redundant_computations, avail_expr_eq): Likewise.
2523 * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
2524 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2525 duplicate_blocks): Likewise.
2526 * tree-ssa-loop-im.c (for_each_index, set_level,
2527 is_call_clobbered_ref): Likewise.
2528 * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
2529 stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
2530 find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
2531 peel_address, ptr_difference_cost, may_replace_final_value,
2532 determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
2533 rewrite_use, rewrite_uses): Likewise.
2534 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
2535 check_loop_closed_ssa_use): Likewise.
2536 * tree-ssanames.c (make_ssa_name): Likewise.
2537 * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
2538 finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
2539 get_stmt_operands, get_expr_operands, get_asm_expr_operands,
2540 get_indirect_ref_operands, add_stmt_operand): Likewise.
2541 * tree-ssa-pre.c (value_exists_in_set_bitmap,
2542 value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
2543 phi_translate, valid_in_set, compute_antic,
2544 find_or_generate_expression, create_expression_by_pieces, insert_aux,
2545 create_value_expr_from, eliminate): Likewise.
2546 * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
2547 * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
2548 Likewise.
2549 * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
2550 eliminate_tail_call): Likewise.
2551 * tree-vectorizer.c (vect_create_index_for_array_ref,
2552 vect_align_data_ref, vect_create_data_ref,
2553 vect_create_destination_var, vect_get_vec_def_for_operand,
2554 vect_finish_stmt_generation, vect_transform_stmt,
2555 vect_transform_loop_bound, vect_transform_loop,
2556 vect_analyze_operations): Likewise.
2557 * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
2558 Likewise.
2559 * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
2560 get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
2561 bsi_after_labels, bsi_last): Likewise.
2562 * tree-ssa-live.c (var_union, change_partition_var,
2563 create_ssa_var_map, calculate_live_on_entry, root_var_init,
2564 type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
2565 Likewise.
2566 * tree-ssa-live.h (partition_is_global, live_entry_blocks,
2567 tpa_find_tree): Likewise.
2568 (register_ssa_partition_check): Declare.
2569 (register_ssa_partition): use it.
2570 * tree-ssa-live.c: Include errors.h.
2571 (register_ssa_partition_check): New.
2572 * tree-ssa-operands.c: Include errors.h.
2573 * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
2574
c557edf4
RS
25752004-09-09 Richard Sandiford <rsandifo@redhat.com>
2576 Catherine Moore <clm@redhat.com>
2577
2578 * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
2579 (FRV_CPU_FR405): New processor enums.
2580 (frv_issue_rate, frv_acc_group): Declare.
2581 * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
2582 (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
2583 (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
2584 (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
2585 (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
2586 handled by CPP_SPEC.
2587 (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
2588 (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
2589 (ACC_MASK): New macro.
2590 (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
2591 (TARGET_MEDIA_FR450): New macro.
2592 (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
2593 (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
2594 (LABEL_ALIGN_AFTER_BARRIER): Define.
2595 (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
2596 (IACC_FIRST, IACC_LAST): New pair of SPRs.
2597 (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
2598 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
2599 (REGISTER_NAMES): Add entries for new registers.
2600 (REG_CLASS_CONTENTS): Update for new register ranges.
2601 (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
2602 (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
2603 (PACKING_FLAG_USED_P): Delete.
2604 (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
2605 (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
2606 (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
2607 (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
2608 (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
2609 (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
2610 (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
2611 (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
2612 (CPU_UNITS_QUERY): Define to 1.
2613 * config/frv/frv.c: Include gt-frv.h
2614 (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
2615 (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
2616 (frv_insn_group): New enumeration.
2617 (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
2618 (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
2619 (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
2620 (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the
2621 gap left by REGSTATE_LIVE.
2622 (regstate_t): New typedef.
2623 (TARGET_MACHINE_DEPENDENT_REORG): Define.
2624 (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
2625 (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
2626 Initialize frv_unit_codes[] and frv_type_to_unit[].
2627 (frv_conditional_register_usage): Remove redundant fixing of
2628 accumulator registers.
2629 (frv_insn_packing_flag): Update specification.
2630 (frv_function_prologue): Don't set frv_insn_packing_flag here.
2631 Zero out frv_nops[].
2632 (frv_expand_epilogue): Remove comments about the no-longer-present
2633 SIBCALL_P argument.
2634 (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
2635 PACKING_FLAG_USED_P() when deciding whether to pack instructions.
2636 (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
2637 of the new meaning of frv_insn_packing_flag. Emit an mnop.p if
2638 packing is disabled and if INSN can only issue to M1.
2639 (call_operand): Check TARGET_LONG_CALLS.
2640 (acc_operand, even_acc_operand, quad_acc_operand)
2641 (accg_operand): Simplify. Don't accept pseudo registers.
2642 (output_move_single): Handle SPR<-zero moves.
2643 (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}.
2644 (frv_registers_update, frv_registers_used_p): Delete.
2645 (frv_registers_set_p): Delete.
2646 (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
2647 (frv_issues_to_branch_unit_p): New function.
2648 (frv_packet): New structure.
2649 (frv_cond_flags, frv_regstate_conflict_p): New functions.
2650 (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
2651 (frv_registers_update_1, frv_registers_update): New functions.
2652 (frv_start_packet, frv_start_packet_block, frv_finish_packet)
2653 (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
2654 (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
2655 (frv_sort_insn_group, frv_reorder_packet): New functions.
2656 (frv_pack_insns): Use frv_reorder_packet.
2657 (frv_packet_address): New variable.
2658 (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
2659 (frv_register_nop, frv_reorg): New functions.
2660 (bdesc_1arg): Add __SCUTSS.
2661 (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
2662 __SUBSS, __SLASS and __SCAN.
2663 (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
2664 (bdesc_int_void2arg, bdesc_prefetches): New arrays.
2665 (frv_init_builtins): Register the above builtins.
2666 (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
15072eb1 2667 registers. Turn the referenced accumulators into global registers.
c557edf4
RS
2668 (frv_read_iacc_argument): New function.
2669 (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
2670 (frv_split_iacc_move): New function.
2671 (frv_expand_builtin): Handle the new builtins.
2672 * config/frv/frv.md: Replace old schedulers with new order-independent
2673 ones. Add schedulers for the FR405, FR450 and FR550. Describe new
2674 packing algorithm.
2675 (cpu): Add fr550, fr450 and fr405.
2676 (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
2677 mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7.
2678 (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
2679 (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
2680 (fnop, mnop): New patterns.
2681 (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
2682 New constants.
2683 (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
2684 (mclracca8): Use ACC_MASK to determine the upper set of accumulator
2685 registers.
2686 (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
2687 (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
2688 (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
2689 (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
2690 (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
2691 (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
2692 (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
2693 (frv_prefetch0, frv_prefetch): New patterns.
2694 * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
2695 -mcpu=simple. Add -mcpu=fr550.
2696 (MULTILIB_DIRNAMES): Update accordingly.
2697 (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
2698 -mcpu=fr450.
2699 * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
2700 -mlong-calls and -malign-labels options for FR-V.
2701
deb176fa
JM
27022004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
2703
2704 PR c/8420
2705 * c-tree.h (struct c_declspecs): New.
2706 (struct c_declarator, struct c_type_name, struct c_parm): Update
2707 element types.
2708 (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
2709 start_function, start_decl, build_c_parm,
2710 make_pointer_declarator): Update prototypes.
2711 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
2712 declspecs_add_scspec, declspecs_add_attrs): New.
2713 (split_specs_attrs): Remove.
2714 * c-parse.in (%union): Add dsptype.
2715 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
2716 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
2717 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
2718 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
2719 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
2720 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
2721 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
2722 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
2723 declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
2724 declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
2725 maybe_type_quals_attrs): Change to dsptype.
2726 (struct c_declspec_stack): New.
2727 (current_declspecs, declspec_stack): Change type.
2728 (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
2729 structures.
2730 (extdefs): Likewise.
2731 (setspecs): Likewise.
2732 (fndef): Use current_declspecs for empty declspecs list.
2733 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
2734 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
2735 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
2736 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
2737 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
2738 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
2739 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
2740 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
2741 structures and helper functions. Update comments.
2742 (typespec_nonattr): Correct comment.
2743 (maybe_type_quals_attrs, typename): Update to new structures.
2744 * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
2745 shadow_tag, shadow_tag_warned, start_function, start_decl,
2746 build_c_parm, make_pointer_declarator,
2747 set_array_declarator_inner, groktypename): Update to new
2748 structures.
2749 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
2750 declspecs_add_scspec, declspecs_add_attrs): New.
2751 (split_specs_attrs): Remove.
2752 (shadow_tag_warned): Make warning for useless type names a
2753 pedwarn. Give hard error for long, short, signed, unsigned or
2754 _Complex used with struct, union or enum in empty declaration.
2755 Make found_tag a bool.
2756 (grokdeclarator): Remove checks now done at parse time.
2757
f8893e47
JM
27582004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
2759
2760 * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
2761 c_declarator, struct c_type_name, struct c_parm): New.
2762 (build_array_declarator, set_array_declarator_inner,
2763 get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
2764 start_function, start_decl, build_c_parm, build_attrs_declarator,
2765 build_function_declarator, make_pointer_declarator, c_cast_expr,
2766 store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
2767 (build_id_declarator): New.
2768 * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
2769 structures.
2770 * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
2771 ARG_INFO_OTHERS): Remove.
2772 (build_id_declarator): New.
2773 (build_array_declarator, set_array_declarator_inner, groktypename,
2774 start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
2775 grokfield, start_function, store_parm_decls_newstyle,
2776 store_parm_decls_oldstyle, store_parm_decls,
2777 build_c_parm, build_attrs_declarator, build_function_declarator,
2778 make_pointer_declarator, grokdeclarator): Update to new
2779 structures.
2780 * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
2781 parmtype.
2782 (declarator, notype_declarator, after_type_declarator,
2783 parm_declarator, parm_declarator_starttypename,
2784 parm_declarator_nostarttypename, array_declarator, typename,
2785 absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
2786 absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
2787 parmlist_1, parmlist_2, parmlist_or_identifiers,
2788 parmlist_or_identifiers_1): Use these types.
2789 (primary, after_type_declarator, parm_declarator_starttypename,
2790 notype_declarator, component_decl, component_declarator,
2791 component_notype_declarator, typename, absdcl,
2792 absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
2793 parmlist_2, parmlist_or_identifiers_1): Update to new structures.
2794
bc4b653b
JM
27952004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
2796
2797 * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
2798 in_typeof, record_maybe_used_decl, pop_maybe_used,
2799 c_expr_sizeof_expr, c_expr_sizeof_type): New.
2800 * c-decl.c (parser_obstack): New.
2801 (c_init_decl_processing): Initialize parser_obstack.
2802 (c_write_global_declarations_1): Check for used but undefined
2803 static functions.
2804 * c-parse.in (%union): Add otype.
2805 (save_obstack_position): New.
2806 (extdefs): Use it.
2807 (unary_expr): Update in_sizeof and in_alignof. Use
2808 c_expr_sizeof_expr and c_expr_sizeof_type.
2809 (sizeof): Update in_sizeof.
2810 (alignof): Update in_alignof.
2811 (typeof): Update in_typeof.
2812 (typespec_nonreserved_nonattr): Call pop_maybe_used.
2813 * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
2814 maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
2815 pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
2816 (build_external_ref): Set C_DECL_USED or call
2817 record_maybe_used_decl if appropriate.
2818 * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
2819
f838cd94
EC
28202004-09-08 Eric Christopher <echristo@redhat.com>
2821
2822 * builtins.c: Fix prototype for fold_builtin_atan.
2823
667bbbbb
EC
28242004-09-08 Eric Christopher <echristo@redhat.com>
2825
2826 * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
2827 fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
2828 fold_builtin_atan): New functions. Migrate function bodies...
2829 (fold_builtin_1): ... from here.
2830
64045029
AM
28312004-09-09 Alan Modra <amodra@bigpond.net.au>
2832
2833 * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
2834 save_size.
2835
f0259218
DE
28362004-09-08 David Edelsohn <edelsohn@gnu.org>
2837
2838 * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
2839 * config/rs6000/power5.md (power5-lmul): Same.
2840
609c3937
RH
28412004-09-08 Richard Henderson <rth@redhat.com>
2842
2843 PR rtl-opt/17186
2844 * function.c (expand_function_end): Have fall-off-the-end
2845 return path jump around return register setup.
2846
4e5b002b
EB
28472004-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2848
2849 * config/sparc/sparc.c (sparc_indent_opcode): New variable.
2850 (output_return): Do not test for the presence of the 'unimp' insn.
2851 Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
2852 as predicates instead of custom ones. Return raw strings when
2853 possible.
2854 (output_sibcall): Likewise. Concatenate strings.
2855 (output_ubranch): Remove kludge for TurboSPARC.
2856 (output_cbranch): Remove 'noop' parameter. Do not output 'nop'.
2857 (output_v9branch): Likewise.
2858 (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
2859 <#>: Set sparc_indent_opcode if the delay slot is filled.
2860 <(>: Likewise.
2861 <)>: New operand to emit the displacement from the saved PC on return.
2862 <@>: Remove.
2863 * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
2864 (ASM_OUTPUT_OPCODE): New macro.
2865 (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
2866 * config/sparc/sparc.md (normal_branch, inverted_branch,
2867 normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
2868 inverted_fpe_branch): Adjust call to output_cbranch.
2869 (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
2870 call to output_v9branch.
2871 * config/sparc/sparc-protos.h (output_cbranch): Adjust.
2872 (output_v9branch): Likewise.
2873
5826770c
DP
28742004-09-08 Devang Patel <dpatel@apple.com>
2875
2876 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
2877 -segs_read_only_addr and -segs_read_write_addr.
2878 (WORD_SWITCH_TAKES_ARG): Same.
2879 (LINK_SPEC): Same.
2880 * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
2881 -segs_read_write_addr.
2882
6cdd5672
RH
28832004-09-08 Richard Henderson <rth@redhat.com>
2884
2885 * function.c (reference_callee_copied): New.
2886 (assign_parm_setup_reg): Use it.
2887 * calls.c (initialize_argument_information): Likewise.
2888 (emit_library_call_value_1): Likewise.
2889 * function.h (reference_callee_copied): Declare.
2890
2891 * target.h (struct gcc_target): Add callee_copies.
2892 * target-def.h (TARGET_CALLEE_COPIES): New.
2893 (TARGET_PASS_BY_REFERENCE): Update default.
2894 * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2895 * targhooks.c (hook_callee_copies_named): New.
2896 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
2897 hook_pass_by_reference_false.
2898 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
2899 * targhooks.h: Update decls.
2900 * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
2901 * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2902 * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
2903 * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
2904 * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2905 * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
2906 * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2907 * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
2908 * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2909 * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
2910 (mips_callee_copies): New.
2911 * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2912 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
2913 * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2914 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
2915 * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2916 * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
2917 * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2918 * config/sh/sh.c (sh_callee_copies): New.
2919 (TARGET_CALLEE_COPIES): New.
2920 * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2921 * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
2922 * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
2923 * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
2924 for FUNCTION_ARG_CALLEE_COPIES.
2925 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
2926
7f7e0703
DP
29272004-09-08 Devang Patel <dpatel@apple.com>
2928
6cdd5672
RH
2929 * tree-if-conv.c (find_phi_replacement_condition): Return true
2930 edge block.
2931 (replace_phi_with_cond_modify_expr): Select conditional expr args
2932 based on true edge basic block.
667bbbbb 2933
ed7f7d85
JH
29342004-09-08 Jan Hubicka <jh@suse.cz>
2935
2936 * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
2937 variables being alias set.
2938
0bccc606
NS
29392004-09-08 Nathan Sidwell <nathan@codesourcery.com>
2940
2941 * final.c (shorten_branches, final, get_insn_template,
2942 output_alternate_entry_point, final_scan_insn, alter_subreg,
2943 alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
2944 leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
2945 * fix-header.c (lookup_std_proto): Likewise.
2946 * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
2947 verify_local_live_at_start, update_life_info, mark_reg,
2948 calculate_global_regs_live, allocate_reg_life_data,
2949 init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
2950 ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
2951 attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
2952 * fold-const.c (force_fit_type, div_and_round_double,
2953 may_negate_without_overflow_p, int_const_binop, const_binop,
2954 size_binop, size_diffop, fold_convert_const, fold_convert,
2955 invert_tree_comparison, swap_tree_comparison,
2956 comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
2957 range_binop, make_range, fold_cond_expr_with_comparison,
2958 fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
2959 fold_abs_const, fold_not_const, fold_relational_const, round_up,
2960 round_down): Likewise.
2961 * function.c (find_function_data, assign_stack_temp_for_type,
2962 instantiate_virtual_regs_lossage, aggregate_value_p,
2963 assign_parm_find_entry_rtl, assign_parm_setup_block,
2964 expand_function_start, expand_function_end, keep_stack_depressed,
2965 handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
2966
599eabdb
DB
29672004-09-08 Daniel Berlin <dberlin@dberlin.org>
2968
2969 * Makefile.in (tree-loop-linear.o): Added.
2970 (OBJS-common): Add tree-loop-linear.o
2971 * common.opt: New flag, ftree-loop-linear.
2972 * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
2973 * tree-flow.h: Add prototype for linear_transform_loops.
2974 * tree-optimize.c: Add linear transform after vectorization.
2975 * tree-pass.h: Add struct pass_linear_transform.
2976 * tree-ssa-loop.c: Add pass_linear_transform.
2977 * tree-loop-linear.c: New file.
2978 * lambda-code.c: gcc_assertify.
2979 (gcc_loop_to_lambda_loop): Handle all exit tests.
2980 Handle case where we have (invariant >= induction var).
2981 (find_induction_var_from_exit_cond): Ditto.
667bbbbb 2982
13f5595a
JZ
29832004-09-08 Jie Zhang <zhangjie@magima.com.cn>
2984
2985 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
2986 memory tag is call clobbered, so are its aliases.
2987 (group_aliases): When two memory tags being grouped, if one is
2988 call clobbered, so are the other and its aliases.
2989 (add_may_alias): Remove call-clobbering stuff.
2990 (replace_may_alias): Likewise.
2991 (merge_pointed_to_info): Merge pt_global_mem
2992
89480522
JH
29932004-09-08 Jan Hubicka <jh@suse.cz>
2994
2995 * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
2996 * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
2997 (cgraph_expand_function): Remove stale cgraph edges of currently
2998 compiled function; fix non-unit-at-a-time code copying function
2999 node for later reuse.
3000
4c254e68
NS
30012004-09-08 Nathan Sidwell <nathan@codesourcery.com>
3002
3003 * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
3004 (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
3005 (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
3006 (vec_gc_free, vec_heap_free): New.
3007 * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
3008 (DEF_VEC_P): Add allocator argument. Adjust.
3009 (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
3010 (DEF_VEC_O): Add allocator argument. Adjust.
3011 (VEC(free)): New.
3012
3013 * tree.h (tree): Define a GC'd vector.
3014 * lamba-code.c (lambda_loop): Likewise.
3015 * value-prof.h (histogram_value): Likewise.
4c254e68 3016
5b0264cb
NS
30172004-09-08 Nathan Sidwell <nathan@codesourcery.com>
3018
3019 * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
3020 (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
3021 gen_lowpart_common, gen_highpart, gen_highpart_mode,
3022 subreg_highpart_offset, operand_subword, operand_subword_force,
3023 mem_expr_equal_p, set_mem_attributes_minus_bitpos,
3024 set_mem_alias_set, change_address_1, verify_rtx_sharing,
3025 copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
3026 try_split, add_insn_after, add_insn_before, remove_insn,
3027 remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
3028 emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
3029 emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
3030 set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
3031 gen_const_vector_0, emit_copy_of_insn_after): Likewise.
3032 * et-forest.c (set_prev, set_next, et_check_occ_sanity,
3033 record_path_before_1, check_path_after_1, check_path_after): Likewise.
3034 * except.c (gen_eh_region, resolve_one_fixup_region,
3035 remove_unreachable_regions, convert_from_eh_region_ranges_1,
3036 add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
3037 connect_post_landing_pads, sjlj_emit_function_exit,
3038 remove_exception_handler_label, remove_eh_handler,
3039 reachable_next_level, collect_one_action_chain,
3040 output_function_exception_table): Likewise.
3041 * explow.c (trunc_int_for_mode, copy_to_mode_reg,
3042 optimize_save_area_alloca, allocate_dynamic_stack_space,
3043 probe_stack_range, hard_function_value): Likewise.
3044 * expmed.c (mode_for_extraction, store_bit_field,
3045 store_fixed_bit_field, extract_bit_field, expand_shift,
3046 expand_mult_const, expand_mult, choose_multiplier,
3047 expand_mult_highpart, expand_divmod, emit_store_flag,
3048 do_cmp_and_jump): Likewise.
3049 * expr.c (convert_move, convert_modes, move_by_pieces,
3050 move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
3051 move_block_from_reg, gen_group_rtx, emit_group_load,
3052 emit_group_move, emit_group_store, use_reg, use_regs,
3053 can_store_by_pieces, store_by_pieces, store_by_pieces_1,
3054 emit_move_insn, emit_move_insn_1, emit_push_insn,
3055 expand_assignment, store_expr, count_type_elements,
3056 store_constructor, store_field, safe_from_p, expand_var,
3057 expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
3058
ced3f397
NS
30592004-09-08 Nathan Sidwell <nathan@codesourcery.com>
3060
3061 * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
3062 gcc_assert and gcc_unreachable.
3063 * ddg.c (create_ddg_dependence, add_deps_for_def,
3064 add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
3065 * df.c (df_ref_unlink, df_ref_record, df_uses_record,
3066 df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
3067 df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
3068 df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
3069 df_bb_reg_live_end_p, df_bb_regs_lives_compare,
3070 df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
3071 dataflow_set_copy, hybrid_search, diagnostic.c,
3072 diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
3073 * dojump.c (do_jump): Likewise.
3074 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
3075 compute_dom_fast_query, calculate_dominance_info,
3076 free_dominance_info, get_immediate_dominator,
3077 set_immediate_dominator, get_dominated_by,
3078 redirect_immediate_dominators, nearest_common_dominator,
3079 dominated_by_p, verify_dominators, recount_dominator,
3080 iterate_fix_dominators, add_to_dominance_info,
3081 delete_from_dominance_info): Likewise.
3082 * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
3083 dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
3084 dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
3085 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
3086 initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
3087 flush_queued_reg_saves, dwarf2out_frame_debug_expr,
3088 dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
3089 output_call_frame_info, output_loc_operands, build_cfa_loc,
3090 decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
3091 AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
3092 AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
3093 splice_child_die, attr_checksum, same_dw_val_p,
3094 break_out_includes, build_abbrev_table, size_of_die, mark_dies,
3095 unmark_dies, value_format, output_loc_list, output_die,
3096 output_pubnames, output_aranges, base_type_die, is_base_type,
3097 modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
3098 mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
3099 field_byte_offset, add_data_member_location_attribute,
3100 add_const_value_attribute, rtl_for_decl_location,
3101 add_location_or_const_value_attribute, add_byte_size_attribute,
3102 add_bit_offset_attribute, add_bit_size_attribute,
3103 add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
3104 decl_start_label, gen_formal_parameter_die,
3105 gen_type_die_for_member, gen_subprogram_die, gen_label_die,
3106 gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
3107 force_decl_die, force_type_die, gen_decl_die,
3108 dwarf2out_imported_module_or_decl, prune_unused_types_prune,
3109 dwarf2out_finish): Likewise.
3110
faaaf610
AT
31112004-09-08 Andreas Tobler <toa@pop.agri.ch>
3112
3113 * Makefile.in (builtins.o): Depend on tree-mudflap.h.
3114 * builtins.c: Include tree-mudflap.h.
3115
45c8c47f
UB
31162004-09-08 Uros Bizjak <uros@kss-loka.si>
3117
3118 * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
3119 force operand 0.0 into register in XFmode. Also do not force
3120 operand 0.0 into register if !TARGET_CMOVE.
3121 * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
667bbbbb 3122 (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
45c8c47f
UB
3123 implement ftst x87 instruction.
3124 (*fp_jcc_7): New insn pattern. Change corresponding split
3125 pattern to handle "general_operand" instead of
3126 "nonimmediate_operand".
3127
70d5fb1c
BE
31282004-09-08 Ben Elliston <bje@au.ibm.com>
3129
3130 * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
3131
4882ad24
FCE
31322004-09-07 Frank Ch. Eigler <fche@redhat.com>
3133
3134 * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
3135 generated from standard va_arg expansion.
3136 * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
3137 marked nodes.
3138 (mf_varname_tree, mf_file_function_line_tree): Add some support
3139 for column numbers if compiled with USE_MAPPED_LOCATION.
3140
06f624ba
ZL
31412004-09-07 Ziemowit Laski <zlaski@apple.com>
3142
3143 * c-decl.c (groktypename_in_parm_context): Remove function.
3144 * c-tree.h (groktypename_in_parm_context): Remove prototype.
3145
6408ef33
ZL
31462004-09-07 Ziemowit Laski <zlaski@apple.com>
3147
3148 * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
3149 * c-parse.in: Include c-common.h instead of objc-act.h.
3150 (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
3151 myparms, myparm): Remove %type declarations.
3152 (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
3153 objc_typename, objc_try_catch_stmt, optellipsis): Add %type
3154 declarations.
3155 (objc_inherit_code, objc_public_flag): Remove.
3156 (typespec_nonreserved_nonattr): Call
3157 objc_get_protocol_qualified_type() instead of get_static_reference()
3158 and get_protocol_reference().
3159 (stmt_nocomp): Call grokparm() on @catch parameter.
3160 (objcdef): Move semantic action to objc_finish_implementation().
3161 (classdef): Move semantic action to objc_start_class_interface(),
3162 objc_continue_interface(), objc_finish_interface(),
3163 objc_start_class_implementation(), objc_continue_implementation(),
3164 objc_start_category_interface() and
3165 objc_start_category_implementation().
3166 (protocoldef): Move semantic actions to objc_start_protocol() and
3167 objc_finish_interface().
3168 (ivar_decl_list): Remove nonterminal.
3169 (visibility_spec): Move semantic actions to objc_set_visibility().
3170 (ivar_decls): Remove assignment to $$.
3171 (ivar_decl): Rephrase in terms of component_decl; call
3172 objc_add_instance_variable().
3173 (ivars, ivar_declarator): Remove nonterminals.
3174 (opt_semi): New nonterminal.
3175 (methodtype): Remove semantic actions.
3176 (methoddef): Move semantic actions to objc_set_method_type(),
3177 objc_start_method_definition() and objc_finish_method_definition().
3178 (methodproto): Move semantic actions to objc_set_method_type() and
3179 objc_add_method_declaration().
3180 (methoddecl): Use objc_typename instead of typename; move semantic
3181 actions to objc_build_method_signature().
3182 (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
3183 (optparmlist): Express in terms of optparms and optellipsis.
3184 (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
3185 nonterminals.
3186 (keyworddecl): Use objc_typename instead of typename.
3187 (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
3188 and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
3189
8662eb14
AM
31902004-09-08 Alan Modra <amodra@bigpond.net.au>
3191
3192 * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
3193 (MD_FALLBACK_FRAME_STATE_FOR): Update.
3194 * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
3195 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
3196 (MD_FROB_UPDATE_CONTEXT): Remove default.
3197 (uw_update_context_1): Instead #ifdef invocation.
3198 * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
3199 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
3200 * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
3201 (MD_UNWIND_SUPPORT): Undefine this instead.
3202 * config/i386/gnu.h: Likewise.
3203 * config/alpha/linux-unwind.h: New file, macro converted to
3204 function, extracted from..
3205 * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
3206 (MD_UNWIND_SUPPORT): Define.
3207 * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
3208 * config/i386/linux-unwind.h, config/i386/linux.h,
3209 config/i386/linux64.h: Likewise.
3210 * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
3211 MD_HANDLE_UNWABI too.
3212 * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
3213 * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
3214 * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
3215 * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
3216 * config/sparc/linux-unwind.h, config/sparc/linux.h,
3217 config/sparc/linux64.h: Likewise.
3218 * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
3219 SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
3220 * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
3221 config/rs6000/linux64.h: Likewise. Split out get_sigcontext
3222 function. Use ARG_POINTER_REGNUM for 32-bit temp reg too.
3223
c4817ba6
JH
32242004-09-07 Jan Hubicka <jh@suse.cz>
3225
ec666d23
JH
3226 * cse.c (fold_rtx): Avoid building of
3227 (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
3228
c4817ba6
JH
3229 * tree-ssa-pre.c (grand_bitmap_obstack): New.
3230 (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
3231 (init_pre): Initialize obstack.
3232 (fini_pre): Free obstack.
3233
9f0df97a
DD
32342004-09-07 David Daney <ddaney@avtrex.com>
3235
3236 * config.gcc: Added support for --with-divide=[breaks|traps] for
3237 mips targets.
3238 * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
3239 (TARGET_DIVIDE_TRAPS): New macro.
3240 (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
3241 (OPTION_DEFAULT_SPECS): Added --with-divide= support.
3242 * config/mips/mips.c (mips_idiv_insns): Generate proper count on
3243 GENERATE_DIVIDE_TRAPS.
3244 (mips_output_division): Emit conditional trap if
3245 GENERATE_DIVIDE_TRAPS is set.
3246 * doc/install.texi: Document --with-divide.
3247 * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
3248
9beb1c84
CT
32492004-09-07 Caroline Tice <ctice@apple.com>
3250
3251 * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
3252 EDGE_CROSSING, to flags test case.
667bbbbb 3253
1905940f
JH
32542004-09-07 Jan Hubicka <jh@suse.cz>
3255
3256 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
3257 class too.
3258
341c100f
NS
32592004-09-07 Nathan Sidwell <nathan@codesourcery.com>
3260
3261 * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
3262 cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
3263 make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
3264 or gcc_unreachable.
3265 * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
3266 remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
3267 alloc_aux_for_edges, free_aux_for_edges): Likewise.
3268 * cfgcleanup.c (try_forward_edges,
3269 merge_blocks_move_predecessor_nojumps,
3270 merge_blocks_move_successor_nojumps): Likewise.
3271 * cfgexpand.c (expand_gimple_cond_expr,
3272 expand_gimple_tailcall): Likewise.
3273 * cfghooks.c (duplicate_block): Likewise.
3274 * cfglayout.c (record_effective_endpoints,
3275 insn_locators_initialize, change_scope, fixup_reorder_chain,
3276 verify_insn_chain, fixup_fallthru_exit_predecessor,
3277 duplicate_insn_chain, cfg_layout_finalize): Likewise.
3278 * cfgloopanal.c (check_irred): Likewise.
3279 * cfgloop.c (superloop_at_depth, flow_loops_free,
3280 flow_loop_entry_edges_find, flow_loops_find,
3281 flow_loop_outside_edge_p, get_loop_body,
3282 get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
3283 get_loop_exit_edges, num_loop_branches, cancel_loop,
3284 verify_loop_structure): Likewise.
3285 cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
3286 duplicate_loop_to_header_edge, create_preheader,
3287 create_loop_notes): Likewise.
3288 * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
3289 edirect_branch_edge, force_nonfallthru_and_redirect,
3290 rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
3291 commit_edge_insertions, commit_edge_insertions_watch_calls,
3292 purge_dead_edges, cfg_layout_redirect_edge_and_branch,
3293 cfg_layout_redirect_edge_and_branch_force,
3294 cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
3295 * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
3296 cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
3297 cgraph_varpool_node): Likewise.
3298 * cgraphunit.c (cgraph_finalize_function,
3299 cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
3300 cgraph_expand_function, cgraph_remove_unreachable_nodes,
3301 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3302 cgraph_mark_inline, cgraph_expand_all_functions,
3303 cgraph_build_static_cdtor): Likewise.
3304 * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx,
3305 simplify_logical, distribute_notes, insn_cuid): Likewise.
3306 * conflict.c (conflict_graph_add, print_conflict): Likewise.
3307 * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
3308 coverage_checksum_string): Likewise.
3309 * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
3310 hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
3311 cse_cc_succs, cse_condition_code_reg): Likewise.
3312 * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
3313 rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
3314 new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
3315 cselib_record_set): Likewise.
3316
6b094f38
JH
33172004-09-07 Jan Hubicka <jh@suse.cz>
3318
3319 * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
3320
5212068f
NS
33212004-09-07 Nathan Sidwell <nathan@codesourcery.com>
3322
3323 * builtins.c (fold_builtin_strchr): Use build_int_cst, not
3324 fold_convert.
3325 (fold_builtin_strpbrk): Likewise.
3326 * expr.c (array_ref_low_bound): Likewise.
3327 * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
3328 interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
3329 * tree-sra.c (generate_element_zero): Likewise.
3330 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3331 * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
3332 add_old_iv_candidates, add_iv_candidates): Likewise.
3333 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3334
366de0ce
NS
33352004-09-07 Nathan Sidwell <nathan@codesourcery.com>
3336
3337 * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
3338 * c-common.c (c_type_hash, c_common_nodes_and_builtins,
3339 c_expand_expr, boolean_increment, nonnull_check_p,
3340 check_function_arguments_recurse, fold_offsetof_1): Likewise.
3341 * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
3342 builtin_define_type_max): Likewise.
3343 * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
3344 implicit_decl_warning, builtin_function, build_compound_literal,
3345 complete_array_type, grokdeclarator, get_parm_info,
3346 start_function, store_parm_decls_oldstyle,
3347 c_write_global_declarations): Likewise.
3348 * c-format.c (get_constant, decode_format_attr,
3349 maybe_read_dollar_number, get_flag_spec, check_format_arg,
3350 check_format_types, format_type_warning,
3351 find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
3352 init_dynamic_diag_info, handle_format_attribute): Likewise.
667bbbbb 3353 * c-gimplify.c (push_context, pop_context, finish_bc_block):
366de0ce
NS
3354 * c-lex.c (c_lex_with_flags, lex_string): Likewise.
3355 * c-objc-common.c (c_tree_printer): Likewise.
3356 * c-pch.c (pch_init): Likewise.
3357 * c-pragma.c (maybe_apply_pragma_weak): Likewise.
3358 * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
3359 * c-typeck.c (c_incomplete_type_error, composite_type,
3360 common_pointer_type, common_type, same_translation_unit_p,
3361 tagged_types_tu_compatible_p, finish_init, pop_init_level,
3362 set_designator, set_nonincremental_init_from_string,
3363 process_init_element, c_finish_if_stmt): Likewise.
3364 * caller-save.c (init_caller_save, save_call_clobbered_regs,
3365 insert_restore, insert_save, insert_one_insn): Likewise.
3366 * calls.c (emit_call_1, compute_argument_block_size,
3367 precompute_arguments, expand_call, emit_library_call_value_1,
3368 store_one_arg): Likewise.
3369
e1bbfc5c
NS
33702004-09-07 Nathan Sidwell <nathan@codesourcery.com>
3371
3372 * configure.ac (enable-checking): Add release option. Reorganize
3373 to avoid repetition.
3374 * configure: Rebuilt.
3375 * doc/install.texi (enable-checking): Amend documentation.
3376
e64dc647
L
33772004-09-06 H.J. Lu <hongjiu.lu@intel.com>
3378
3379 PR bootstrap/17313
3380 * Makefile.in (specs.ready): Depend on cc1$(exeext).
3381
d3a583b1
JW
33822004-09-06 James E Wilson <wilson@specifixinc.com>
3383
cfd8e493
JW
3384 * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
3385 movdf_hardfloat_32bit): Split fG into two alternatives.
3386 (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
3387
d3a583b1
JW
3388 * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
3389
ff8cea7e
EB
33902004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
3391
3392 * final.c (output_in_slot): Delete.
3393 (final_scan_insn): Revert 2004-09-03 change.
3394 (output_asm_insn): Likewise.
3395 * config/sparc/sparc.c (output_return): Likewise.
3396 (output_sibcall): Likewise.
3397
8679c649
JH
33982004-09-06 Jan Hubicka <jh@suse.cz>
3399
3400 * loop.c (loop_dump_aux): Do not print RTL when not available.
3401 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
3402 frontend specific type nodes.
3403 (produce_memory_decl_rtl): Break out from ...
3404 (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly.
3405 (get_computation_at): Avoid random tree sharing.
3406 (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
3407
93f8bd9e
ZW
34082004-09-06 Zack Weinberg <zack@codesourcery.com>
3409
3410 * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
3411 unnecessary commands.
3412
c802a859
ME
34132004-09-06 Mohan Embar <gnustuff@thisiscool.com>
3414
3415 * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
3416 (bitmap.o): Likewise.
3417
9f8628ba
PB
34182004-09-06 Paolo Bonzini <bonzini@gnu.org>
3419
3420 Unify the management of RTL and tree-level dump files.
3421
3422 * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
3423 Don't print function name to the dump file, the pass manager
3424 would do this for us. Add code from the top of
3425 rest_of_compilation, up to the initial RTL dump.
3426 * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
3427 close the DFI_sibling dump file.
3428 (rest_of_compilation): Don't do that here. Remove code up to the
3429 initial RTL dump.
3430 (init_optimization_passes): Remove.
3431 (pass_rest_of_compilation): Change pass name to NULL.
3432 * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
3433 Do not call init_optimization_passes.
3434 * toplev.h (init_optimization_passes): Remove.
3435
3436 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
3437 finish_graph_dump_file): Remove SUFFIX parameter.
3438 * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
3439 finish_graph_dump_file): Likewise.
3440
3441 * tree-pass.h (struct tree_opt_pass): Add `letter' field.
3442 * cfgexpand.c (pass_expand): Adjust.
3443 * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
3444 * passes.c (pass_rest_of_compilation): Adjust.
3445 * predict.c (pass_profile): Adjust.
3446 * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
3447 * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
3448 pass_split_crit_edges, pass_warn_function_return): Adjust.
3449 * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
3450 * tree-dfa.c (pass_referenced_vars): Adjust.
3451 * tree-eh.c (pass_lower_eh): Adjust.
3452 * tree-if-conv.c (pass_build_ssa): Adjust.
3453 * tree-into-ssa.c (pass_build_ssa): Adjust.
3454 * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
3455 * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
3456 * tree-nrv.c (pass_nrv): Adjust.
3457 * tree-optimize.c (pass_gimple, pass_all_optimizations,
3458 pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
3459 pass_init_datastructures): Adjust.
3460 * tree-outof-ssa.c (pass_del_ssa): Adjust.
3461 * tree-profile.c (pass_tree_profile): Adjust.
3462 * tree-sra.c (pass_sra): Adjust.
3463 * tree-ssa-alias.c (pass_may_alias): Adjust.
3464 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
3465 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
3466 * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
3467 * tree-ssa-dom.c (pass_dominator): Adjust.
3468 * tree-ssa-dse.c (pass_dse): Adjust.
3469 * tree-ssa-forwprop.c (pass_forwprop): Adjust.
3470 * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
3471 * tree-ssa-loop-ch.c (pass_ch): Adjust.
3472 * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
3473 pass_loop_done, pass_complete_unroll, pass_iv_canon,
3474 pass_iv_optimize, pass_vectorize): Adjust.
3475 * tree-ssa-phiopt.c (pass_phiopt): Adjust.
3476 * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
3477 * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
3478 pass_late_warn_uninnitialized): Adjust.
3479 * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
3480
3481 * Makefile.in (tree-dump.o): Add new dependencies.
3482 * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
3483 * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
3484 Likewise.
3485 * toplev.c (dump_file_name): New.
3486 * tree-dump.c (dump_enable_all): Add LETTER parameter.
3487 (struct dump_file_info): Add NUM and LETTER fields.
3488 (dump_files): Adjust and add RTL dump files.
3489 (dump_register): Add NUM and LETTER fields.
3490 (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
3491 (dump_begin): Use get_dump_file_name.
3492 (dump_switch_p_1): Adjust call to dump_enable_all.
3493 * tree-dump.h (dump_register): Adjust prototype.
3494 * tree-optimize.c (register_one_dump_file): Take dump file index.
3495 Support flags for RTL dumps.
3496 (register_dump_files): Fill in NUM field of struct dump_file_info.
3497 Track properties both when the gate is executed and when it is not.
3498 (execute_todo): Dump RTL. Add PROPERTIES parameter.
3499 (execute_one_pass): Pass properties to execute_todo. Handle VCG
3500 dumps of RTL.
3501 * tree-pass.h (dump_file_name): New.
3502 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
3503 New.
3504
3505 * Makefile.in (passes.o): Add new dependencies.
3506 * passes.c (struct dump_file_info, enum dump_file_index,
3507 dump_file_tbl, init_optimization_passes): Remove.
3508 (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
3509 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
3510 dump_enabled_p.
3511 (finish_optimization_passes): Update finish_graph_dump_file loop.
3512 (enable_rtl_dump_file): Remove.
3513 * tree-dump.c (dump_files): Adjust and add RTL dump files.
3514 (enable_rtl_dump_file): Add here.
3515 * tree.h (enum tree_dump_index): Add RTL dump file indices.
3516 * doc/invoke.texi (Debugging options): Document new RTL debugging
3517 options. Update.
3518
8c27b7d4
KH
35192004-09-05 Kazu Hirata <kazu@cs.umass.edu>
3520
3521 * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
3522 gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
3523 stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
3524 tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
3525 tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
3526 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
3527 tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
3528 vec.h: Fix comment formatting.
3529
2a7e31df
KH
35302004-09-05 Kazu Hirata <kazu@cs.umass.edu>
3531
3532 * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
3533 et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
3534 hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
3535 tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
3536 tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
3537 tree-ssa-loop-niter.c, tree-ssa-operands.c,
3538 tree-ssa-operands.h, tree-ssa-propagate.c,
3539 tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
3540 vec.c, vec.h: Fix comment typos. Follow spelling conventions.
3541
2addf926
DN
35422004-09-05 Diego Novillo <dnovillo@redhat.com>
3543
3544 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
3545 vectorizer is enabled.
3546
61b5f210
AJ
35472004-09-05 Andreas Jaeger <aj@suse.de>
3548
3549 * tree-if-conv.c: Spell check comments and clean up whitespace.
3550
8b11a64c
ZD
35512004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3552
3553 * tree-ssa-loop-ivopts.c: New file.
3554 * Makefile.in (tree-ssa-loop-ivopts.c): Add.
3555 * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
3556 target_pres_cost, target_spill_cost): Declare.
3557 * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
3558 spill_cost): Renamed to ...
3559 (target_avail_regs, target_res_regs, target_small_cost,
3560 target_pres_cost, target_spill_cost): ... and exported.
3561 (init_set_costs, global_cost_for_size): Work with renamed variables.
3562 * common.opt (flag_ivopts): New flag.
3563 * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle
3564 REF_ORIGINAL.
3565 * gimplify.c (struct gimplify_ctx): Add into_ssa field.
3566 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
3567 generating SSA form.
3568 (force_gimple_operand): New function.
3569 * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
3570 * tree-cfg.c (stmt_bsi): New function.
3571 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
3572 PARAM_IV_MAX_CONSIDERED_USES): New.
3573 * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
3574 bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
3575 ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
3576 * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
3577 * tree-nested.c (build_addr): Export.
3578 * tree-optimize.c (init_tree_optimization_passes): Add
3579 pass_iv_optimize.
3580 * tree-pass.h (pass_iv_optimize): Declare.
3581 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
3582 IMAGPART_EXPR.
3583 * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
3584 as a phi node argument.
3585 (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
3586 ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
3587 functions.
3588 * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
3589 * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
3590 pass_iv_optimize): New pass.
3591 * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
3592 * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
3593 * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
3594 * tree.h (REF_ORIGINAL): New macro.
3595 (build_int_cst_type, unsigned_type_for, zero_p,
3596 cst_and_fits_in_hwi, build_addr): Declare.
3597 * doc/invoke.texi (-fivopts): Document.
3598 (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
3599 PARAM_IV_MAX_CONSIDERED_USES): Document.
3600 * doc/passes.texi: Document induction variable optimizations pass.
3601
254986c7
KG
36022004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3603
3604 * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
3605 * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
3606 * c-common.c (c_common_attribute_table): Accept parameters to
3607 sentinel attribute.
3608 (check_function_sentinel, handle_sentinel_attribute): Likewise.
3609 * doc/extend.texi: Update accordingly.
3610
3d091dac
KG
36112004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3612
3613 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
3614 New.
3615 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
3616 attribute.
3617 * c-common.c (handle_sentinel_attribute, check_function_sentinel):
3618 New functions.
3619 (c_common_attribute_table): Add `sentinel' attribute.
3620 (check_function_arguments): Handle `sentinel' attribute.
3621 * doc/extend.texi: Document `sentinel' attribute.
8f1529e6 3622
44269c40 36232004-09-04 H.J. Lu <hongjiu.lu@intel.com>
a60749f5 3624
3d091dac
KG
3625 * configure: Regenerated.
3626
44269c40
KG
36272004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3628
875803a0
RK
3629 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
3630
c51c248f
RK
3631 * tree.c (save_expr): No longer TREE_READONLY.
3632
8d168c24
JH
36332004-09-04 Jan Hubicka <jh@suse.cz>
3634
3635 * passes.c (rest_of_clean_state): Fix merge conflict made during
3636 commiting the patch.
3637
0a9aeefd
JH
36382004-09-04 Jan Hubicka <jh@suse.cz>
3639
3640 * passes.c (rest_of_clean_state): Decompose the instruction stream.
3641
273a2526
RS
36422004-09-04 Richard Sandiford <rsandifo@redhat.com>
3643
3644 * doc/md.texi (shift patterns): New anchor. Add reference to
3645 TARGET_SHIFT_TRUNCATION_MASK.
3646 * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
3647 * target.h (shift_truncation_mask): New target hook.
3648 * targhook.h (default_shift_truncation_mask): Declare.
3649 * targhook.c (default_shift_truncation_mask): Define.
3650 * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
3651 (TARGET_INITIALIZER): Include it.
3652 * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
3653 and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
3654 reject all out-of-range values. Fix sign-extension code for modes
3655 whose width is smaller than HOST_BITS_PER_WIDE_INT.
3656 * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
3657 (expand_superword_shift, expand_subword_shift): Likewise.
3658 (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
3659 (expand_binop): Use them to implement double-word shifts.
3660 * config/arm/arm.c (arm_shift_truncation_mask): New function.
3661 (TARGET_SHIFT_TRUNCATION_MASK): Define.
3662
caf29de7
JH
36632004-09-04 Jan Hubicka <jh@suse.cz>
3664
3665 * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
3666 (mix): New macro copied from hashtab.c
3667 (iterative_hash_hashval_t, iterative_hash_pointer,
3668 iterative_hash_host_wide_int): New functions based on hashtab.c
3669 implementation.
3670
e83adf94
RS
36712004-09-04 Richard Sandiford <rsandifo@redhat.com>
3672
3673 * config/mips/mips.md (mask): New mode attribute.
3674 (zero_extendsidi2): Add memory alternative.
3675 (*zero_extendsidi2_mem): Delete.
3676 (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use
3677 memory_operand in the TARGET_MIPS16 check.
3678 (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
3679 Redefine using :GPR and :SHORT.
3680 (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
3681
edeacc14
UB
36822004-09-04 Uros Bizjak <uros@kss-loka.si>
3683
3684 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
3685 using rint_optab.
3686 (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
3687 expand_builtin_mathfn.
3688 * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
3689 btrunc?f patterns for btrunc_optab. Implement rint_optab using
3690 rint?f patterns.
3691 * optabs.c (init_optabs): Initialize rint_optab.
3692 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
3693 Add new OTI_rint.
3694 (btrunc_optab): Rename macro from trunc_optab.
3695 (rint_optab): Define corresponding macro.
3696
3697 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
3698 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
3699
3700 * config/i386/i386-protos.h (emit_i387_cw_initialization):
3701 Change prototype. Add new int parameter.
3702 * config/i386/i386.c (emit_i387_cw_initialization):
3703 Handle new rounding modes.
3704
3705 * config/i386/i386.h (enum fp_cw_mode): Delete.
c9996000 3706 (MODE_NEEDED): Handle new rounding modes.
edeacc14
UB
3707 (EMIT_MODE_SET): Change condition to handle new rounding modes.
3708
3709 * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
3710 UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
3711 represent different rounding modes of frndint insn.
3712 (type): Add frndint type.
3713 (i387, length, memory): Handle this type.
3714 (i387_cw): New attribute definition.
3715 (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
3716 *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
3717 *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
3718 Add "i387_cw" attribute defined to "trunc".
3719 (x86_fnstcw_1): Remove comment.
3720 (*frndintxf2): Rename insn definition to frndintxf2. Move
3721 insn definition near rint?f2 expanders.
3722 (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
3723 rintf and rintl built-ins as inline x87 intrinsics.
3724 (frndintxf2_floor): New pattern to implement floor rounding
3725 mode with frndint x87 instruction.
3726 (floordf2, floorsf2, floorxf2): New expanders to implement floor,
3727 floorf and floorl built-ins as inline x87 intrinsics.
3728 (frndintxf2_ceil): New pattern to implement ceil rounding
3729 mode with frndint x87 instruction.
3730 (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
3731 ceilf and ceill built-ins as inline x87 intrinsics.
3732 (frndintxf2_trunc): New pattern to implement trunc rounding
3733 mode with frndint x87 instruction.
3734 (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
3735 truncf and truncl built-ins as inline x87 intrinsics.
3736 (frndintxf2_mask_pm): New pattern to implement rounding
3737 mode with exceptions with frndint x87 instruction.
3738 (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
3739 implement nearbyint, nearbyintf and nearbyintl built-ins as
3740 inline x87 intrinsics.
3741
183f019b
RS
37422004-09-04 Richard Sandiford <rsandifo@redhat.com>
3743
3744 * config/mips/mips.md (SHORT): New mode macro.
3745 (size): New mode attribute.
3746 (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
3747 (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
3748 *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if
3749 !ISA_HAS_SEB_SEH.
3750 (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
3751 *extend[qh]isi2_hw patterns and extending them to di.
3752 (extendqihi2): Implement as define_insn_and_split that produces
3753 extendqisi2 after reload.
3754
40923b20
DP
37552004-09-03 Devang Patel <dpatel@apple.com>
3756
3757 * Makefile.in (OBJS-common): Add tree-if-conv.o
3758 (tree-if-conv.o): New rule.
3759 * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
3760 (get_loop_body_in_bfs_order): New.
3761 * cfgloop.h (get_loop_body_in_bfs_order): New.
3762 * tree-flow.h (enum move_pos): Move here from ..
3763 * tree-ssa-loop-im.c (enum move_pos): here.
3764 (movement_possibility): Make externally visible.
3765 * tree-optimize.c (init_tree_optimization_passes): New entry for
3766 if conversion pass.
3767 * tree-pass.h (pass_if_conversion): New.
3768 * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
3769 * tree-if-conv.c: New file.
3770 * doc/passes.texi: Document tree if-conversion pass.
c9996000 3771 * doc/tree-ssa.texi: Same.
40923b20 3772
443728bb
L
37732004-09-03 H.J. Lu <hongjiu.lu@intel.com>
3774
3775 PR target/14925:
3776 Makefile.in (LIB2ADDEHSTATIC): New.
3777 (LIB2ADDEHSHARED): New.
3778 (LIBUNWIND): New.
3779 (LIBUNWINDDEP): New.
3780 (SHLIBUNWIND_LINK): New.
3781 (SHLIBUNWIND_INSTALL): New.
3782 (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
3783 LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
3784 (clean): Remove libunwind*
3785 (stage1-start): Remove and copy stage1/libunwind*.
3786 (stage2-start): Remove and copy stage2/libunwind*.
3787 (stage3-start): Remove and copy stage3/libunwind*.
3788 (stage4-start): Remove and copy stage4/libunwind*.
3789 (stageprofile-start): Remove and copy stageprofile/libunwind*.
3790 (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
3791
3792 * config.gcc (ia64*-*-linux*): Always add t-libunwind to
3793 tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
3794 tmake_file if --with-system-libunwind isn't used.
3795
3796 * config/ia64/t-glibc-libunwind: New file.
3797 * config/t-libunwind-elf: Likewise.
3798 * unwind-compat.c: Likewise.
3799 * unwind-compat.h: Likewise.
3800 * unwind-dw2-fde-compat.c: Likewise.
3801
3802 * config/ia64/t-glibc (LIB2ADDEH): Updated.
3803 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
3804
3805 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
3806 aliases if needed.
3807 * unwind-dw2-fde-glibc.c: Likewise.
3808 * unwind-dw2.c: Likewise.
3809
3810 * config/t-libunwind (LIB2ADDEH): Updated.
3811 (LIB2ADDEHSTATIC): New.
3812 (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
3813 (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
3814
3815 * configure.ac: Change --enable-libunwind-exceptions to
3816 --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
3817 * configure: Regenerated.
3818 * config.in: Updated.
3819
3820 * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
3821 above and mention --with-system-libunwind.
3822 (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
3823 removed in gcc 3.4.3 and later.
3824
3825 * gcc.c (init_spec): Add -lunwind to -lgcc_s if
3826 USE_LIBUNWIND_EXCEPTIONS is defined.
3827
3828 * mklibgcc.in: Support libunwind.
3829
d20bf446
L
38302004-09-03 H.J. Lu <hongjiu.lu@intel.com>
3831
3832 * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
3833 m_NOCONA.
3834
1f6d3a08
RH
38352004-09-03 Richard Henderson <rth@redhat.com>
3836
93f8bd9e
ZW
3837 PR middle-end/9997
3838 * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
3839 (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
3840 (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
3841 stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
3842 frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
3843 resize_stack_vars_conflict, add_stack_var_conflict,
3844 stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
3845 union_stack_vars, partition_stack_vars, dump_stack_var_partition,
3846 expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
1f6d3a08
RH
3847 expand_one_static_var, expand_one_hard_reg_var,
3848 expand_one_register_var, expand_one_error_var, defer_stack_allocation,
3849 expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
93f8bd9e 3850 (expand_used_vars): Rewrite.
1f6d3a08
RH
3851 * Makefile.in (cfgexpand.o): Update dependencies.
3852
80d8221e
JH
38532004-09-04 Jan Hubicka <jh@suse.cz>
3854
3855 * cfg.c (free_edge): Use ggc_free.
3856 (expunge_block): Use ggc_free.
3857 * passes.c (rest_of_clean_state): Free after compilation.
3858 * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
3859 * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
3860
bb1058e4
JW
38612004-09-03 James E Wilson <wilson@specifixinc.com>
3862
3863 * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
3864 DECL_EXTERNAL check.
3865
ca83de6b
EB
38662004-09-03 Eric Botcazou <ebotcazou@libertysurf.fr>
3867
3868 * final.c (output_in_slot): New global variable.
3869 (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
3870 Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE. Set
3871 'output_in_slot' before invoking output_asm_insn.
3872 (output_asm_insn): Add a space after the tab if 'output_in_slot'
3873 is set.
3874 * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
3875 final_scan_insn.
3876 (output_sibcall): Likewise.
3877
1e3e17d3
JH
38782004-09-03 Jan Hubicka <jh@suse.cz>
3879
3880 * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
3881 * tree-ssanames (init_ssanames): Likewise.
3882
c41e5f27
ZL
38832004-09-03 Ziemowit Laski <zlaski@apple.com>
3884
3885 * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
3886 objc_declare_protocols, objc_start_protocol,
3887 objc_start_class_interface, objc_start_category_interface,
3888 objc_continue_interface, objc_finish_interface,
3889 objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
3890 objc_start_class_implementation, objc_start_category_implementation,
3891 objc_continue_implementation, objc_finish_implementation,
3892 objc_add_method_declaration, objc_start_method_definition,
3893 objc_finish_method_definition, objc_build_keyword_decl,
3894 objc_build_method_signature, objc_build_encode_expr,
3895 objc_build_protocol_expr, objc_build_selector_expr,
3896 objc_build_message_expr, objc_build_string_object,
3897 objc_get_class_reference, objc_get_protocol_qualified_type,
3898 objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
3899
b30d77c4
JW
39002004-09-03 James E Wilson <wilson@specifixinc.com>
3901
3902 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
3903
3904 * config/mips/generic.md (generic_frecip_fsqrt_step): New.
3905 * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
3906 (mips_rsqrt2_<fmt>): Use frsqrt2 type.
3907 (mips_recip1_<fmt>): Use frdiv1 type.
3908 (mips_recip2_<fmt>): Use frdiv2 type.
3909 * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
3910 * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
3911 and frsqrt1.
3912 (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
3913
87cda9d6
DJ
39142004-09-03 Daniel Jacobowitz <dan@debian.org>
3915
3916 * reload.c (find_reloads): Swap operand_loc pointers for
3917 find_dummy_reload if we have swapped two operands.
3918
f671762a
HPN
39192004-09-03 Hans-Peter Nilsson <hp@axis.com>
3920
3921 * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
3922 to get the tablejump-insn before the jump-table label.
3923
a45bcfb2
ZL
39242004-09-03 Ziemowit Laski <zlaski@apple.com>
3925
3926 * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
3927 objc_declare_protocols, objc_build_message_expr,
3928 objc_finish_message_expr, objc_build_selector_expr,
3929 objc_build_protocol_expr, objc_build_encode_expr,
3930 objc_build_string_object, objc_get_protocol_qualified_type,
3931 objc_get_class_reference, objc_get_class_ivars,
3932 objc_start_class_interface, objc_start_category_interface,
3933 objc_start_protocol, objc_continue_interface, objc_finish_interface,
3934 objc_start_class_implementation, objc_start_category_implementation,
3935 objc_continue_implementation, objc_finish_implementation,
3936 objc_set_visibility, objc_set_method_type, objc_build_method_signature,
3937 objc_add_method_declaration, objc_start_method_definition,
3938 objc_finish_method_definition, objc_add_instance_variable,
3939 objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
3940 objc_finish_try_stmt, objc_begin_catch_clause,
3941 objc_finish_catch_clause, objc_build_finally_clause,
3942 objc_build_synchronized, objc_static_init_needed_p,
3943 objc_generate_static_init_call): New prototypes.
3944
9dec91d4
SE
39452004-09-03 Steve Ellcey <sje@cup.hp.com>
3946
3947 * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
3948 is only one reg.
3949 (ia64_function_value): Ditto.
3950
61fec9ff
JB
39512004-09-03 Jan Beulich <jbeulich@novell.com>
3952
3953 * config.gcc: Resurrect NetWare as a target. Handle special case of
3954 Novell linker to be used (specified through --with-ld=) and threading
3955 model of either Posix (default) or NKS.
3956 * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
3957 of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
3958 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
3959 * config/i386/netware.c, config/i386/netware.h: New.
3960 * config/i386/nwld.c, config/i386/nwld.h: New.
3961 * config/i386/netware-crt0.c: New.
3962 * config/i386/netware-libgcc.c: New.
3963 * config/i386/netware-libgcc.def: New.
3964 * config/i386/netware-libgcc.exp: New.
3965 * config/i386/t-netware, config/i386/t-nwld: New.
3966 * gthr-nks.h: New.
3967 * doc/install.texi: Document NKS threading model.
3968
467cecf3
JB
39692004-09-03 Jan Beulich <jbeulich@novell.com>
3970
3971 PR c/7054
3972 * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
3973 * tree.h (initial_max_fld_align): Declare
3974 * stor-layout.c (initial_max_fld_align): Define and initialize.
3975 (maximum_field_alignment): Initialize to the same value.
3976 * common.opt: Add -fpack-struct= variant of switch.
3977 * opts.c: Handle -fpack-struct= variant of switch.
3978 * c-pragma.c: Change #pragma pack() handling so that it becomes
3979 compatible to other compilers: accept individual 'push' argument,
3980 make final pop restore (command line) default, correct interaction
3981 of push/pop and sole specification of a new alignment (so that the
3982 sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
3983 to #pragma pack(push, <n>).
3984 * doc/extend.texi: New node "Structure-Packing Pragmas" under
3985 "Pragmas", describing #pragma pack.
3986 * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
3987 * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
3988 Document new TARGET_DEFAULT_PACK_STRUCT.
3989
90300b8c
DP
39902004-09-03 Devang Patel <dpatel@apple.com>
3991
3992 * dwarf2out.c (gen_field_die). Equate decl number to die.
c9996000 3993
d6df6ae2
VM
39942004-09-03 Vladimir Makarov <vmakarov@redhat.com>
3995
3996 PR target/15832
3997 * global.c (modify_reg_pav): New function.
3998 (make_accurate_live_analysis): Call the new function. Move pavin
3999 modification by earlyclobber set into the new function.
4000
25c99d8f
AS
40012004-09-03 Andreas Schwab <schwab@suse.de>
4002
4003 * config/m68k/m68k.c (output_andsi3): Use -1 instead of
4004 (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
4005 extended.
4006
7f148c2f
JB
40072004-09-02 Jan Beulich <jbeulich@novell.com>
4008
4009 * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
4010 * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
4011 not unwind code specific ones.
4012 (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
4013 Remove unwind code specific dependencies.
4014 (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
4015 Remove gbl-ctors.h.
4016 Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
4017 LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
4018 * tsystem.h: Declare memcpy and memset when inhibit_libc.
4019
9e42ab3e 40202004-09-02 Roman Zippel <zippel@linux-m68k.org>
c9996000 4021
9e42ab3e
RZ
4022 * combine.c (try_combine): Delay modifying of insns which cannot
4023 be easily undone.
4024
1b08d87d
DB
40252004-09-02 Daniel Berlin <dberlin@dberlin.org>
4026
4027 * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
4028 tree-loop-im.
4029 * gcc/tree-ssa-loop.c: Ditto
4030 * gcc/tree-ssa-loop-ivcanon.c: Ditto
4031 * gcc/doc/invoke.texi: Ditto.
4032
d4e43dff
ZL
40332004-09-02 Ziemowit Laski <zlaski@apple.com>
4034
4035 * c-decl.c (store_parm_decls_newstyle): Make static.
4036 (store_parm_decls_from): New function.
4037 * c-tree.h (store_parm_decls_newstyle): Remove prototype.
4038 (store_parm_decls_from): New prototype.
4039
cd7d9ca4
DE
40402004-09-02 David Edelsohn <edelsohn@gnu.org>
4041
4042 * config/rs6000/rs6000.c (expand_block_move): Use SImode and
4043 HImode with STRICT_ALIGNMENT.
4044
40a1c5cb
MM
40452004-09-02 Mark Mitchell <mark@codesourcery.com>
4046
4047 * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
4048 (TARGET_OS_CPP_BUILTINS): Likewise.
4049 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
4050 TARGET_BPABI_CPP_BUILTINS.
4051
b54567e2 40522004-09-02 Roman Zippel <zippel@linux-m68k.org>
c9996000 4053
b54567e2
RZ
4054 * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
4055
5906d013
EC
40562004-09-02 Eric Christopher <echristo@redhat.com>
4057
4058 * builtins.c (expand_builtin_cabs): Delete.
4059 (expand_builtin): If unable to fold the values do a normal
4060 library call for builtin_cab*.
4061 (fold_builtin_cabs): Depend on optimize and optimize_size.
4062 * optabs.c (expand_cmplxdiv_straight): Delete.
4063 (expand_cmplxdiv_wide): Ditto.
4064 (expand_vector_binop): Ditto.
4065 (expand_vector_unop): Ditto.
4066 (expand_complex_abs): Delete.
4067 (expand_binop): Remove calls to above functions.
4068 Remove open coding of complex arithmetic.
4069 (expand_unop): Ditto.
4070 * optabs.h: Remove prototypes.
4071
3041390d
ZL
40722004-09-02 Ziemowit Laski <zlaski@apple.com>
4073
4074 * c-decl.c (store_parm_decls_newstyle): Make externally visible.
4075 * c-tree.h (store_parm_decls_newstyle): New prototype.
4076
5514620a
GK
40772004-09-02 Geoffrey Keating <geoffk@apple.com>
4078
4079 * config/rs6000/rs6000.c (expand_block_clear): Use vector
4080 instructions if available.
4081 (expand_block_move): Likewise.
4082
02f14c38
JH
40832004-09-03 Jan Hubicka <jh@suse.cz>
4084
4085 * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
4086
19dc705e
MM
40872004-09-02 Mark Mitchell <mark@codesourcery.com>
4088
4089 * config/arm/symbian.h (LIB_SPEC): Define to empty.
4090 * config/arm/t-symbian (SHLIB_LC): Likewise.
4091
24112ed0
PB
40922004-09-02 Paul Brook <paul@codesourcery.com>
4093
4094 * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
4095
7ad769fe
RS
40962004-09-02 Richard Sandiford <rsandifo@redhat.com>
4097
4098 * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
4099 (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
4100 (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
4101 (build_mips16_call_stub): Likewise. Remove daft CALL_INSN checks.
4102 (mips_issue_rate): Remove unreachable abort.
4103 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
4104 (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
4105 (mips_block_move_straight, print_operand_address, mips_file_start)
4106 (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
4107 (mips_output_conditional_branch, mips_expand_builtin_direct)
4108 (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
4109 * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
4110 with gcc_assert.
4111
9f09b415
RS
41122004-09-02 Richard Sandiford <rsandifo@redhat.com>
4113
4114 * config/mips/mips.md (*lea_high64): Change split condition to
4115 flow2_completed. Add a peephole2 to generate a more parallel version.
4116
07724022
JH
41172004-09-02 Jan Hubicka <jh@suse.cz>
4118
4119 * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
4120 GGC.
4121
4122 * ggc-page.c: include tree-flow.h.
4123 (extra_order_size_table): Add stmt_ann_d.
4124 (STAT_LABEL): Rename from ....
4125 (LABEL): ... this one.
4126 * Makefile.in (ggc-page.o): Add dependency.
4127
4128 * ggc-common.c (ggc_force_collect): New global variable.
4129 (loc_description): Add fields "freed", "collected"
4130 (ptr_hash): New static hash
4131 (ptr_hash_entry): New structure.
4132 (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
4133 (ggc_record_overhead): Take ptr argument, record it
4134 (ggc_prune_overhead_list, ggc_free_overhead): New functions.
4135 (cmp_statistics): Imrove sorting.
4136 (dump_ggc_loc_statistics): Output newly collected statistics
4137 * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
4138 (ggc_free): Call ggc_free_overhead.
4139 (ggc_collect): Force collection when asked to be forced.
4140 (ggc_collect): Call ggc_prune_overhead_list.
4141 * ggc.h (ggc_force_collect): Declare
4142 (ggc_record_overhead): Update prototype.
4143 (ggc_free_overhead, ggc_prune_overhead_list): Declare.
4144
10060b83
JW
41452004-09-02 James E Wilson <wilson@specifixinc.com>
4146
4147 * common.opt (ftrapping-math): Default to on.
4148
9d2da95b
RE
41492004-09-02 Richard Earnshaw <rearnsha@arm.com>
4150
4151 * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
4152
3f1f9228
DC
41532004-09-02 Denis Chertykov <denisc@overta.ru>
4154
4155 PR target/16884
4156 * config/avr/avr.md ("movmemhi"): Substitute match_dup to
4157 match_scratch.
4158 (*movmemqi_insn): Likewise.
4159 (*movmemhi): Likewise.
4160 (clrmemhi): Likewise.
4161 (*clrmemqi): Likewise.
4162 (*clrmemhi): Likewise.
4163
e6fc6c9b
PB
41642004-09-02 Paul Brook <paul@codesourcery.com>
4165
4166 * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
4167 default_use_cxa_atexit=yes.
4168
d86c1b91
AM
41692004-09-02 Alan Modra <amodra@bigpond.net.au>
4170
4171 * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
4172 (struct kernel_old_ucontext): Delete.
4173 (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
4174 (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs. Only define
4175 when IN_LIGGCC2.
4176
3806400d
RS
41772004-09-02 Richard Sandiford <rsandifo@redhat.com>
4178
4179 * toplev.c (process_options): Fix typo.
4180
9969aaf6
RH
41812004-09-01 Richard Henderson <rth@redhat.com>
4182
4183 PR middle-end/17258
4184 * calls.c (initialize_argument_information): Tighten pass-through
4185 conditions for pass-by-reference. Remove dead TARGET_EXPR code.
4186 Use build_fold_addr_expr.
4187 (emit_library_call_value_1): Use build_fold_addr_expr. Remove code
4188 that assumes ADDR_EXPR allocates stack space.
4189 * fold-const.c (build_fold_addr_expr_with_type): Look through
4190 WITH_SIZE_EXPR.
4191
1e8964cf
DN
41922004-09-01 Dan Nicolaescu <dann@ics.uci.edu>
4193
4194 * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
4195 * ggc.h (ggc_alloc_rtx): Delete.
4196
26276705
RS
41972004-09-01 Roger Sayle <roger@eyesopen.com>
4198
4199 * expmed.c (enum alg_code): Remove long unused enumeration values.
7f148c2f 4200 (struct mult_cost): New structure to hold the "score" of a synthetic
26276705
RS
4201 multiply sequence, including both a rtx_cost and a latency field.
4202 (MULT_COST_LESS): New macro to compare mult_cost to a constant.
4203 (CHEAPER_MULT_COST): New macro to compare two mult_costs.
4204 (struct algorithm): Change type of cost field to be mult_cost.
4205 (synth_mult): Change type of cost_limit argument to be a
4206 pointer to a mult_cost. Update all cost comparisons to use the
5906d013 4207 new mult_cost infrastructure. For alg_add_factor and
26276705
RS
4208 alg_sub_factor operations, latency is lower than the rtx_cost.
4209 (choose_mult_variant): Update calls to synth_mult. Perform
4210 cost comparisons using the new mult_cost infrastructure.
4211 (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
4212 to optain the total rtx_cost of a synth_mult "algorithm".
4213
594a3565
DE
42142004-09-01 David Edelsohn <edelsohn@gnu.org>
4215
4216 * config/rs6000/power4.md: Increase store latency to 12.
4217 * config/rs6000/power5.md: Same.
4218
130d5426
JW
42192004-09-01 James E Wilson <wilson@specifixinc.com>
4220
4221 PR target/14064
4222 * config/avr/avr.c (avr_unique_section): Delete prototype and
4223 definition.
4224 (TARGET_ASM_UNIQUE_SECTION): Delete.
4225
57a6af27
ZL
42262004-09-01 Ziemowit Laski <zlaski@apple.com>
4227
4228 * c-parse.in (primary): Call objc_build_message_expr(),
4229 objc_build_selector_expr(), objc_build_protocol_expr(),
4230 objc_build_encode_expr() and objc_build_string_object() instead of
4231 build_message_expr(), build_selector_expr(), build_protocol_expr(),
4232 build_encode_expr() and build_objc_string_object(), respectively.
4233 (component_decl_list2): Call objc_get_class_ivars() instead of
4234 get_class_ivars_from_name().
4235 (keyworddecl): Call objc_build_keyword_decl() instead of
4236 build_keyword_decl().
4237 (receiver): Call objc_get_class_reference() instead of
4238 get_class_reference().
4239 (reswords): Add blank line before @@ifobjc section, for clarity.
4240
5ec214fc
FJ
42412002-09-01 Fariborz Jahanian <fjahanian@apple.com>
4242
4243 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
4244 to Altivec vetors.
4245
40219f96
WY
42462004-09-01 Wu Yongwei <adah@sh163.net>
4247 Danny Smith <dannysmith@users.sourceforge.net>
4248
4249 * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
4250 not Windows 'DWORD'.
4251 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
4252 (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
4253 (__gthr_win32_recursive_mutex_init_function): Add prototype for
4254 __GTHREAD_HIDE_WIN32API case..
4255 (__gthr_win32_recursive_mutex_lock): Likewise.
4256 (__gthr_win32_recursive_mutex_trylock): Likewise.
4257 (__gthr_win32_recursive_mutex_unlock): Likewise.
4258 (__gthread_recursive_mutex_init_function); Add definition for
4259 __GTHREAD_HIDE_WIN32API case.
4260 (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
4261 * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
4262 call to InterlockedDecrement.
4263
78ad8fbe
RK
42642004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4265
ba2e294d
RK
4266 * tree-tailcall.c (find_tail_calls): Also fail is statement has
4267 volatile operands.
4268
0705d602
RK
4269 * tree-ssa.c (propagate_into_addr): Properly test for LHR.
4270
78ad8fbe
RK
4271 * doc/c-tree.texi: Document new operands for ARRAY_REF and
4272 COMPONENT_REF.
4273
6d9901e7
ZD
42742004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4275
4276 * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
4277 * common.opt (fspeculative-prefetching): New.
4278 * flags.h (flag_speculative_prefetching_set): Declare.
4279 * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
4280 values.
4281 * opts.c (flag_sepculative_prefetching_set): New variable.
4282 (common_handle_option): Handle -fspeculative-prefetching.
4283 * passes.c (rest_of_compilation): Ditto.
4284 * profile.c (instrument_values, compute_value_histograms, branch_prob):
4285 Use vectors instead of arrays.
4286 * toplev.c (process_options): Handle -fspeculative-prefetching.
4287 * rtl-profile.c: Include ggc.h.
4288 (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
4289 rtl_gen_one_value_profiler_no_edge_manipulation,
4290 rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
4291 argument changed.
4292 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
4293 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
4294 argument changed.
4295 * value-prof.c: Include ggc.h.
4296 (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
4297 macros.
4298 (insn_prefetch_values_to_profile, find_mem_reference_1,
4299 find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
4300 speculative_prefetching_transform): New.
4301 (value_profile_transformations): Call speculative_prefetching_transform.
4302 (insn_values_to_profile): Call insn_prefetch_values_to_profile.
4303 (insn_divmod_values_to_profile, rtl_find_values_to_profile,
4304 tree_find_values_to_profile, find_values to profile): Use vectors
4305 instead of arrays.
4306 (free_profiled_values): Removed.
4307 * value-prof.h (struct histogram_value): Renamed to
4308 struct histogram_value_t.
4309 (histogram_value, histogram_values): New types.
4310 (find_values_to_profile): Declaration changed.
4311 (free_profiled_values): Removed.
4312 (struct profile_hooks): Type of argument of the hooks changed to
4313 histogram_value.
4314 * doc/invoke.texi (-fspeculative-prefetching): Document.
4315
d7fe1183
ZD
43162004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4317
4318 PR rtl-optimization/16408
4319 * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
4320
938e234b
RH
43212004-09-01 Richard Henderson <rth@redhat.com>
4322
7f148c2f
JB
4323 * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
4324 (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
938e234b 4325
d0879c98
JJ
43262004-09-01 Jakub Jelinek <jakub@redhat.com>
4327
4328 * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
4329
156a126c
MS
43302004-09-01 Mike Stump <mrs@apple.com>
4331
4332 * config/darwin.c (machopic_symbol_defined_p): In addition to
4333 being SYMBOL_REF_LOCAL_P, a symbol must also be
4334 ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
4335 defined in this output file, or translation unit in the case
4336 of IMA not being used.
4337 (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
4338 never need .indirect_symbol when indirecting.
4339
a5d8b097
JJ
43402004-09-01 Jakub Jelinek <jakub@redhat.com>
4341
4342 * Makefile.in (bb-reorder.o): Add several dependencies.
4343
266bff3a
JJ
43442004-09-01 Jakub Jelinek <jakub@redhat.com>
4345
4346 * fold-const.c (operand_equal_p): Require equal sign also for
4347 FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
4348
32078532
RE
43492004-09-01 Richard Earnshaw <rearnsha@arm.com>
4350
4351 * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
4352 for use in configargs.h. Put the cname in a separate variable. Use
4353 that to set target_cpu_default2.
4354
c0311627
R
43552004-09-01 J"orn Rennecke <joern.rennecke@superh.com>
4356 Nick Clifton <nickc@redhat.com>
4357
4358 * config/sh/sh.md ("length"): Increase branch length when
4359 SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
4360 constant, 2 byte for aligning the constant.
4361
d98a72fd
RE
43622004-09-01 Richard Earnshaw <rearnsha@arm.com>
4363
4364 * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
4365 CPU.
4366 (arm7tdmi-s): New CPU name.
4367 * arm/arm.c (ARM_CORE): Update for new format.
4368 * arm/arm.h (ARM_CORE): Likewise.
4369 * arm/gentune.sh: Update for extra field.
4370 * config.gcc: Likewise.
4371 * arm/arm-tune.md: Regenerate.
4372 * doc/invoke.texi: Document the real processor names for ARM cpus.
4373
0a1aa867
RE
43742004-09-01 Richard Earnshaw <rearnsha@arm.com>
4375
4376 * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
4377 (floatdidf): New functions.
4378 * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
4379 (floatdisf): New functions.
4380 * t-arm-elf: Use them.
4381
bc095846
ZL
43822004-09-01 Ziemowit Laski <zlaski@apple.com>
4383
4384 * c-common.h (lookup_interface): Remove prototype.
4385 (is_class_name): Rename to objc_is_class_name.
4386 (lookup_objc_ivar): Rename to objc_lookup_ivar.
4387 (get_current_scope): Rename to objc_get_current_scope.
4388 * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
4389 * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
4390 (yylexname): Call objc_is_class_name() instead of is_class_name().
4391 * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
4392 instead of lookup_objc_ivar().
4393 * stub-objc.c (lookup_interface): Remove stub.
4394 (is_class_name): Rename to objc_is_class_name.
4395 (lookup_objc_ivar): Rename to objc_lookup_ivar.
4396
14945fe6
MM
43972004-08-31 Mark Mitchell <mark@codesourcery.com>
4398
4399 * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
4400 * config/arm/lib1funcs.asm: Do not include supplemental .S files
4401 when compiling for Symbian.
4402 * config/arm/symbian.h (RENAME_LIBRARY): New macro.
4403 (TARGET_OS_CPP_BUILTINS): Likewise.
4404 * config/arm/t-symbian (LIB1ASMFUNCS): Define.
4405
93415288
SS
44062004-08-31 Stan Shebs <shebs@apple.com>
4407
4408 * toplev.c (process_options): Ensure debug_hooks is initialized.
4409
505970fc
MM
44102004-08-31 Mark Mitchell <mark@codesourcery.com>
4411
4412 * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
4413 * target.h (cxx): Add export_class_data.
4414 * config/arm/arm.c (arm_cxx_export_class_data): New function.
4415 (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
dc40803a 4416 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
5906d013 4417
bee9efbc
KK
44182004-08-31 Kaz Kojima <kkojima@gcc.gnu.org>
4419
4420 * config/sh/sh.c (output_branch): Check the insn length possibly
4421 in the delayed slot.
4422
a4e9ffe5
RK
44232004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4424
a0ca8e0c
RK
4425 * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
4426 blank after ')'.
4427 (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
4428
a4e9ffe5
RK
4429 * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
4430 (c_sizeof_of_alignof_type): Likewise.
4431 * expr.c (array_ref_element_size): Likewise.
4432 (highest_pow2_factor_for_target): Likewise.
4433 * gimplify.c (canonicalize_addr_expr): Likewise.
4434 (gimplify_compound_lval): Likewise.
4435 * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
4436 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
4437 * varasm.c (assemble_variable): Likewise.
4438 (output_constant_def_contents): Alignments are unsigned.
4439
631b67ce
RK
44402004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4441 Jeff Law <law@redhat.com>
4442
4443 * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
4444 gets modified.
4445
af287697
MM
44462004-08-31 Mark Mitchell <mark@codesourcery.com>
4447
4448 * hooks.c (hook_bool_void_true): New function.
4449 * hooks.h (hook_bool_void_true): Declare.
4450 * target-def.h (TARGET_CXX): Add
4451 TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
4452 * target.h (struct cxx): Add key_method_may_be_inline.
4453 * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
4454 function.
4455 (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
4456 * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
4457 __THUMB_INTERWORK.
5906d013 4458
678584fc
DC
44592004-08-31 Denis Chertykov <denisc@overta.ru>
4460
4461 PR target/15417
4462 * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
4463 frame pointer register only in Pmode while reload in progress.
4464
c4c9b76e
SC
44652004-08-31 Stephane Carrez <stcarrez@nerim.fr>
4466
4467 PR target/15334
4468 * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
4469 because it breaks the 32-bit shift patterns that rely on a match_dup.
4470
c61eceeb
MA
44712004-08-31 Matt Austern <austern@apple.com>
4472
4473 * config/darwin.c (darwin_make_decl_one_only): Allocate section
4474 names once per compilation, instead of once per symbol.
5906d013 4475
71b5d516
PB
44762004-08-31 Paolo Bonzini <bonzini@gnu.org>
4477
4478 * Makefile.in (build_subdir): New substitution.
4479 (fixinc.sh): Simplify heavily since fixincludes is already built.
4480 (stmp-fixinc): Depend on specs.ready.
4481 (install-mkheaders): Use new location of fixincludes.
4482 (clean): Do not descend into fixinc.
4483 (FORBUILD): Replace with ../$(build_subdir).
4484 * configure.ac (build_subdir): Substitute.
4485 (FORBUILD): Do not set.
4486 (all_outputs): Remove fixinc/Makefile.
4487 (default commands): Do not create links in fixinc.
4488 * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
4489 the fixincludes configuration steps and substituting
4490 @FIXINCL@ in fixinc.in.
4491 * fixinc.in: New, from fixinc/fixincl.sh.
4492
4493 * fixinc/*: Removed.
5906d013 4494
f7b0fb68
JM
44952004-08-31 Joseph S. Myers <jsm@polyomino.org.uk>
4496
4497 * attribs.c (strip_attrs): Remove.
4498 (split_specs_attrs): Move ...
4499 * c-decl.c: ... to here.
4500 * tree.h (split_specs_attrs, strip_attrs): Remove.
4501 * c-tree.h (split_specs_attrs): Declare.
4502
f51a38b9
RS
45032004-08-31 Richard Sandiford <rsandifo@redhat.com>
4504
4505 * read-rtl.c: Disable RTL checking.
4506 (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
4507
34ebf755
RS
45082004-08-31 Richard Sandiford <rsandifo@redhat.com>
4509
4510 * config/mips/mips.md (fcond): New code macro and attribute.
4511 (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
4512 (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
4513 (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
4514
9b76aa3b
MM
45152004-08-30 Mark Mitchell <mark@codesourcery.com>
4516
4517 Revert:
4518 2004-08-29 Mark Mitchell <mark@codesourcery.com>
4519 PR rtl-optimization/16590
4520 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
4521
99fa8911
AP
45222004-08-30 Andrew Pinski <apinski@apple.com>
4523
5906d013 4524 * hard-reg-set.h:
992c944c
AP
4525 s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
4526 * ChangeLog: Fix previous ChangeLog entry.
4527
99fa8911 4528 PR rtl-opt/13987
5906d013 4529 * config.host (use_long_long_for_widest_fast_int): New, default is
99fa8911
AP
4530 off.
4531 (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
4532 * configure.ac: If use_long_long_for_widest_fast_int, then
4533 define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
4534 * configure: Regenerate.
4535 * config.in: Regenerate.
4536 * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
4537 New: widest integer type supported efficiently in hardware for the
4538 host.
4539 * sbitmap.h (SBITMAP_ELT_BITS): Define based on
4540 HOST_BITS_PER_WIDEST_FAST_INT.
4541 (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
5906d013 4542 * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
99fa8911
AP
4543 HOST_WIDEST_FAST_INT
4544 instead of HOST_WIDE_INT.
4545 (HARD_REG_SET_LONGS): Likewise.
4546 (UHOST_BITS_PER_WIDE_INT): Likewise.
4547 Change the checks for the fast cases to be based on
992c944c 4548 HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
99fa8911 4549
f4c0250b
SB
45502004-08-30 Steven Bosscher <stevenb@suse.de>
4551
4552 * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
4553 not the pointers.
4554
ff164b22
GK
45552004-08-30 Geoffrey Keating <geoffk@apple.com>
4556
4557 PR 12738
4558 PR 17205
4559 Radar 3460526
4560 Radar 3775729
4561 * c-decl.c (grokdeclarator): Produce error for 'static' on local
4562 function declaration.
4563
bc482be4
RH
45642004-08-30 Richard Henderson <rth@redhat.com>
4565
4566 * expr.c (array_ref_element_size): Force aligned_size back to
4567 sizetype.
4568 (component_ref_field_offset): Similarly for aligned_offset.
4569 * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
4570 low-bound, element-size, field-offset fields rather than
4571 computed values.
4572
21611613
JM
45732004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
4574
4575 * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
4576 redundant code.
4577
7b112487
JM
45782004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
4579
4580 * c-tree.h (struct language_function): Add arg_info element.
4581 * c-decl.c (current_function_arg_info): New.
4582 (grokdeclarator, store_parm_decls): Use it instead of
4583 DECL_ARGUMENTS.
4584 (c_push_function_context, c_pop_function_context): Save and
4585 restore it.
4586
5cc200fc
RH
45872004-08-30 Richard Henderson <rth@redhat.com>
4588
5906d013 4589 * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
5cc200fc
RH
4590 COMPONENT_REF to pointer arithmetic.
4591 * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
4592 constant "c" as a valid constant initializer. Allow narrowing of
4593 differences against the same base object, for any base object.
4594
6377bb9a
RH
45952004-08-30 Richard Henderson <rth@redhat.com>
4596
4597 * expr.c (expand_expr_addr_expr): New.
4598 (expand_expr_real_1) <case ADDR_EXPR>: Use it.
4599
308cd611
RS
46002004-08-30 Richard Sandiford <rsandifo@redhat.com>
4601
4602 * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
4603 (mips_fp_condition): New enum.
4604 (mips_fp_conditions): New array.
4605 (print_fcc_operand): Delete.
4606 (print_operand): Remove %V, %v and %Q. Redefine %Z so that it prints
4607 the operand and comma if and only if ISA_HAS_8CC. Add %Y.
4608 (builtin_description): Add "cond" field.
4609 (DIRECT_BUILTIN): Initialize it.
4610 (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
4611 into INSN and CODE. Initialize the "cond" field.
4612 (CMP_BUILTINS): Update accordingly.
4613 (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
4614 (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
4615 mips_fp_condition as argument. Make it the final operand of the
4616 comparison instruction.
4617 (mips_expand_builtin): Update accordingly.
4618 * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
4619 (UNSPEC_C, UNSPEC_CABS): New constants. Shuffle others to fill
4620 the gaps.
4621 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
4622 Don't use the 'Q' operand prefix; just print the operand normally.
4623 (mips_cabs_*, mips_c_*): Delete, replacing with...
4624 (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
4625 patterns. Split the 4s versions into 2 ps patterns after reload.
4626
88f19756
RH
46272004-08-30 Richard Henderson <rth@redhat.com>
4628
4629 * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
4630 assuming an ADDR_EXPR is non-null.
4631
70008293
JM
46322004-08-30 Jason Merrill <jason@redhat.com>
4633
d92a3b38 4634 * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
70008293 4635
8ce16ed6
NS
46362004-08-30 Nathan Sidwell <nathan@codesourcery.com>
4637
4638 * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
4639 record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
4640 gcc_assert and gcc_unreachable instead of abort.
4641 * alloc-pool.c (abort, fancy_abort): Remove.
4642 (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
4643 gcc_assert or gcc_unreachable.
4644 * attribs.c (init_attributes, decl_attributes): Likewise.
4645 * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
4646 mark_bb_for_unlikely_executed_section,
4647 add_labels_and_missing_jumps, fix_crossing_conditional_branches,
4648 fix_crossing_unconditional_branches): Likewise.
4649 * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
4650 bitmap_operation): Likewise.
4651 * bt-load.c (insn_sets_btr_p, augment_live_range,
4652 move_btr_def): Likewise.
4653 * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
4654 apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
4655 expand_builtin_mathfn_2, expand_builtin_mathfn_3,
4656 builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
4657 expand_builtin_memcmp, expand_builtin_args_info,
4658 std_gimplify_va_arg_expr, expand_builtin_unop,
4659 expand_builtin_fputs, expand_builtin_profile_func,
4660 expand_builtin_fork_or_exec, fold_builtin_bitop,
4661 fold_builtin_classify, fold_builtin_fputs): Likewise.
4662
fc6633e0
NS
46632004-08-30 Nathan Sidwell <nathan@codesourcery.com>
4664
e0448193
NS
4665 * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
4666 * gcov.c (abort): Remove undef.
4667
fc6633e0
NS
4668 * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
4669 (struct tree_binfo): Remove primary field.
4670
89b8abbf
PB
46712004-08-30 Paolo Bonzini <bonzini@gnu.org>
4672
4673 * fixinc/Makefile.in (machname.h): Remove.
4674 (fixincl.x): Do not pass $@ to genfixes.
4675 * fixinc/genfixes: Remove code to produce machname.h.
4676 * fixinc/fixincl.sh: Move it here instead.
4677 * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
4678 instead check if pz_mn_name_pat is NULL. Make mn_get_regexps
4679 return a bool indicating whether pz_mn_name_pat is NULL.
4680 * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
4681 Declare extern C variables for the ENV_TABLE.
4682 * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
4683 instead use the result of mn_get_regexps.
4684 * fixinc/fixtests.c: Likewise.
4685
39880d37
PB
46862004-08-30 Paolo Bonzini <bonzini@gnu.org>
4687
4688 * configure.ac: Do not run fixincludes after stage1 during
4689 toplevel bootstrap.
4690 * configure: Regenerate.
4691
a8b3643c
RE
46922004-08-30 Richard Earnshaw <rearnsha@arm.com>
4693
4694 * sched-deps.c (get_condition): Partially revert previous, by never
4695 trying to extract the condition from a condjump.
4696
fc6633e0
NS
46972004-08-30 Nathan Sidwell <nathan@codesourcery.com>
4698
4699 * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
4700 (handle_visibility_attribute, c_determine_visibility): Likewise.
4701 * c-common.h (my_friendly_assert): Remove.
4702
afa396ff
RS
47032004-08-30 Richard Sandiford <rsandifo@redhat.com>
4704
4705 * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
4706 (UNSPEC_{RSQRT,RECIP}[12]): New constants.
4707 (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
4708 * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
4709 (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
4710
ef6379fd
DN
47112004-08-30 Diego Novillo <dnovillo@redhat.com>
4712
4713 * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
4714 in COMPONENT_REF nodes.
4715
7783b402
GDR
47162004-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
4717
4718 PR c++/15378
4719 * c-opts.c (c_common_handle_option): <case OPT_Werror> set
4720 global_dc->warning_as_error_requested.
4721 * diagnostic.c (diagnostic_initialize): Tidy.
4722 * diagnostic.h (diagnostic_context::x_data): Remove
4723 (diagnostic_context::issue_warnings_are_errors_message): Rename
4724 from warnings_are_errors_message.
4725 (diagnostic_context::warning_as_error_requested): New.
4726
adf968c7
RE
47272004-08-30 Richard Earnshaw <rearnsha@arm.com>
4728
4729 * sched-deps.c (get_condition): Fix breakage in previous patch.
4730
999f4d5e
PB
47312004-08-30 Paul Brook <paul@codesourcery.com>
4732
4733 * doc/install.texi: Fix broken mpfr link.
4734
5a0c2304
DB
47352004-08-29 David O'Brien <obrien@FreeBSD.org>
4736
4737 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
4738 other FreeBSD platforms.
4739
880873be
RE
47402004-08-29 Richard Earnshaw <rearnsha@arm.com>
4741
4742 * arm.h (REVERSE_CONDITION): Define.
4743 (REVERSIBLE_CC_MODE): All comparisons are now reversible.
4744
15dce812
RE
47452004-08-29 Richard Earnshaw <rearnsha@arm.com>
4746
4747 * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
4748 just the codes, call reversed_comparison_code ().
4749 (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
4750 (not_reg_cond): Use reversed_comparison_code.
4751 (and_reg_cond): Likewise.
4752 * ifcvt.c (cond_exec_process_if_block): Likewise.
4753 * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
4754
6903ecd4
RE
47552004-08-29 Richard Earnshaw <rearnsha@arm.com>
4756
4757 * sched-deps.c (get_condition): Rewrite using jump support functions.
4758 Use reversed_comparison_code.
4759 (conditions_mutex_p): Use reversed_comparison_code.
4760
ea9bfbf2
RS
47612004-08-29 Richard Sandiford <rsandifo@redhat.com>
4762
4763 * config/mips/mips.c (override_options): Disable hot/cold partitioning
4764 for MIPS16.
4765
4ca1f68f
RS
47662004-08-29 Richard Sandiford <rsandifo@redhat.com>
4767
4768 * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
4769 (mips_function_type): Move to mips.c.
4770 * config/mips/mips.c (mips_builtin_type): New enum.
4771 (builtin_description): Replace code and ftype with builtin_type
4772 and function_type.
4773 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
4774 (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
4775 (CODE_FOR_mips_abs_ps): Define.
4776 (mips_bdesc): Use new macros.
4777 (mips_expand_builtin): Use builtin_type. Update calls to subroutines.
4778 (mips_init_builtins): Use the mips_bdesc[] index as the function code.
4779 (mips_expand_builtin_direct): New function.
4780 (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
4781 builtin. Replace boolean parameter with builtin_type.
4782 (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
4783 (mips_expand_4s_compare_builtin): Delete, replacing with...
4784 (mips_expand_builtin_compare): ...this new function.
4785
5e9f78cc
MM
47862004-08-29 Mark Mitchell <mark@codesourcery.com>
4787
4788 PR rtl-optimization/16590
4789 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
4790
766ff1b1
DN
47912004-08-29 Diego Novillo <dnovillo@redhat.com>
4792
4793 * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
4794 * tree-ssa-propagate.c: Fix documentation.
4795
2435c4c1
RS
47962004-08-29 Richard Sandiford <rsandifo@redhat.com>
4797
4798 * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
4799 (mov[sd]fcc): Likewise.
4800
53d9ac3b
RS
48012004-08-29 Richard Sandiford <rsandifo@redhat.com>
4802
4803 * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
4804
93898c8b
RS
48052004-08-29 Richard Sandiford <rsandifo@redhat.com>
4806
4807 * config/mips/mips.md (divide_condition): New mode attribute.
4808 (div[sd]f3, *div[sd]f3): Use it. Redefine using :SCALARF.
4809 (sqrt[sd]f3): Redefine using SCALARF.
4810 (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise. Name formerly unnamed
4811 patterns.
4812
aae0609c
RS
48132004-08-29 Richard Sandiford <rsandifo@redhat.com>
4814
4815 * config/mips/mips.md (ANYF, SCALARF): New mode macros.
4816 (loadx, storex, fmt, UNITMODE): New mode attributes.
4817 (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
4818 (mul[sd]f3): Redefine using :SCALARF.
4819 (*mul[sd]f3): Renamed from mul[sd]f3_internal. Use :SCALARF.
4820 (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
4821 (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns. Use :ANYF.
4822 Check TARGET_FUSED_MADD for V2SF too.
4823 (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
4824 were already named.
4825 (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
4826 (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
4827
74fc61d1
RS
48282004-08-29 Richard Sandiford <rsandifo@redhat.com>
4829
4830 * config/mips/mips.c (mips_init_builtins): Simplify. Only create
4831 V2SF_type_node if it will be needed.
4832
ff55fb9c
RS
48332004-08-29 Richard Sandiford <rsandifo@redhat.com>
4834
4835 * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
4836 * config/mips/mips.c (mips_prepare_builtin_arg): New function.
4837 (mips_prepare_builtin_target): New function.
4838 (mips_expand_builtin): Use them. Update calls to subroutines.
4839 (mips_expand_ps_cond_move_builtin): Use the new functions. Replace
4840 cmp_choice with a boolean argument to select between movt and movf.
4841 Take the comparison's icode as an argument, not the function's fcode.
4842 (mips_expand_compare_builtin): New function. Rename existing function
4843 to mips_expand_scalar_compare_builtin.
4844 (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
4845 (mips_expand_ps_compare_builtin): Use the new functions. Take the
4846 comparison's icode as an argument, not the builtin's fcode.
4847
f691c4e3
RS
48482004-08-29 Richard Sandiford <rsandifo@redhat.com>
4849
4850 * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
4851 (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
4852 registers are false and -1 if all registers are true.
4853 (mips_expand_ps_compare_builtin): Likewise CCV2. Use subregs for
4854 MIPS_CMP_UPPER and MIPS_CMP_LOWER.
4855 * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
4856 (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
4857 (bc1any2t, bc1any2f): Likewise CCV2.
4858 (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
4859
49135706
RS
48602004-08-29 Richard Sandiford <rsandifo@redhat.com>
4861
4862 * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
4863 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
4864 UNSPEC rather than an IF_THEN_ELSE.
4865 * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
4866 mips_cond_move_tf_ps by name.
4867
06a4ab70
CF
48682004-08-29 Chao-ying Fu <fu@mips.com>
4869 James E Wilson <wilson@specifixinc.com>
5906d013 4870
06a4ab70
CF
4871 * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
4872 8 byte size and alignment. Give CCV4 16 byte size and alignment.
4873 * config/mips/mips-ps-3d.md: New file.
4874 * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
4875 TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4876 (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
4877 (mips_output_move): Emit "mov.ps" for V2SFmode.
4878 (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
4879 MODE_VECTOR_FLOAT.
4880 (override_options): Check if TARGET_MIPS3D and there was an explicit
4881 !TARGET_PAIRED_SINGLE_FLOAT. Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
4882 Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
4883 TARGET_PAIRED_SINGLE_FLOAT is true. Check if the ISA supports
4884 TARGET_PAIRED_SINGLE_FLOAT. Allow MODE_VECTOR_FLOAT in fp registers,
4885 and allow CCV2 and CCV4 to occupy two and four CC registers.
4886 (print_fcc_operand): New function.
4887 (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC. Modify
4888 %Z to call print_fcc_operand.
4889 (mips_function_value): Handle MODE_VECTOR_FLOAT.
4890 (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
4891 (mips_vector_mode_supported_p): New function.
4892 (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
4893 (builtin_description): New struct.
4894 (mips_bdesc): New array of struct builtin_description.
4895 (mips_expand_builtin, mips_init_builtins,
4896 mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
4897 mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
4898 functions.
4899 * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
4900 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
4901 (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
4902 (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
4903 "-mips3d", and "-mno-mips3d".
4904 (ASM_SPEC): Map -mips3d to -mips3d in gas.
4905 (EXTRA_CONSTRAINT_Y): New macro.
4906 (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT. Add new
4907 multi-letter constraint 'Y'.
4908 (CONSTRAINT_LEN): New macro.
4909 (enum mips_builtins): New for MIPS builtin functions.
4910 (enum mips_function_type): New for the types of MIPS builtin functions.
4911 (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
5906d013 4912 * config/mips/mips.md: New constants for paired single and MIPS-3D
06a4ab70
CF
4913 instructions. Include the new mips-ps-3d.md file.
4914 (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
4915 movv2sf_hardfloat_64bit): New named patterns.
4916 (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
4917 nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
4918 sdxc1_v2sf_di): New unnamed patterns.
4919 * config/mips/predicates.md (const_0_operand, const_1_operand): Add
4920 const_vector support.
4921 (const_0_or_1_operand): New predicate.
4922 * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
4923
750628d8
DN
49242004-08-29 Diego Novillo <dnovillo@redhat.com>
4925
4926 * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
4927 (tree-ssa-propagate.o): New rule.
4928 (GTFILES): Add tree-ssa-propagate.c.
4929 * tree-flow.h (struct stmt_ann_d): Remove field
4930 in_ccp_worklist.
4931 * tree-ssa-propagate.c: New file.
4932 * tree-ssa-propagate.h: New file.
4933 * tree-ssa-ccp.c: Re-write to use the routines from
4934 tree-ssa-propagate.c.
4935
f108270b
AP
49362004-08-28 Andrew Pinski <apinski@apple.com>
4937
4938 * tree-ssa-loop.c: Remove extra include of basic-block.h.
4939
e5a002e3
ZL
49402004-08-28 Ziemowit Laski <zlaski@apple.com>
4941
4942 * c-common.h: Update comments about ObjC/ObjC++ entry points.
4943 (objc_is_reserved_word): New prototype.
4944 (get_current_scope, objc_mark_locals_volatile): Move prototypes to
4945 separate section; these are call-backs.
4946 * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
4947 ObjC/ObjC++ "@" keywords.
4948 * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
4949 prototypes; they already live in c-common.h.
4950 * stub-objc.c: Update copyright notice.
4951 (objc_is_reserved_word): New stub.
4952
2c46a62f
NS
49532004-08-28 Nathan Sidwell <nathan@codesourcery.com>
4954
4955 * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR
4956 even when not checking.
4957
40aac948
JM
49582004-08-27 Jason Merrill <jason@redhat.com>
4959
4960 PR c++/13684
4961 * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
4962 (gimple_push_cleanup): Add eh_only parm.
4963 (gimplify_target_expr): Pass it.
4964 * c.opt (-fno-threadsafe-statics): New option.
4965 * c-opts.c (c_common_handle_option): Handle it.
4966 * c-common.h (flag_threadsafe_statics): Declare it.
4967 * c-common.c (flag_threadsafe_statics): Record it.
4968 * doc/invoke.texi: Document it.
4969 * tsystem.h (_GNU_SOURCE): Define.
4970 * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
4971 (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
4972 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
4973 (__gthread_recursive_mutex_init_function): New fn.
4974 (__gthread_recursive_mutex_lock): New fn.
4975 (__gthread_recursive_mutex_trylock): New fn.
4976 (__gthread_recursive_mutex_unlock): New fn.
4977 * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
4978 * gthr-win32.h, gthr-vxworks.h: Likewise.
4979 * gthr.h: Document.
4980
1494c534
DE
49812004-08-27 David Edelsohn <edelsohn@gnu.org>
4982
4983 * config/rs6000/rs6000.c (rs6000_override_options): Increase
4984 maximum skip to 15. Set function alignment, jump alignment, and
4985 loop alignment to 16 for processors that form dispatch groups.
03e9c50a 4986 (rs6000_rtx_costs): outer_code is used.
1494c534 4987
ce552f75
NS
49882004-08-27 Nathan Sidwell <nathan@codesourcery.com>
4989
e3861d2a
NS
4990 * stor-layout.c (sizetype_set): Remove.
4991 (set_sizetype): Don't test or set it.
4992
ce552f75
NS
4993 * tree.h (size_int_type): Remove.
4994 * fold-const.c: Do not #include gt-fold-const.h.
4995 (size_htab_hash, size_htab_eq): Remove.
4996 (size_int_kind): Use build_int_cst.
4997 (new_const, size_htab): Remove.
4998 (size_int_type): Remove.
4999 (round_up): Use build_int_cst.
5000 (round_down): Likewise. Remove spurious constant build.
5001
06c37c96
NS
50022004-08-27 Nathan Sidwell <nathan@codesourcery.com>
5003
5004 * configure.ac: Add ENABLE_ASSERT_CHECKING control.
5005 Add is_release variable, use it for --enable-werror and
5006 --enable-checking defaults.
5007 * system.h (gcc_assert, gcc_unreachable): New.
5008 * doc/install.texi (--enable-checking): Update.
5009 * configure, config.in: Rebuilt.
5010
57406c63
RS
50112004-08-26 Richard Sandiford <rsandifo@redhat.com>
5012
5013 * rtl.h (read_rtx): Change prototype.
5014 * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
5015 line number. Return true on success.
5016 * gensupport.c (process_include, init_md_reader_args_cb): Adjust
5017 callers accordingly.
5018
ee8a6a3e
RH
50192004-08-26 Richard Henderson <rth@redhat.com>
5020
5021 * c-typeck.c (build_offsetof): Remove.
5022 * c-tree.h (build_offsetof): Remove.
5023 * c-common.c (fold_offsetof_1, fold_offsetof): New.
5024 * c-common.h (fold_offsetof): Declare.
5025 * c-parse.in (offsetof_base): New.
5026 (offsetof_member_designator): Use it. Build references, not just
5027 a tree list.
5028 (primary): Use fold_offsetof, not build_offsetof.
5029
525c6bf5
RH
50302004-08-26 Richard Henderson <rth@redhat.com>
5031
5032 * tree.c (staticp): Return the static object.
5033 * tree.h (staticp): Update decl.
5034 * langhooks.h (struct lang_hooks): Change staticp return type to tree.
5035 * langhooks.c (lhd_staticp): Return NULL_TREE.
5036 * langhooks-def.h (lhd_staticp): Update decl.
5037 * c-common.c (c_staticp): Return the static object.
5038 * c-common.h (c_staticp): Update decl.
5039
d416c0b3
RH
50402004-08-26 Richard Henderson <rth@redhat.com>
5041
5042 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
5043 modes.
5044
0b410f0b
JM
50452004-08-26 Joseph S. Myers <jsm@polyomino.org.uk>
5046
5047 PR c/13801
5048 * c-decl.c (struct c_binding): Add type and inner_comp fields.
5049 (bind): Set type and inner_comp fields.
5050 (pop_scope): Restore type of decl to the correct type from an
5051 outer scope. Give error when popping file scope for incomplete
5052 arrays completed incompatibly with default initialization in an
5053 inner scope.
5054 (diagnose_mismatched_decls): Handle externs with initializers at
5055 block scope.
5056 (pushdecl): Set type of external declaration at block scope based
5057 only on the visible declarations. Save type when changing the
5058 type of a declaration. Merge an external declaration at block
5059 scope with a visible static declaration at file scope.
5060 (implicitly_declare): Give recycled old declaration the new type
5061 except for incompatible declarations of built-in functions, saving
5062 the old type.
5063
b77c7437
ZL
50642004-08-26 Ziemowit Laski <zlaski@apple.com>
5065
5066 * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
5067
a228baff
DB
50682004-08-26 Daniel Berlin <dberlin@dberlin.org>
5069
5070 * tree-alias-common.c (gate_pta): New function.
5071 (pass_build_pta): Use it.
5072 (pass_del_pta): Use it.
5073 (delete_alias_vars): Don't check flag_tree_points_to.
5074
2e6c9641
FJ
50752004-08-26 Fariborz Jahanian <fjahanian@apple.com>
5076
5906d013 5077 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
2e6c9641
FJ
5078 TFmode as additional register mode cloberred by call.
5079
50802004-08-26 Fariborz Jahanian <fjahanian@apple.com>
5081
5082 * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
5083 parallel pattern for library call returning DImode in
5084 mixed mode.
5085
50862004-08-26 Fariborz Jahanian <fjahanian@apple.com>
5087
5088 * config/rs6000/rs6000.c (function_arg): Generate parallel
5089 pattern for more split args.
5090
50912004-08-26 Fariborz Jahanian <fjahanian@apple.com>
5092
5093 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
5094 either gen_movdi_di_update or gen_movdi_si_update depending on
5095 target mode.
5096 * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
5097 to generate two versions.
5906d013 5098
36d59cf7
DB
50992004-08-26 Daniel Berlin <dberlin@dberlin.org>
5100
5101 * Makefile.in (lambda-code.o): New.
5102 (lambda-trans.o): Ditto.
5103 (TREE_DATA_REF_H): Ditto.
5104 (LAMBDA_H): Ditto.
5105 (lambda-mat.o): Use LAMBDA_H.
5106 (tree-data-ref.o): Ditto.
5107 * lambda-code.c: New file. Lambda code generation algorithm.
5108 * lambda-trans.c: Ditto. Lambda transformation matrix support.
5109 * lambda.h: Add lambda loop structures.
5110 Add lambda loopnest structures.
5111 Add lambda body vector structure.
5112 Add lambda linear expression structures.
5113 Add prototypes for functions in new files.
5114 * lambda-mat.c: Include tree.h
5115
51162004-08-26 Daniel Berlin <dberlin@dberlin.org>
5906d013
EC
5117 Sebastian Pop <pop@cri.ensmp.fr>
5118
5119 * tree-data-ref.h: Include lambda.h
36d59cf7 5120 (free_dependence_relation): Declared here.
5906d013 5121 (free_dependence_relations): Ditto.
36d59cf7
DB
5122 (free_data_refs): Ditto.
5123 * tree-data-ref.c (free_dependence_relation): New function.
5124 (free_dependence_relations): Ditto.
5125 (free_data_refs): Ditot.
5126 (analyze_all_data_dependences): Free datarefs and dependence_relations.
5127 (build_classic_dist_vector): Store in the dependence_relations the
5128 information. Each arc in the dependence_relations graph is labelled
5129 with the distance and direction vectors.
5130 (build_classic_dir_vector): Ditto.
5131 (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
5132 Now computes again the whole dependence graph including read-read
5133 relations.
5134 (compute_data_dependences_for_loop): Now dependence_relations contains
5135 all the data, and thus it doesn't need to initialize the classic_dir
5136 and classic_dist vectors.
5137 (analyze_all_data_dependences): Adjusted for using the new interface of
5138 compute_data_dependences_for_loop. Remove the statistics dump.
5906d013 5139
a46bbb5a
BW
51402004-08-26 Bob Wilson <bob.wilson@acm.org>
5141
5142 * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
5143 (xtensa_expand_block_move): Update comment.
5144 (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
5145
52351a5e
RE
51462004-08026 Richard Earnshaw <rearnsha@arm.com>
5147
5148 PR target/13506
5149 * toplev.c (crash_signal): If we crashed while emitting
5150 a user asm, then die more gracefully.
5151
b72e46f0
NC
51522004-08-26 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
5153
5154 PR target/17119.
5155 * config/m32r.c (gen_compare): Use reg_or_int16_operand when
5156 checking for a valid constant, regardless of sign.
5157
fd9363bf
RH
51582004-08-25 Richard Henderson <rth@redhat.com>
5159
d416c0b3
RH
5160 PR target/16974
5161 * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
5162 if the constant satisfies add_operand.
fd9363bf 5163
45f413e4 51642004-08-25 Richard Henderson <rth@redhat.com>
5906d013 5165
d416c0b3
RH
5166 PR debug/10695
5167 * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
5168 (alpha_expand_prologue): Handle >32-bit frames. Generate proper
5169 unwind info for >16-bit frames.
45f413e4 5170
7e233208
RK
51712004-08-25 Richard B. Kreckel <richard.kreckel@framatome-anp.com>
5172
5173 PR target/17171
5174 * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
5175
04886dc0
RH
51762004-08-25 Richard Henderson <rth@redhat.com>
5177
d416c0b3
RH
5178 * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
5179 (TARGET_CANNOT_FORCE_CONST_MEM): New.
04886dc0 5180
aca2bd7c
AM
51812004-08-25 Andrew MacLeod <amacleod@redhat.com>
5182
5183 * doc/tree-ssa.texi: Document new operand iterator.
5184
0423421f
AM
51852004-08-26 Alan Modra <amodra@bigpond.net.au>
5186
5187 PR target/16480
5188 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
5189 on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well
5190 as PLUS base regs.
5191
e4dc702c
PB
51922005-08-28 Paul Brook <paul@codesourcery.com>
5193
5194 * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
5195 -mfpu=vfp -march=armv5t
37d5a9a5 5196 * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
e4dc702c 5197
6dd53648
RH
51982004-08-25 Richard Henderson <rth@redhat.com>
5199
5200 * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
5201 * target.h (struct gcc_target): Add scalar_mode_supported_p.
5202 * targhooks.c (default_scalar_mode_supported_p): New.
5203 * targhooks.h (default_scalar_mode_supported_p): Declare.
5204 * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
5205
5206 * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
5207 before attempting to create types. Tidy.
5208 * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
5209
5210 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
5211 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
5212
bab2b22b
RH
52132004-08-25 Richard Henderson <rth@redhat.com>
5214
5215 * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
5216 set REAL_MODE_FORMAT for TFmode.
5217
c34be55e
ZL
52182004-08-25 Ziemowit Laski <zlaski@apple.com>
5219
5220 * c-decl.c (grokparm): New function.
5221 * c-tree.h (grokparm): New prototype.
5222
4c124b4c
AM
52232004-08-25 Andrew MacLeod <amacleod@redhat.com>
5224
5225 * tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand
5226 iterator controlling structure.
5227 (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
5228 SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
5229 SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand
5230 iterator flags.
5231 (FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees.
5232 (FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses.
5233 (FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs.
5234 (FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs.
5906d013 5235 * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
4c124b4c
AM
5236 Empty operand pointers.
5237 * tree-flow-inline.h (op_iter_done): New. Return true if finished.
5238 (op_iter_next_use): New. Return next use_operand_p.
5239 (op_iter_next_def): New. Return next def_operand_p.
5240 (op_iter_next_tree): New. Return next operands as a tree.
5241 (op_iter_init): New. Initialize an iterator structure.
5242 (op_iter_init_use): New. Initialize structure and get the first use.
5243 (op_iter_init_def): New. Initialize structure and get the first def.
5244 (op_iter_init_tree): New. Initialize structure and get the first tree.
5245 (op_iter_next_maydef): New. Return next V_MAY_DEF operands.
5906d013 5246 (op_iter_init_maydef): New. Initialize structure and get the first
4c124b4c
AM
5247 V_MAY_DEF operands.
5248 * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
5906d013 5249 * tree-dfa.c (compute_immediate_uses_for_stmt,
4c124b4c
AM
5250 redirect_immediate_uses): Use new operand iterator.
5251 (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
5252 (mark_new_vars_to_rename): Use new operand iterator. Count virtual
5253 operands instead of using *_disappeared_p routines.
5254 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
5255 ssa_rewrite_stmt): Use new operand iterator.
5256 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
5257 rewrite_trees): Use new operand iterator.
5258 * tree-pretty-print.c (dump_vops): Use new operand iterator.
5259 * tree-sra.c (mark_all_v_defs): Use new operand iterator.
5906d013 5260 * tree-ssa-alias.c (compute_points_to_and_addr_escape,
4c124b4c 5261 dump_points_to_info): Use new operand iterator.
5906d013
EC
5262 * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
5263 replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
4c124b4c 5264 operand iterator.
5906d013 5265 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
4c124b4c
AM
5266 propagate_necessity): Use new operand iterator.
5267 * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
5268 (register_definitions_for_stmt): Use new operand iterator. Take stmt as
5269 a parameter instead of a stmt_ann_t.
5270 * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
5271 build_tree_conflict_graph): Use new operand iterator.
5272 * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
5273 rewrite_mem_refs): Use new operand iterator.
5906d013 5274 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
4c124b4c
AM
5275 check_loop_closed_ssa_use): Use new operand iterator.
5276 * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
5277 * tree-ssanames.c (release_defs): Use new operand iterator.
5278 * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
5279
4185f1ce
AN
52802004-08-25 Adam Nemet <anemet@lnxw.com>
5281
5282 * tlink.c (initial_cwd): New variable.
5283 (tlink_init): Initialize it.
5284 (recompile_files): Use tlink_execute() instead of system(). Don't
5285 duplicate verbose output of collect_execute. Restore initial_cwd.
5286 Update comment before the function.
5287
700686fa
ZL
52882004-08-25 Ziemowit Laski <zlaski@apple.com>
5289
5290 * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
5291 accept) a cast from one Objective-C pointer type to another.
5292
7fb654ef
PC
52932004-08-25 Paolo Carlini <pcarlini@suse.de>
5294
5295 * doc/install.texi: Document that libstdc++-v3 requires
5296 now automake 1.9.1.
5297
8e8d5162
CT
52982004-08-25 Caroline Tice <ctice@apple.com>
5299
5300 * bb-reorder.c (partition_hot_cold_basic_blocks): Add more details
5301 to comments at start of function.
5302 * cfgbuild.c (make_edges): Add more details to hot/cold partitioning
5303 comment.
5906d013
EC
5304 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
5305 merge_blocks_move_predecessor_nojumps,
5306 merge_blocks_move_successor_nojumps, merge_blocks_move,
8e8d5162
CT
5307 try_crossjump_to_edge, try_crossjump_bb): Likewise.
5308 * cfglayout.c (fixup_reorder_chain): Likewise.
5309 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
5310 cfg_layout_can_merge_blocks_p): Likewise.
5311 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
5906d013 5312 * passes.c (rest_of_compilation): Update comments for calling
8e8d5162 5313 optimization that partitions hot/cold basic blocks.
5906d013 5314 * doc/invoke.texi: Update documentation of
8e8d5162 5315 freorder-blocks-and-partition flag.
5906d013 5316
41a21e1d
RS
53172004-08-25 Richard Sandiford <rsandifo@redhat.com>
5318
5319 * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
5320 (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix.
5321
e5f14571
RS
53222004-08-25 Richard Sandiford <rsandifo@redhat.com>
5323
5324 * config/mips/mips.md (any_shift): New code macro.
5325 (optab, insn): New code attributes.
5326 ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
5327 Use the standard rather than internal patterns for the MIPS16
5328 double-shift optimization.
5329 (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
5330 Redefine using :GPR and any_shift.
5331 (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
5332 to cover all three shifts.
5333 (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
5334 Redefine using any_shift. Use :GPR and any_shift to combine splitters.
5335 (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
5336
bbbb79d4
GK
53372004-08-24 Geoffrey Keating <geoffk@apple.com>
5338
5339 * gimplify.c (lookup_tmp_var): Separate temporaries when not
5340 optimizing.
5341
d711cf67
JDA
53422004-08-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5343
5344 PR libstdc++/17005 (fix for HP-UX 11.11)
5345 * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
5346 (hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of
5906d013 5347 tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
d711cf67
JDA
5348 * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
5349 * config/pa/pa-hpux.h (TARGET_HPUX): Define.
5350 (LINK_SPEC): Handle march=1.0 option.
5351 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
5352 and _XOPEN_SOURCE_EXTENDED for UNIX 95.
5353 (SUBTARGET_OPTIONS): New define.
5354 (LINK_SPEC): Handle march=1.0 option.
5355 (STARTFILE_SPEC): New define.
5356 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
5357 and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine
5358 _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
5359 (SUBTARGET_OPTIONS): New define.
5360 (LINK_SPEC): Handle march=1.0 option.
5361 (STARTFILE_SPEC): New define.
5362 * config/pa/pa.c (override_options): Add code to process -munix= option.
5363 * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
5364 (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
5365 defines.
5366 (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
5367 (SUBTARGET_OPTIONS): Provide default define.
5368 * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
5369 STANDARD_STARTFILE_PREFIX_2): New defines.
5370 (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
5371 (ENDFILE_SPEC): Use %O.
5372 * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
5373 Mention issue caused by changing namespace and runtime to UNIX 95/98.
5374 * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
5375 Document -munix=std option.
5376
5affca01
SB
53772004-08-25 Steven Bosscher <stevenb@suse.de>
5378
5379 * cse.c (cse_around_loop, cse_check_loop_start,
5380 cse_set_around_loop): Remove.
5381 (cse_basic_block): Remove the around_loop argument.
5382 (cse_end_of_basic_block): Remove the after_loop argument.
5383 (cse_main): Likewise.
5384 * rtl.h (cse_main): Update prototype.
5385 * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
5386 rest_of_handle_gcse): Update cse_main calls.
5387
7d60be94
NS
53882004-08-25 Nathan Sidwell <nathan@codesourcery.com>
5389
5390 * tree.h (build_int_cst): New, sign extended constant.
5391 (build_int_cstu): New, zero extended constant.
5392 (build_int_cst_wide): Renamed from build_int_cst.
5393 * tree.c (build_int_cst, build_int_cstu): New.
5394 (build_int_cst_wide): Renamed from build_int_cst.
5395 (make_vector_type, build_common_tree_nodes,
5396 build_common_tree_nodes_2): Adjust build_int_cst calls.
5397 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
5398 expand_builtin_strpbrk, expand_builtin_fputs,
5399 build_string_literal, expand_builtin_printf,
5400 expand_builtin_sprintf, fold_builtin_classify_type,
5401 fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
5402 fold_builtin_toascii, fold_builtin_isdigit,
5403 simplify_builtin_strstr, simplify_builtin_strpbrk,
5404 fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
5405 * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
5406 DEF_ATTR_INT): Likewise.
5407 * c-decl.c (complete_array_type, check_bitfield_type_and_width):
5408 Likewise.
5409 * c-lex.c (interpret_integer, lex_charconst): Likewise.
5410 * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
5411 * c-pretty-print.c (pp_c_integer_constant): Likewise.
5412 * c-typeck.c (really_start_incremental_init, push_init_level,
5413 set_nonincremental_init_from_string): Likewise.
5414 * calls.c (load_register_parameters): Likewise.
5415 convert.c (convert_to_pointer): Likewise.
5416 coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
5417 build_fn_info_type, build_fn_info_value, build_ctr_info_value,
5418 build_gcov_info): Likewise.
5419 * except.c (init_eh, assign_filter_values): Likewise.
5420 * expmed.c (store_fixed_bit_field, extract_bit_field,
5421 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
5422 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
5423 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
5424 * expr.c (convert_move, emit_group_load, emit_group_store,
5425 expand_assignment, store_constructor, store_field,
5426 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
5427 fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
5428 invert_truthvalue, optimize_bit_field_compare,
5429 decode_field_reference, all_ones_mask_p, constant_boolean_node,
5430 fold_div_compare, fold, fold_read_from_constant_string,
5431 fold_negate_const, fold_abs_const, fold_not_const, round_up,
5432 round_down): Likewise.
5433 * function.c (assign_parm_setup_block): Likewise.
5434 * stmt.c (shift_return_value, expand_case, estimate_case_costs):
5435 Likewise.
5436 * stor-layout.c (layout_type, initialize_sizetypes,
5437 set_min_and_max_values_for_integral_type): Likewise.
5438 * tree-chrec.c (chrec_fold_multiply_poly_poly,
5439 reset_evolution_in_loop): Likewise.
5440 * tree-chrec.h (build_polynomial_chrec): Likewise.
5441 * tree-complex.c (build_replicated_const): Likewise.
5442 * tree-eh.c (honor_protect_cleanup_actions,
5443 lower_try_finally_onedest, lower_try_finally_copy,
5444 lower_try_finally_switch): Likewise.
5445 * tree-mudflap.c (mf_build_string, mx_register_decls,
5446 mudflap_register_call, mudflap_enqueue_constant): Likewise.
5447 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
5448 * tree-pretty-print.c (dump_generic_node): Likewise.
5449 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
5450 Likewise.
5451 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
5452 * tree-ssa-loop-niter.c (number_of_iterations_cond,
5453 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
5454 Likewise.
5455 * tree-ssa-loop-ivcanon.c (create_canonical_iv,
5456 canonicalize_loop_induction_variables): Likewise.
5457 * tree-vectorizer.c (vect_create_index_for_array_ref,
5458 vect_transform_loop_bound, vect_compute_data_ref_alignment):
5459 Likewise.
5460
5461 * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
5462 alpha_gimplify_va_arg_1): Likewise.
5463 * config/arm/arm.c (arm_get_cookie_size): Likewise.
5464 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
5465 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
5466 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5467 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
5468 mips_gimplify_va_arg_expr): Likewise.
5469 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5470 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
5471 add_compiler_branch_island): Likewise.
5472 * config/s390/s390.c (s390_va_start): Likewise.
5473 * config/sh/sh.c (sh_va_start): Likewise.
5474 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5475 Likewise.
5476 * config/xtensa/xtensa.c (xtensa_va_start,
5477 xtensa_gimplify_va_arg_expr): Likewise.
5906d013 5478
7d60be94
NS
5479 * objc/objc-act.c (build_objc_string_object,
5480 build_objc_symtab_template, init_def_list, init_objc_symtab,
5481 init_module_descriptor, generate_static_references,
5482 build_selector_translation_table, get_proto_encoding,
5483 build_typed_selector_reference, build_selector_reference,
5484 build_next_objc_exception_stuff,
5485 build_method_prototype_list_template, generate_descriptor_table,
5486 generate_protocols, build_protocol_initializer,
5487 build_ivar_list_template, build_method_list_template,
5488 build_ivar_list_initializer, generate_ivars_list,
5489 generate_dispatch_table, generate_protocol_list,
5490 build_category_initializer, build_shared_structure_initializer,
5491 generate_shared_structures, handle_impent,
5492 generate_objc_image_info): Likewise.
5493
8b63d0e5
PB
54942004-04-25 Paolo Bonzini <bonzini@gnu.org>
5495
5496 * cfglayout.c (duplicate_insn_chain): Remove references to
5497 NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
5498 * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
5499 * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
5500 * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
5501 and NOTE_INSN_LOOP_CONT.
5502 * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
5503 * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
5504 and NOTE_INSN_LOOP_CONT.
5505 * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
5506 check_dbra_loop, loop_dump_aux): Remove references to removed notes
5507 and fields.
5508 * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
5509 * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
5510 references to removed notes and fields.
5511 (subtract_reg_term, ujump_to_loop_cont): Remove.
5512
078e3ffe
PB
55132004-08-25 Paolo Bonzini <bonzini@gnu.org>
5514
8b63d0e5 5515 * doc/install.texi: Document that libcpp does not require
078e3ffe
PB
5516 Automake any longer. Document that Automake 1.9.1 should
5517 work everywhere.
5518
f8ca7e49
ZW
55192004-08-25 Zack Weinberg <zack@codesourcery.com>
5520
5521 * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
5522 * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
5523 DWARF_DEBUGGING_INFO from choice-of-definition chain;
5524 restructure using C89 features (#elif, #error).
5525 * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
5526 * config/sh/sh.h: Remove references to DWARF_DEBUG.
5527 * doc/invoke.texi: Remove references to DWARF version 1;
5528 clarify why -gdwarf-2<n> doesn't work.
5529
51a904c9
ZW
55302004-08-25 Zack Weinberg <zack@codesourcery.com>
5531
5532 * basic-block.h (BB_SET_PARTITION): Clear old value first.
5533 * cfg.c (clear_bb_flags): Don't clear partition setting.
69b9b0d2 5534 * ifcvt.c (find_if_case_1): Remove ??? comment.
51a904c9 5535
e548ead9
AM
55362004-08-25 Alan Modra <amodra@bigpond.net.au>
5537
5538 PR target/17052
5539 * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
5540 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
5541 current_function_stdarg in place of sysv_varargs_p.
5542 * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
5543 sysv_varargs_p.
5544
1e19ac74
RH
55452004-08-24 Richard Henderson <rth@redhat.com>
5546
5547 PR target/16298
5548 * config/i386/i386.c (legitimate_constant_p): Rework to not accept
5549 random codes within CONST.
5550
c61225e7
JW
55512004-08-24 James E Wilson <wilson@specifixinc.com>
5552
5553 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
5554 -freorder-blocks-and-partition.
5555
37840132
JDA
55562004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5557
5558 PR middle-end/17044
5559 * tree-ssa-threadupdate.c (redirection_data): Make static.
5560 (thread_block): Use ggc_alloc_cleared to allocate struct
5561 redirection_data. Don't free elements in redirection_data.
5562
cf1d880b
RS
55632004-08-24 Richard Sandiford <rsandifo@redhat.com>
5564
5565 * config/mips/predicates.md (small_data_pattern): Match prefetches.
5566
b3393f1f
ZD
55672004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5568
5569 PR tree-optimization/17016
5570 * tree-ssa-loop-niter.c (number_of_iterations_cond,
5571 number_of_iterations_exit): Use POINTER_TYPE_P instead
5572 of testing for POINTER_TYPE.
5573
82b85a85
ZD
55742004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5575
5576 * tree-ssa-loop-ivcanon.c: New file.
5577 * tree-ssa-loop-manip.c (create_iv): New function.
5578 * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
5579 (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
5580 * cfgloop.c (mark_single_exit_loops): New function.
5581 (verify_loop_structure): Verify single-exit loops.
5582 * cfgloop.h (struct loop): Add single_exit field.
5583 (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
5584 (mark_single_exit_loops): Declare.
5585 (tree_num_loop_insns): Declare.
5586 * cfgloopmanip.c (update_single_exits_after_duplication): New function.
5587 (duplicate_loop_to_header_edge): Use it.
5588 * common.opt (fivcanon): New flag.
5589 * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
5590 * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
5591 (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
5592 (bsi_insert_on_edge_immediate): New function.
5593 * tree-flow.h (bsi_insert_on_edge_immediate,
5594 canonicalize_induction_variables, tree_unroll_loops_completely,
5595 create_iv): Declare.
5596 * tree-optimize.c (init_tree_optimization_passes): Add
5597 pass_iv_canon and pass_complete_unroll.
5598 * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
5599 * tree-scalar-evolution.c (get_loop_exit_condition,
5600 get_exit_conditions_rec, number_of_iterations_in_loop,
5601 scev_initialize): Use single_exit information.
5602 * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
5603 missing assumptions.
5604 (loop_niter_by_eval): Return number of iterations as unsigned
5605 int.
5606 * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
5607 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
5608 tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
5609 New passes.
5610 (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
5611 * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
5612 the defining statement is ready.
5613 * tree-vectorizer.c (vect_create_iv_simple): Removed.
5614 (vect_create_index_for_array_ref, vect_transform_loop_bound):
5615 Use create_iv.
5616 (vect_transform_loop_bound): Use single_exit information.
5617 (vect_analyze_loop_form): Cleanup bogus tests.
5618 (vectorize_loops): Do not call flow_loop_scan.
5619 * tree.h (may_negate_without_overflow_p): Declare.
5620 * fold-const.c (may_negate_without_overflow_p): Split out from ...
5621 (negate_expr_p): ... this function.
5622 (tree_expr_nonzero_p): Handle overflowed constants correctly.
5623 * doc/invoke.texi (-fivcanon): Document.
5624 * doc/passes.texi: Document canonical induction variable creation.
5625
b3c90666
RS
56262004-08-24 Richard Sandiford <rsandifo@redhat.com>
5627
5628 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
5629 * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
5630 using the mode of the operand to decide between them.
5631 * config/mips/mips.md (MOVECC): New mode macro.
5632 (ccreg): New mode attribute.
5633 (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
5634 Redefine using :GPR and :MOVECC. Use %T and %t for the condition.
5635 (mov[sd]icc): Redefine using :GPR.
5636
4767c570
RS
56372004-08-24 Richard Sandiford <rsandifo@redhat.com>
5638
04550232
RS
5639 * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
5640 (mips_prefetch_cookie): New function.
5641 * config/mips/mips.c (print_operand_address): Fix handling of
5642 ADDRESS_CONST_INT.
5643 (mips_emit_prefetch): Delete.
5644 (mips_prefetch_cookie): New function.
5645 * config/mips/mips.md (prefetch): Turn into a define_insn. Use a
5646 mode of QImode for the address_operand. Use mips_prefetch_cookie
5647 to calculate the first "pref" operand.
5648 (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
5649 (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie.
4767c570 5650
a657c98a
RE
56512004-08-24 Richard Earnshaw <rearnsha@arm.com>
5652
5653 * arm.md: Include predicates.md.
5654 * predicates.md: New file.
5655 * arm.c (s_register_operand, arm_hard_register_operand)
5656 (arm_general_register_operand, f_register_operand, reg_or_int_operand)
5657 (arm_immediate_operand, arm_neg_immediate_operand)
5658 (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
5659 (arm_add_operand, arm_addimm_operand, arm_not_operand)
5660 (offsettable_memory_operand, alignable_memory_operand)
5661 (arm_reload_memory_operand, arm_float_rhs_operand)
5662 (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
5663 (index_operand, shiftable_operator, logical_binary_operator)
5664 (shift_operator, equality_operator, arm_comparison_operator)
5665 (minmax_operator, cc_register, dominant_cc_register)
5666 (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
5667 (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
5668 (const_shift_operand, load_multiple_operation)
5669 (store_multiple_operation, multi_register_push, thumb_cmp_operand)
5670 (thumb_cmpneg_operand, thumb_cbrch_target_operand)
5671 (cirrus_register_operand, cirrus_fp_register)
5672 (cirrus_shift_const): Delete, replaced with equivalents in
5673 predicates.md.
5674 (shift_op): Handle ROTATE.
5675 * arm-protos.h: Delete declarations for above.
5676 * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
5677 * t-arm (MD_INCLUDES): Add predicates.md.
5678 (s-preds): Depends on MD_INCLUDES.
5679
886ce862
RS
56802004-08-24 Richard Sandiford <rsandifo@redhat.com>
5681
5682 * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
5683 * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
5684 patterns. Redefine using :GPR. Give the match_operator a mode.
5685 Use '%2' rather than '%z2' for operand 2.
5686
be659abd
RS
56872004-08-24 Richard Sandiford <rsandifo@redhat.com>
5688
5689 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
5690 attribute.
5691
92dcb882
RS
56922004-08-24 Richard Sandiford <rsandifo@redhat.com>
5693
5694 * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names
5695 of internal patterns.
5696 (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
5697 Redefine using :P.
5698 (tablejump): Use expand_binop to calculate address. Adjust names
5699 of internal patterns.
5700 (tablejump[sd]i): Renamed from tablejump_internal[12].
5701 Redefine using :P.
5702 (tablejump_mips16[12]): Delete.
5703
a0160289
RS
57042004-08-24 Richard Sandiford <rsandifo@redhat.com>
5705
5706 * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
5707 (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
5708 (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
5709 (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
5710 (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
5711
2c4402f4
RS
57122004-08-24 Richard Sandiford <rsandifo@redhat.com>
5713
5714 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
5715 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
5716 using :GPR.
5717 (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
5718 (*branch_equality[sd]i): Likewise branch_equality{,_di}.
5719 (*branch_equality[sd]i_inverted): Likewise
5720 branch_equality{,_di}_inverted.
5721 (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
5722 Redefine using :GPR.
5723
b5c2f1d1
ZW
57242004-08-24 Zack Weinberg <zack@codesourcery.com>
5725
5726 * rtl.def: Reorganize, placing all codes used only in machine
5727 descriptions at the end.
5728
9e995780
ZW
5729 * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
5730 * gengtype.c: Don't include rtl.h. Define enum rtx_code and
5731 rtx_name, rtx_format arrays by direct reference to rtl.def,
5732 first undefining GENERATOR_FILE. Define enum insn_note and
5733 note_insn_name array by direct reference to insn-notes.def.
5734 (adjust_field_rtx_def): Remove local definition of rtx_name.
5735 Use symbolic names for insn notes.
5736 * Makefile.in (gengtype.o): Update dependencies.
5737
076c7ab8
ZW
57382004-08-24 Zack Weinberg <zack@codesourcery.com>
5739
5740 * basic-block.h (struct basic_block_def): Reorder fields to
5741 eliminate interior padding. Remove 'partition' field.
5742 (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
5743 (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
5744 (BB_COPY_PARTITION): New macros.
5745 * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
5746 Replace all references to the 'partition' field of a basic
5747 block with new macros.
5748
5749 * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
5750 * final.c (final_scan_insn): Don't handle it.
5751 * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
5752 instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
5753 * sched-rgn.c (sched_is_disabled_for_current_region_p):
5754 Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
5755
8c1d6d62
NS
57562004-08-24 Nathan Sidwell <nathan@codesourcery.com>
5757
5758 * c-decl.c (c_init_decl_processing): Adjust
5759 build_common_tree_nodes call.
5760 * expmed.c (const_mult_add_overflow_p): Use
5761 build_distinct_type_copy.
5762 * stor-layout.c (early_type_list): Remove.
5763 (layout_type): Don't append to early_type_list.
5764 (initialize_sizetypes): Add signed_p argument.
5765 (set_sizetype): Overwrite the stub type nodes directly.
5766 * tree.c (copy_node_stat): Clear a type's value cache here ...
5767 (build_distinct_type): ... not here.
5768 (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
5769 * tree.h (initialize_sizetypes): Add signed_p argument.
5770 (build_common_tree_nodes): Likewise.
5771
5772 * objc/objc-act.c (get_static_reference): Use
5773 build_variant_type_copy.
5774 (get_protocol_reference): Likewise.
5775 * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
5776
97dc04b3 57772004-08-24 Richard Henderson <rth@redhat.com>
076c7ab8 5778 Andrew Pinski <apinski@apple.com>
97dc04b3
RH
5779
5780 * gimplify.c (gimplify_array_ref_to_plus): Delete.
5781 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
5782 for ARRAY_REF.
5783
5784 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
5785 ARRAY_REF also to get to the STRING_CST.
5786
72cdc543
PB
57872004-08-24 Paul Brook <paul@codesourcery.com>
5788
5789 * config/arm/arm.c (arm_override_options): Update error message.
5790 * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
5791 TARGET_HARD_FLOAT_ABI.
5792 (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
5793 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
5794
bd5ca07e
NC
57952004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
5796
5797 PR target/17093
5798 * config/m32r.md (movsi_sda): Add SI mode specification to
5799 UNSPEC.
5800
58012004-08-24 Nick Clifton <nickc@redhat.com>
5802
5803 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
5804 of seth_add3_operand.
5805
d46cd2be
NS
58062004-08-24 Nathan Sidwell <nathan@codesourcery.com>
5807
5808 * Makefile.in (PROTO_OBJS): Add errors.o.
5809 * protoize.c (fancy_abort): Remove.
5810 * mips-tfile.c (fancy_abort): Add parameters.
5811
748fa294
JW
58122004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
5813
5814 * doc/trouble.texi (C++ misunderstandings): Fix example code.
5815
4505f099
AT
58162004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
5817
5818 * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
5819 (host-default.o): Add dependency on HOOKS_H.
5820 * config/x-linux: Likewise.
5821 * config/x-solaris: Likewise.
5822 * config/i386/x-mingw32: Likewise.
5823 * config/rs6000/x-darwin: Likewise.
5824
a2fe1975
JW
58252004-08-23 James E Wilson <wilson@specifixinc.com>
5826
5827 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
5828 DEF_REG_NOTE.
5829
c3f216e2
MM
58302004-08-23 Mark Mitchell <mark@codesourcery.com>
5831
5832 PR c/14492
5833 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
5834
2e6ae27f
DN
58352004-08-23 Diego Novillo <dnovillo@redhat.com>
5836
5837 * cfg.c (check_bb_profile): Fix typos.
5838 * function.c (assign_parm_is_stack_parm): Likewise.
5839 * tree-nested.c: Likewise.
5840
d685c974
DJ
58412004-08-23 Daniel Jacobowitz <dan@debian.org>
5842
5843 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
5844 Remove TYPECODE.
5845 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
5846
f676971a
EC
58472004-08-23 Eric Christopher <echristo@redhat.com>
5848
5849 * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
5850 * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
5851 * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
5852 * target.h: Ditto.
5853 * hooks.h: Include machmode.h.
5854 (hook_bool_mode_false): Declare.
5855 * hooks.c (hook_bool_mode_false): Define.
5856 * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
5857 * stor-layout.c (layout_type): Ditto.
5858 * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
5859 Define to target macro.
5860 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
5861 * config/arm/arm.c: Ditto. Use.
5862 * config/arm/arm.h: Ditto.
5863 * config/arm/arm-protos.h: Ditto.
5864 * config/i386/i386.c: Ditto.
5865 * config/i386/i386.h: Ditto.
5866 * config/rs6000/rs6000.c: Ditto.
5867 * config/rs6000/rs6000.h: Ditto.
5868 * config/sh/sh.c: Ditto.
5869 * config/sh/sh.h: Ditto.
5870 * config/sh/sh-protos.h: Ditto.
5871 * config/sh/sh.md: Use.
5872 * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
5873 to TARGET_VECTOR_MODE_SUPPORTED_P.
5874
8dd16ecc
NS
58752004-08-23 Nathan Sidwell <nathan@codesourcery.com>
5876
b3d1f5b4
NS
5877 * Makefile.in (BUILD_ERRORS): Set to build-errors.
5878 (errors.o): New target for host.
5879 (build-errors.o): New target for build.
5880 (genobjs): Replace errors.o with build-errors.
5881 (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
5882 (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
5883 (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
5884 (fix-header.o): Add errors.h
5885 * collect2.c (fancy_abort): Add parameters.
5886 * collect2.h (fancy_abort): Don't declare.
5887 * errors.h (fancy_abort): Don't declare.
5888 * errors.c: Include either bconfig.h or config.h.
5889 (fancy_abort): Trim filename.
5890 * fix-header.c (v_fatal, fatal): Remove.
5891 (progname): Remove definition.
5892 (main): Set progname here.
5893 * gcc.c (fancy_abort): Add parameters.
5894 * gcc.h (fancy_abort): Remove declaration.
5895 * gcov.c (fancy_abort): Remove.
5896 * rtl.h (fancy_abort): Don't declare.
5897 (abort): Don't define.
5898 * tree.h (fancy_abort): Don't declare.
5899 (abort): Don't define.
5900 * system.h (fancy_abort): Declare.
5901 (abort): Define to fancy_abort.
5902 * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
5903
be88a628
NS
5904 * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
5905 (usize_type, ubitsizetype): Remove.
5906 * stor-layout.c (set_sizetype): Don't initialize usizetype,
5907 ubitsizetype.
5908 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
5909
8dd16ecc
NS
5910 * tree.h (build_distinct_type_copy): New.
5911 (build_type_copy): ... here. Rename to ...
5912 (build_variant_type_copy): ... here.
5913 * tree.c (build_qualified_type): Rename build_type_copy call.
5914 (build_distinct_type_copy): New, broken out of ...
5915 (build_type_copy): ... here. Rename to ...
5916 (build_variant_type_copy): ... here. Use
5917 build_distinct_type_copy.
5918 (build_common_tree_nodes_2): Rename build_type_copy call.
5919 * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
5920 call.
5921 (handle_packed_attribute, handle_unused_attribute,
5922 handle_transparanet_union_attribute, handle_aligned_attribute,
5923 handle_deprecated_attribute): Likewise.
5924 * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
5925 Likewise.
5926 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
5927 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
5928 build_distinct_type_copy.
5929
e8bf0f3b
RS
59302004-08-23 Richard Sandiford <rsandifo@redhat.com>
5931
5932 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
5933 attribute.
5934
4d06ed0a
RS
59352004-08-23 Richard Sandiford <rsandifo@redhat.com>
5936
5937 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
5938 loads and stores.
5939 (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
5940 formerly unnamed patterns. Redefine using :P for the address. Remove
5941 explicit length attributes.
5942
a3631d97
ZD
59432004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5944
5945 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
5946 New functions.
5947 (single_reachable_address): Use them.
5948 (schedule_sm): Add dump.
5949 (is_call_clobbered_ref): New function.
5950 (determine_lsm_reg): Check whether the reference is call clobbered.
5951 Only work for gimple_reg_type values.
5952
b1f58428
RS
59532004-08-23 Richard Sandiford <rsandifo@redhat.com>
5954
5955 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
5956 $31 store insns. Redefine using :GPR.
5957
237b301e
RS
59582004-08-23 Richard Sandiford <rsandifo@redhat.com>
5959
5960 * config/mips/mips.md (P): New mode macro.
5961 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
5962 (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
5963 Add mode attributes.
5964
c9081a92
RS
59652004-08-23 Richard Sandiford <rsandifo@redhat.com>
5966
5967 * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
5968 (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle
5969 later constants to cover the gap.
5970 (load, store): New mode attributes.
5971 (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
5972 Use new unspec constants.
5973
3d1f285d
RS
59742004-08-23 Richard Sandiford <rsandifo@redhat.com>
5975
5976 * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
5977 (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns
5978 to use register_operand rather than uns_arith_operand as the predicate
5979 for operand 1. Remove redundant MIPS16 force_reg() for operand 1.
5980 (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
5981 Redefine using :GPR. Make same predicate change here. Extend the
5982 commutativity of operands 1 and 2 from the SImode version to the
5983 DImode one.
5984 (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
5985 but with no predicate changes.
5986 (*nor[sd]i3): Redefine using :GPR.
5987
c0e1b12f
ZD
59882004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5989
5990 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
5991 noreturn functions.
5992
400a9325
RS
59932004-08-23 Richard Sandiford <rsandifo@redhat.com>
5994
5995 * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
5996 * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use
5997 branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%."
5998 rather than "%z2" (with a fake const0_rtx for operand 2).
5999 (ffs[sd]i2): Redefine using :GPR.
6000 (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case.
6001
2222da3a
RS
60022004-08-23 Richard Sandiford <rsandifo@redhat.com>
6003
6004 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
6005
15ac4ccf
RS
60062004-08-23 Richard Sandiford <rsandifo@redhat.com>
6007
6008 * config/mips/mips.md (any_extend): New code macro.
6009 (u, su): New code attributes.
6010 ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
6011 ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
6012 ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
6013 (*{s,u}mul_acc_di): Redefine using any_extend.
6014 (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns
6015 to reflect real insn names.
6016 (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
6017 with an any_extend template.
6018 ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
6019 Add '*' to name.
6020
d46c971d
RS
60212004-08-23 Richard Sandiford <rsandifo@redhat.com>
6022
6023 * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
6024 * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
6025 (mul[sd]i3_r4000): Redefine using :GPR.
6026 (mulsi3_mult3): Don't check TARGET_MAD separately.
6027 (muldi3_mult3): Moved after mulsi_mult3.
6028
5811cb27
RS
60292004-08-23 Richard Sandiford <rsandifo@redhat.com>
6030
6031 * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
6032 OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld.
6033 * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down.
6034 (TARGET_GAS, TARGET_MIPS_AS): Delete.
6035 (TARGET_GPWORD): Define to true for n32 on IRIX.
6036 (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op.
6037 (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
6038 (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
6039 (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
6040 (MDEBUG_ASM_SPEC): Delete, folding into...
6041 (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
6042 (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches.
6043 (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
6044 subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT
6045 to define asm_abi_default_spec.
6046 (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
6047 (TARGET_ASM_SELECT_SECTION): Delete.
6048 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
6049 for non-mips16 code, removing previous workaround for SGI assemblers.
6050 (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
6051 (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
6052 (override_options): Remove !TARGET_GAS and !have_named_sections code.
6053 (print_operand): Fold TARGET_GAS conditionals into asm strings.
6054 (mips_output_filename): Remove !TARGET_GAS code. Replace use of
6055 ASM_STABS_OP and ASM_STABN_OP.
6056 (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
6057 (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
6058 (mips_output_function_prologue): Remove !TARGET_GAS code.
6059 (mips_select_rtx_section): Remove !have_named_sections code.
6060 (mips_select_section): Delete.
6061 * config/mips/mips.md (trap): Remove !TARGET_GAS check.
6062 * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
6063 * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
6064 (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
6065 * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
6066 * config/mips/windiss.h (ASM_SPEC): Likewise.
6067
032e8348
RS
60682004-08-23 Richard Sandiford <rsandifo@redhat.com>
6069
6070 * read-rtl.c (map_value, mapping, macro_group): New structures.
6071 (BELLWETHER_CODE): New macro.
6072 (modes, codes, bellwether_codes): New variables.
6073 (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
6074 (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
6075 (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
6076 (add_condition_to_rtx, apply_macro_traverse, add_mapping)
6077 (add_map_value, initialize_macros): New functions.
6078 (def_hash, def_hash_eq_p): Generalize to anything that points to,
6079 or starts with, a char * field.
6080 (find_macro, read_mapping, check_code_macro): New functions.
6081 (read_rtx_1): New, split out from read_rtx. Handle the new
6082 define_{mode,code}_{macro,attr} constructs. Use find_macro
6083 to parse the name of a code or mode. Use BELLWETHER_CODE to
6084 extract the format and to choose a suitable code for rtx_alloc.
6085 Modify recursive invocations to use read_rtx_1.
6086 (read_rtx): Call initialize_macros. Apply code and mode macros
6087 to the rtx returned by read_rtx_1. Cache everything after the
6088 first macro expansion for subsequent read_rtx calls.
6089 * doc/md.texi: Document new .md constructs.
6090 * config/mips/mips.md (GPR): New mode macro.
6091 (d, si8_di5): New mode attributes.
6092 (any_cond): New code macro.
6093 (add[sd]i3): Redefine using :GPR.
6094 (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
6095 (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
6096 previously unnamed MIPS16 patterns.
6097 (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long
6098 lines. Don't match (plus (const_int 0) ...).
6099 (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
6100 Use a define_split to generate the addition.
6101 (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn.
6102 (subsi3_internal): Delete.
6103 (*subsi3_extended): Renamed from subsi3_internal_2.
6104 (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
6105 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
6106 using an any_cond template.
6107
ecce923e
RS
61082004-08-23 Richard Sandiford <rsandifo@redhat.com>
6109
6110 * read-rtl.c (read_rtx): Tidy use of format_ptr.
6111
a269d6c8
RS
61122004-08-23 Richard Sandiford <rsandifo@redhat.com>
6113
6114 * read-rtl.c (string_obstack): New file-scope variable.
6115 (read_string, read_quoted_string, read_braced_string)
6116 (read_escape): Remove obstack parameter and use string_obstack instead.
6117 (read_rtx): Remove function-local rtl_obstack and initialize
6118 string_obstack instead. Update call to read_string.
6119
9fc3b39a
AP
61202004-08-22 Andrew Pinski <apinski@apple.com>
6121
6122 PR c/15262
6123 * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
6124 expression is not constant.
6125 (c_finish_return): Do not go through INDIRECT_REF when looking
6126 for the inner expression of an ADDR_EXPR for warning about.
6127
cea49550
RH
61282004-08-22 Richard Henderson <rth@redhat.com>
6129
6130 PR 17075
6131 * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
6132 create new blocks and fall through.
6133 (expand_gimple_basic_block): Update to match.
6134
0b540f12
UW
61352004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
6136
6137 * reload.c (find_reloads_address): Make return value tri-state.
6138 Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
6139 (find_reloads): Assume that reloaded addresses match 'o' or
6140 EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
6141 returned 1 (not -1). Omit optional reloads for address operands
6142 only if find_reloads_address returned 1 (not -1).
6143
6144 * config/s390/s390.c (legitimize_reload_address): New function.
6145 * config/s390/s390-protos.h (legitimize_reload_address): Declare.
6146 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call
6147 legitimize_reload_address.
6148
7f5e6307
RH
61492004-08-22 Richard Hendersion <rth@redhat.com>
6150
6151 * tree.h (SAVE_EXPR_RESOLVED_P): New.
6152 * gimplify.c (gimplify_save_expr): Use it.
6153 * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P
6154 on the temporary variable.
6155
efd610a6
AP
61562004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
6157
6158 * fold-const.c (rtl_expr_nonnegative_p): Delete.
6159 * tree.h (rtl_expr_nonnegative_p): Remove.
6160
324a6c95
SB
61612004-08-22 Steven Bosscher <stevenb@suse.de>
6162
6163 * config/i386/ppro.md (ppro_complex_insn): Add missing check
6164 for cpu==pentiumpro.
6165
6166 * combine.c (struct reg_stat): Fix comment typo.
6167
41db8425
JM
61682004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
6169
6170 * c-tree.h (c_sizeof_nowarn): Remove.
6171
00325bce
JM
61722004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
6173
6174 * c-decl.c (set_array_declarator_type): Rename to
6175 set_array_declarator_inner.
6176 (build_c_parm, build_attrs_declarator, build_function_declarator):
6177 New functions.
6178 (make_pointer_declarator): Call build_attrs_declarator.
6179 * c-tree.h (set_array_declarator_type): Rename to
6180 set_array_declarator_inner.
6181 (build_c_parm, build_attrs_declarator, build_function_declarator):
6182 New prototypes.
6183 * c-parse.in (after_type_declarator,
6184 parm_declarator_starttypename, parm_declarator_nostarttypename,
6185 notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
6186 firstparm): Use these functions
6187
60919bce
JM
61882004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
6189
6190 * c-decl.c (build_array_declarator, set_array_declarator_type,
6191 start_decl, grokdeclarator, grokparms): Change boolean parameters
6192 to type bool.
6193 * c-tree.h (build_array_declarator, set_array_declarator_type,
6194 start_decl): Update prototypes.
6195 * c-decl.c, c-parse.in: All callers changed.
6196
bdfd0ed4
MS
61972004-08-21 Mike Stump <mrs@apple.com>
6198
6199 * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
6200 (darwin_fix_and_continue): Likewise.
6201 (darwin_fix_and_continue_switch): Likewise.
6202 * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
6203 (darwin_fix_and_continue): Likewise.
6204 (darwin_fix_and_continue_switch): Likewise.
6205
35da8b56 62062004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
23d34220
DS
6207
6208 PR c++/16030
6209 * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
6210 Remove, merging into ...
6211 (gen_stdcall_or_fastcall_suffix): New function, returning tree
6212 rather than const char*, and accepting additional parameter.
6213 Don't add suffix to '*'-prefixed symbols or variadic functions.
6214 (i386_pe_encode_section_info): Adjust for call to new function.
6215 Call change_decl_assembler_name.
6216
828a4fe4
MS
62172004-08-20 Mike Stump <mrs@apple.com>
6218
6219 * config/darwin.c (machopic_indirect_data_reference): Mark
6220 stubs as defined.
6221 * config/386/386.c (darwin_local_data_pic): Add.
6222 (legitimate_constant_p): Reorder so that PLUS handling runs
6223 before darwin_local_data_pic to match the ordering in
6224 legitimate_pic_address_disp_p and so that MINUS runs after
6225 darwin_local_data_pic as otherwise the darwin_local_data_pic
6226 logic can be skipped, which would be very bad.
6227 (legitimate_pic_address_disp_p): Move from from here to
6228 darwin_local_data_pic so it can be reused.
6229
85b776df
AM
62302004-08-21 Alan Modra <amodra@bigpond.net.au>
6231
6232 * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
6233 (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
6234 (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
6235 (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
6236 (RS6000_ABI_NAME): Define as "linux".
6237 (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
6238 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
6239 ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
6240 * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
6241 * config/rs6000/rs6000.c (dot_symbols): New global var.
6242 (rs6000_output_function_entry): New function, modified for
6243 !DOT_SYMBOLS..
6244 (print_operand <case 'z'>): ..extracted from here.
6245 (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
6246 (rs6000_output_function_epilogue): Likewise.
6247 (rs6000_elf_declare_function_name): Likewise.
6248 * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
6249 (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
6250 * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
6251 * configure: Regenerate.
6252 * config.in: Regenerate.
6253
14d3dc34
MM
62542004-08-20 Mark Mitchell <mark@codesourcery.com>
6255
0e544c37
MM
6256 * reload.c (find_reloads_address): Fix thinko in previous change.
6257
14d3dc34
MM
6258 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
6259 a CONST_INT.
6260
f3b2657c
JJ
62612004-08-20 Jakub Jelinek <jakub@redhat.com>
6262
6263 PR rtl-optimization/17099
6264 * combine.c (force_to_mode): Check if inner_mask has any bits set
6265 outside of GET_MODE (x) instead of op_mode.
6266
d2294baa
MM
62672004-08-20 Mark Mitchell <mark@codesourcery.com>
6268
6269 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
6270 fragment.
6271 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
6272 (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
6273 * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
6274 architecture.
6275 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
6276 configurations.
6277 * config/arm/t-symbian: New file.
6278
753d0efa
AP
62792004-08-20 Andrew Pinski <apinski@apple.com>
6280
6281 * regrename.c (kill_value_regno): ANSIfy.
6282
627b6fe2
DJ
62832004-08-20 Dale Johannesen <dalej@apple.com>
6284
324a6c95 6285 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
627b6fe2 6286
d64d5e80
DJ
62872004-08-20 Daniel Jacobowitz <dan@debian.org>
6288
6289 * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
6290 (kill_value_regno): New function, derived from kill_value.
6291 (kill_value): Update.
6292 (copyprop_hardreg_forward_1): Update call to kill_value_regno.
6293
af75a7ea 62942004-08-20 Daniel Berlin <dberlin@dberlin.org>
f676971a 6295
af75a7ea
DB
6296 Fix PR tree-optimization/17111
6297 * tree-ssa-pre.c (create_value_expr_from): Don't change the types
6298 of non-value_handles.
6299 (bitmap_set_contains): All constants are in every set.
6300
0a936b12
NS
63012004-08-20 Nathan Sidwell <nathan@codesourcery.com>
6302
6303 * fold-const.c (round_up, round_down): Use build_int_cst.
6304 Optimize common case.
6305
774acadf
ZW
63062004-08-20 Zack Weinberg <zack@codesourcery.com>
6307 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6308
324a6c95 6309 * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
774acadf
ZW
6310 one_only_data_section): Rename to som_readonly_data_section,
6311 som_one_only_readonly_data_section and som_one_only_data_section.
324a6c95 6312 * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
0a936b12
NS
6313 NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
6314 conditional defines.
774acadf
ZW
6315 (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
6316 NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
6317 string values.
6318 (pa_select_section): Use renamed section functions.
6319 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
324a6c95 6320 SOM_READONLY_DATA_SECTION_FUNCTION,
774acadf 6321 SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
324a6c95
SB
6322 SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
6323 Define here ...
6324 * config/pa/som.h: ... not here.
6325 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
774acadf
ZW
6326 ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
6327 ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
324a6c95
SB
6328 ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
6329 (READONLY_DATA_SECTION): Use som_readonly_data_section.
774acadf 6330
3224bead
NS
63312004-08-20 Nathan Sidwell <nathan@codesourcery.com>
6332
fabead06
NS
6333 * fold-const.c (int_const_binop): Don't generate non-overflowing
6334 size-types specially.
6335 (fold_convert_const): Likewise.
6336
3224bead
NS
6337 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
6338 clear cache on copied sizetype.
6339
fb38008e
BE
63402004-08-20 Ben Elliston <bje@au.ibm.com>
6341
6342 * configure.ac: Don't escape apostrophe in --enable-coverage help.
6343 * configure: Regenerate.
6344
a9024779
DS
63452004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
6346
6347 PR 5620
6348 * gcc.c (struct stat input_stat): Don't define if
6349 HOST_LACKS_INODE_NUMBERS
6350 (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
6351 than stat to determine if temp file is same as input file.
6352 * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
6353 * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
6354
82563d35
RS
63552004-08-20 Richard Sandiford <rsandifo@redhat.com>
6356
6357 * configure.ac (mips*-*-*): Print an error if not using GAS.
6358 * configure: Regenerated.
6359 * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
6360 comments about buggy MIPSpro assemblers.
6361 * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
6362 before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
6363 Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
6364 IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
6365 * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
6366 (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
6367 (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
6368 (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
6369 (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
6370 of more general IRIX 6 definitions.
6371 (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
6372 (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
6373 (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
6374 (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
6375 (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
6376 (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
6377 (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
6378 (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
6379 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
6380 (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
6381 (LINK_SPEC): Move most of definition to iris.h.
6382 (SUBTARGET_LINK_SPEC): New macro.
6383 (IRIX_STARTFILE_SPEC): Fold into...
6384 (STARTFILE_SPEC): ...here.
6385 (IRIX_ENDFILE_SPEC): Fold into...
6386 (ENDFILE_SPEC): ...here.
6387 * config/mips/iris6.h (TARGET_IRIX5): Remove override.
6388 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
6389 (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
6390 (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
6391 (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
6392 (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
6393 (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
6394 (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
6395 (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
6396 (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
6397 (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
6398 (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
6399 (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
6400 (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
6401 (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
6402 (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
6403 (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
6404 (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
6405 (TARGET_IRIX6): Define to 1.
6406 (DRIVER_SELF_SPECS): Define.
6407 (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
6408 (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
6409 (SUBTARGET_LINK_SPEC): New macro.
6410 (IRIX_STARTFILE_SPEC): Fold into...
6411 (STARTFILE_SPEC): ...here. Remove !mabi=* case.
6412 (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
6413 (LIB_SPEC, LIBGCC_SPEC): Use them.
6414 (LIB_SPEC): Remove !mabi=* case.
6415 (IRIX_ENDFILE_SPEC): Fold into...
6416 (ENDFILE_SPEC): ...here. Remove !mabi=* case.
6417 * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
6418 * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
6419 (TARGET_IRIX6): New macro.
6420 (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
6421 (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
6422 (LABEL_AFTER_LOC): Delete.
6423 * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
6424 (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
6425 (mips_build_builtin_va_list): Check TARGET_IRIX6.
6426 (override_options): Remove TARGET_SGI_O32_AS-related code.
6427 (irix_output_external_libcall): Make static.
6428 (mips_output_filename): Avoid use of SET_FILE_NUMBER and
6429 LABEL_AFTER_LOC.
6430 (mips_file_start): Tidy guard for ABI sections. Remove use of
6431 ABICALLS_ASM_OP; use .abicalls instead.
6432 (mips_output_aligned_decl_common, mips_declare_object_name)
6433 (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
6434 (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
6435 .globl foo .text directives.
6436 (irix_asm_named_section_1, irix_asm_named_section)
6437 (irix_section_align_entry, irix_section_align_htab)
6438 (irix_orig_asm_out_file, irix_section_align_entry_eq)
6439 (irix_section_align_entry_hash, irix_asm_output_align)
6440 (irix_file_start, irix_section_align_1, copy_file_data)
6441 (irix_file_end, irix_section_type_flags): Delete.
6442 * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
6443 Use standard section syntax. Remove protective "jr $31".
6444 (__gcc_fini): Likewise .gcc_fini.
6445 * config/mips/irix-crtn.asm: Adjust sections accordingly.
6446 * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
6447 iris5gas.h.
6448 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
6449 from t-irix-gld.
6450 (EXTRA_MULTILIB_PARTS): Define.
6451 * config/mips/t-iris6: Remove bogus comment.
6452 (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
6453 * config/mips/iris5gas.h, config/mips/iris5gld.h,
6454 config/mips/iris6gas.h, config/mips/iris6gld.h,
6455 config/mips/t-iris5-as, config/mips/t-iris5-gas
6456 config/mips/t-irix-gld: Delete.
6457 * config/mips/iris.h: New file.
6458 * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
6459
c4cdb8e1
RE
64602004-08-20 Richard Earnshaw <rearnsha@arm.com>
6461
6462 * postreload.c (reload_cse_move2add): Allow any condjump, but check
6463 that the implicit set isn't clobbered in the jump insn.
6464
d55ab31d
MM
64652004-08-19 Mark Mitchell <mark@codesourcery.com>
6466
6467 * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
6468 * optabs.c (init_optabs): Don't check it.
6469 * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
6470 * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
6471
d75f90f1
AK
64722004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
6473
6474 * config/s390/s390.md (s390_warn_framesize_string)
6475 (s390_warn_dynamic_string, s390_stack_size_string)
6476 (s390_stack_guard_string): New global string variables.
6477 (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
6478 (s390_stack_guard): New global variables.
6479 (override_options): Added checks for the new options.
6480 (s390_emit_prologue): Emit stack check and trap code and perform
6481 compile time stack size checking.
f676971a
EC
6482
6483 * config/s390/s390.h (TARGET_OPTIONS): Added new options
d75f90f1
AK
6484 "warn-framesize", "warn-dynamicstack", "stack-size" and
6485 "stack-guard".
6486
6487 * doc/invoke.texi: Added documentation for the new options.
6488
ca29916b
UW
64892004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
6490
6491 * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
6492 to eliminate warning.
6493 (linear_search_fdes): Declare p as unsigned.
6494 (binary_search_mixed_encoding_fdes): Likewise.
6495 * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
6496 to eliminate warning.
6497 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
6498 type cast.
6499
e1d5ee28
UW
65002004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
6501
6502 * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
6503 * config/s390/s390.c (preferred_la_operand_p): Accept two operands
6504 instead of one. Check for strictly legitimate address.
6505 * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
6506 to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
6507
19114537
EC
65082004-08-19 Eric Christopher <echristo@redhat.com>
6509
6510 * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
6511 * langhooks.h (unsave_expr_now): Ditto.
6512 * tree.h (unsave_expr_1): Remove prototype.
6513 (lhd_unsave_expr_now): Rename to unsave_expr_now.
6514 * tree-inline.c (unsave_expr_1): Move here
6515 from tree.c. Make static.
6516 (unsave_expr_now): Rename from lhd_unsave_expr_now.
6517 * tree-sra.c: Fix up for rename.
6518 * tree-ssa-copy.c: Ditto.
6519 * tree-eh.c: Ditto.
6520 * tree.c (unsave_expr_1): Move to tree-inline.c.
6521
d5bfecf2
CT
65222004-08-19 Caroline Tice <ctice@apple.com>
6523
324a6c95
SB
6524 * config/i386/cygming.h (switch_to_section): Fix typo (change
6525 in_unlikely_text_section to in_unlikely_executed_text).
19114537 6526
58152808
DB
65272004-08-19 Daniel Berlin <dberlin@dberlin.org>
6528
6529 * vec.h (VEC_lower_bound): New macro.
19114537 6530
ae043003
RS
65312004-08-19 Richard Sandiford <rsandifo@redhat.com>
6532
6533 PR target/16446
6534 * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
6535 (mips_arg_info): Update accordingly. Remove common treatment of fpr_p;
6536 treat each ABI separately. Deal with n32/n64 complex float arguments.
6537 (function_arg): Add associated complex handling here.
6538
50ed9cea
RH
65392004-08-19 Richard Henderson <rth@redhat.com>
6540
6541 * config/arm/arm.c (arm_gen_load_multiple): Use
6542 adjust_automodify_address. Take base memory and offset instead
6543 of unchanging/struct/scalar bits.
6544 (arm_gen_store_multiple): Likewise.
6545 (arm_gen_movmemqi): Use adjust_automodify_address.
6546 * config/arm/arm-protos.h: Update decls.
6547 * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
6548 (store_multiple): Similarly.
6549
74ae207d
R
65502004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
6551
6552 * regclass.c (globalize_reg): Update call_really_used_regs.
6553
89b0433e
NS
65542004-08-19 Nathan Sidwell <nathan@codesourcery.com>
6555
31ebd7c8
NS
6556 * doc/invoke.texi (integer-share-limit): Document.
6557
89b0433e
NS
6558 * tree.h (TYPE_CACHED_VALUES_P): New.
6559 (TYPE_CACHED_VALUES): New.
6560 (TYPE_ORIG_SIZE_TYPE): Adjust.
6561 * tree.def (INTEGER_CST): Update documentation.
6562 * tree.c: Inlcude params.h.
6563 (build_int_cst): Cache small values.
6564 (build_type_copy): Do not copy the value cache.
6565 * c-common.c (c_common_nodes_and_builtins): Add comment, remove
6566 unneeded zeroing.
6567 * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
6568 * expmed.c (const_mult_add_overflow_p): Clear type copy's value
6569 cache.
6570 * fold-const.c (force_fit_type): Copy value when setting
6571 overflows.
6572 (int_const_binop): Likewise.
6573 * stor-layout.c: Include params.h
6574 (set_sizetype): Create values cache.
6575 (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
6576 * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
6577 * params.h (INTEGER_SHARE_LIMIT): New.
6578 * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
19114537 6579
c2504783
PB
65802004-08-19 Paolo Bonzini <bonzini@gnu.org>
6581
6582 * gimplify.c (gimplify_minimax_expr): Remove.
6583 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
6584
7a8554ce
DN
65852004-08-19 Dorit Naishlos <dorit@il.ibm.com>
6586
19114537 6587 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
7a8554ce
DN
6588 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
6589
1905f33d
MM
65902004-08-19 Mark Mitchell <mark@codesourcery.com>
6591
6592 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
6593
f1732751
AP
65942004-08-18 Andrew Pinski <apinski@apple.com>
6595
6596 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
6597
8c78a388
MM
65982004-08-18 Mark Mitchell <mark@codesourcery.com>
6599
6600 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
6601 (__aeabi_ul2f): Likewise.
6602
7eda7cda
RH
66032004-08-18 Richard Henderson <rth@redhat.com>
6604
6605 * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
6606 move to rtl completely.
6607 (struct meminsnbuf, xtensa_emit_block_move): Remove.
6608 (xtensa_find_mode_for_size): Remove.
6609 * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
6610 * config/xtensa/xtensa.md (movmemsi_internal): Remove.
6611
88042663
RH
66122004-08-18 Richard Henderson <rth@redhat.com>
6613
6614 * config/mcore/mcore.c (mode_from_align): Remove DImode.
6615 (block_move_sequence): Rewrite to use adjust_address.
6616 (mcore_expand_block_move): Cleanup logic. Accept only operands.
6617 Return boolean indicating success/failure.
6618 * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
6619 * config/mcore/mcore.md (movmemsi): Update to match.
6620
699c914a
MS
66212004-08-18 Mike Stump <mrs@apple.com>
6622
6623 * doc/invoke.texi (-mfix-and-continue): Add support for
6624 fast turn around debugging.
6625 (-ffix-and-continue): Likewise.
6626 (-mindirect-data): Likewise.
6627 (-findirect-data): Likewise.
6628 * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
6629 (indirect_data): Likewise.
6630 (machopic_data_defined_p): Likewise.
6631 (machopic_output_indirection): Likewise.
6632 (darwin_encode_section_info): Likewise.
6633 (darwin_fix_and_continue): Likewise.
6634 (darwin_fix_and_continue_switch): Likewise.
6635 * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
6636 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
6637 (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
6638 (SUBTARGET_OPTIONS): Likewise.
6639 (darwin_fix_and_continue): Likewise.
6640 (darwin_fix_and_continue_switch): Likewise.
6641 (TARGET_FIX_AND_CONTINUE): Likewise.
6642 * config/rs6000.c (rs6000_emit_prologue): Likewise.
6643
66442004-08-19 Steven Bosscher <stevenb@suse.de>
bd454efd
SB
6645
6646 * basic-block.h (struct edge_def): Remove crossing_edge.
6647 (EDGE_CROSSING): New define.
6648 (EDGE_ALL_FLAGS): Update.
6649 * bb-reorder.c (find_traces_1_round, better_edge_p,
6650 find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
6651 find_jump_block, fix_crossing_conditional_branches,
6652 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
6653 Replace all occurences of crossing_edge with an edge flag check
6654 or set/reset.
6655 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
6656 try_crossjump_bb): Likewise.
6657 * cfglayout.c (fixup_reorder_chain): Likewise.
6658 * cfgrtl.c (force_nonfallthru_and_redirect,
6659 commit_one_edge_insertion): Likewise.
6660
6661 * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
6662 * tree-flow.h (compute_dominance_frontiers): Move prototype...
6663 * basic-block.h: ...here.
6664 * tree-cfg.c (compute_dominance_frontiers_1,
6665 compute_dominance_frontiers): Move from here...
6666 * cfganal.c: ...to here. Include timevar.h.
6667
9ff6992e
JW
66682004-08-18 James E Wilson <wilson@specifixinc.com>
6669
c831f54b 6670 * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
a1627d80
JW
6671 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
6672
9ff6992e
JW
6673 * config/mips/mips.md (type): Add frdiv.
6674 (divsf3+1, divsf3+2): Change type to frdiv.
6675 * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
6676 ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
19114537 6677
9ff6992e
JW
6678 * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
6679 * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
6680 * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
6681 * config/mips/5000.md (r5k_fdiv_single): Likewise.
6682 * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
6683 * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
6684 * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
6685 * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
6686 * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
6687 * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
6688 Likewise.
6689 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
6690
c16eb900
RB
66912004-08-18 Robert Bowdidge <bowdidge@apple.com>
6692
6693 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
324a6c95 6694 get regression tester working again.
c16eb900 6695
826c9564
ZW
66962004-08-18 Zack Weinberg <zack@codesourcery.com>
6697
6698 * insn-notes.def, reg-notes.def: New files.
6699 * rtl.h: Use them to define enum insn_note and enum reg_note.
6700 * rtl.c: Use them to define note_insn_name and reg_note_name.
4b179e92 6701 * Makefile.in (RTL_BASE_H): Update.
826c9564
ZW
6702
6703 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
6704 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
6705
21b5653c
RE
67062004-08-18 Richard Earnshaw <rearnsha@arm.com>
6707
6708 * arm.c (arm_size_rtx_costs): New function.
6709 (arm_override_options): Use it if optimizing for space.
6710
542a8afa
RH
67112004-08-18 Richard Henderson <rth@redhat.com>
6712
6713 * emit-rtl.c (gen_const_mem): New.
6714 * rtl.h (gen_const_mem): Declare.
6715 * expr.c (do_tablejump): Use it.
6716 * varasm.c (force_const_mem): Likewise.
6717 * config/darwin.c (machopic_indirect_data_reference): Likewise.
6718 (machopic_legitimize_pic_address): Likewise.
6719 * config/arm/arm.c (legitimize_pic_address): Likewise.
6720 * config/i386/i386.c (legitimize_pic_address): Likewise.
6721 (legitimize_tls_address): Likewise.
6722 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
6723 * config/ia64/ia64.md (load_fptr): Likewise.
6724 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
6725 * config/pa/pa.c (legitimize_pic_address): Likewise.
6726 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
6727 (rs6000_emit_move): Likewise.
6728 * config/s390/s390.c (legitimize_pic_address): Likewise.
6729 (legitimize_tls_address): Likewise.
6730 * config/s390/s390.md (casesi): Likewise.
6731 * config/sh/sh.c (sh_reorg): Likewise.
6732 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
6733 * config/v850/v850.md (casesi): Likewise.
6734
6735 * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
6736 * config/sh/sh.c (prepare_move_operands): Remove incorrect
6737 use of MEM_READONLY_P.
6738
0516f6fe
SB
67392004-08-18 Steven Bosscher <stevenb@suse.de>
6740
6741 * Makefile.in (OBJS-common): Add postreload-gcse.c.
6742 Add new postreload-gcse.o.
6743 * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
6744 (lookup_as_function, insert, rehash_using_reg, use_related_value,
6745 equiv_constant): Use SAFE_HASH instead of safe_hash.
6746 (exp_equiv_p): Export. Add for_gcse argument when comparing
6747 for GCSE.
6748 (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
6749 find_comparison_args, fold_rtx, cse_insn): Update callers.
6750 (hash_rtx): New function derived from old canon_hash and bits
6751 from gcse.c hash_expr_1.
6752 (canon_hash_string): Rename to hash_rtx_string.
6753 (canon_hash, safe_hash): Make static inline. Call hash_rtx.
6754 * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
6755 (cselib_lookup): Update this caller.
6756 * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
6757 Make static.
6758 (hash_expr): Call hash_rtx.
6759 (ldst_entry): Likewise.
6760 (expr_equiv_p): Call exp_equiv_p.
6761 (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
6762 reg_used_on_edge, reg_set_between_after_reload_p,
6763 reg_used_between_after_reload_p, get_avail_load_store_reg,
6764 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
6765 get_bb_avail_insn, hash_scan_set_after_reload,
6766 compute_hash_table_after_reload,
6767 eliminate_partially_redundant_loads, gcse_after_reload,
6768 get_bb_avail_insn, gcse_after_reload_main): Remove.
6769 * postreload-gcse.c: New file, reincarnating most of the above.
6770 * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
6771 (gcse_after_reload_main): Update prototype.
6772 * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
6773 * passes.c (rest_of_handle_gcse2): Use it.
6774
95013377
DN
67752004-08-18 Diego Novillo <dnovillo@redhat.com>
6776
6777 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
6778 (pass_loop_done): Likewise.
6779
ac9e2cff
AP
67802004-08-18 Andrew Pinski <apinski@apple.com>
6781
826c9564 6782 * config/rs6000/darwin.md: Delete the altivec patterns which are
ac9e2cff
AP
6783 handled differently now.
6784 (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
6785 (macho_correct_pic_di): Likewise.
6786 (call_indirect_nonlocal_darwin64): Likewise.
6787 Delete the save world/saveFP/saveVec patterns.
826c9564 6788
ac9e2cff 6789 Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com>
826c9564
ZW
6790 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
6791 * config/rs6000/rs6000.md: Include darwin.md.
6792 (builtin_setjmp_receiver): Add DImode case.
6793 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
6794 Darwin bits.
ac9e2cff 6795
92b9a671
MA
67962004-08-18 Matt Austern <austern@apple.com>
6797
6798 Dead code stripping
6799 * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
6800 * darwin.c (darwin_file_end): Mark file as potentially strippable.
826c9564 6801
4766261d
RH
68022004-08-18 Richard Henderson <rth@redhat.com>
6803
6804 * alias.c (readonly_fields_p): Remove.
6805 (objects_must_conflict_p): Don't call it.
6806 * tree.h (readonly_fields_p): Remove.
6807 * langhooks.h (struct lang_hooks): Remove honor_readonly.
6808 * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
6809
50dc9a88
DN
68102004-08-18 Diego Novillo <dnovillo@redhat.com>
6811
6812 * tree-dfa.c (add_referenced_var): Only global variables are
6813 call-clobbered.
6814 * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
6815 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
6816 all pointers dereferenced if the statement dereferences them.
6817 (create_name_tags): Do not create memory tags for pointers
6818 that have PT_ANYTHING set.
6819 Also check if PT_VARS is not empty before creating a name tag.
6820 (compute_flow_sensitive_aliasing): Don't mark call-clobbered
6821 variables that share the same alias set with a pointer that
6822 may point anywhere.
6823 (add_may_alias): Add FIXME comment to remove clobbering
6824 aliased variables and tags.
6825 (replace_may_alias): Likewise.
6826 (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
6827 (merge_pointed_to_info): If the original variable has not
6828 points-to information, call set_pt_anything.
6829 (add_pointed_to_var): Do not prevent adding a pointed-to
6830 variable if the pointers is PT_ANYTHING.
6831 If the variable is a global, set PT_GLOBAL_MEM.
6832 (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
6833 pointer type only come in PTR+OFFSET flavours.
6834 Always call merge_pointed_to_info on PHI arguments that are
6835 SSA_NAMEs.
6836 (get_nmt_for): Mark call-clobbered tags whose pointer points
6837 to global memory.
6838 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
6839 values.
6840 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
6841 FLAGS.
6842 (add_stmt_operand): Abort if the caller tried to add a killing
6843 definition for a memory tag.
6844 * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
6845 unnecessary checks.
6846
62164eb4
R
68472004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
6848
6849 * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
6850 from call_used_regs. Update call_really_used_regs.
6851 (CALL_REALLY_USED_REGISTERS): Define.
6852 * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
6853 Replace call_used_regs with call_really_used_regs.
6854 (calc_live_regs, sh_media_register_for_return): Likewise.
6855 (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
6856 * sh.md (return_media): Likewise.
6857
f9b0ac3b
AP
68582004-08-18 Andrew Pinski <apinski@apple.com>
6859
826c9564 6860 * config/darwin.c (machopic_legitimize_pic_address): Only set
ac9e2cff 6861 MEM_READONLY_P in the non TARGET_TOC case.
f9b0ac3b 6862
f822d252
ZW
68632004-08-18 Zack Weinberg <zack@codesourcery.com>
6864
6865 * rtl.def (NIL): Delete.
6866 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
6867 Tighten the syntax a little.
6868
6869 * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
6870 * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
6871 * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
6872 * config/i386/predicates.md, config/m32r/m32r.h
6873 * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
6874 * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
6875 * config/sparc/sparc.h, doc/tm.texi:
6876 Replace all occurrences of NIL with UNKNOWN.
6877
6aaf3dde
ZW
68782004-08-18 Zack Weinberg <zack@codesourcery.com>
6879
6880 * dojump.c (do_jump <unordered_bcc>): Do not recursively call
6881 self with a TRUTH_ORIF_EXPR; generate the appropriate jump
6882 sequence inline. Move drop_through_label code into this
6883 block, being the only place it is used. Adjust comments.
6884
d62294f5
FJ
68852004-08-18 Fariborz Jahanian <fjahanian@apple.com>
6886
6aaf3dde
ZW
6887 * config/rs6000/altivec.md: Add new patterns for calls to
6888 save_world/rest_world functions.
6889
6890 * config/rs6000/rs6000-protos.h: (save_world_operation,
6891 restore_world_operation) new declarations.
6892
6893 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
6894 field added.
6895 (rs6000_stack_info): Set world_save_p field.
6896 (save_world_operation): New function.
6897 (restore_world_operation): New function.
6898 (compute_save_world_info): New function.
6899 (rs6000_stack_info): Call compute_save_world_info.
6900 (rs6000_emit_prologue): Check for world_save_p and generate
6901 pattern to call save_world for saving all non-volatile and
6902 special registers.
6903 (rs6000_emit_epilogue): Check for world_save_p and generate
6904 pattern to call rest_world to restore saved registers.
6905
6906 config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
6907 FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
6908 (rs6000_reg_names): New entries added for save_world_operation and
6909 restore_world_operation.
d62294f5 6910
790ac0e1
CT
69112004-08-18 Caroline Tice <ctice@apple.com>
6912
6aaf3dde 6913 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
790ac0e1
CT
6914 "-freorder-blocks-and-partition" to the flags used in second
6915 stage of profiledbootstrap.
6916 * bb-reorder.c (push_to_next_round_p): Add new variable,
6917 next_round_is_last; set and use variable to make sure, when
6918 partitioning, that the last trace construction round consists
6919 of all (and only) cold basic blocks.
6920 (rotate_loop): Don't copy blocks that end in a section
6921 crossing jump.
6922 (copy_bb): Correctly initialize "partition" of duplicated bb.
6923 (add_unlikely_executed_notes): Add a comment.
6924 (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
6925 to make sure, if function contains hot blocks, that the
6926 successors of ENTRY_BLOCK_PTR are hot; also, only look for
6927 crossing edges if the architecture supports named sections.
6928 (mark_bb_for_unlikely_executed_section): Modify to always
6929 insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
6930 the basic block note insn.
6931 (fix_crossing_unconditional_branches): Remove extra space.
6932 (fix_edges_for_rarely_executed_code): Modify to only do
6933 partitioning work if the architecture supports named sections.
6934 (reorder_basic_blocks): Modify to only add
6935 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
6936 supports named sections.
6937 * c-common.c (handle_section_attribute): Initialize new global
6938 variable, user_defined_section_attribute, to true if user has
6939 specified one.
6940 * cfgcleanup.c (try_forward_edges): Modify to not attempt to
6941 forward edges that cross section boundaries.
6942 * cfglayout.c (fixup_reorder_chain): Modify to only fix up
6943 partitioning information if the architecture supports named
6944 sections.
6945 * cfgrtl.c (target.h): Add statement to include this.
6946 (rtl_split_block): Make sure newly created bb gets correct
6947 partition.
6948 (try_redirect_by_replacing_jump): Make sure redirection isn't
6949 attempting to cross section boundaries.
6950 (force_nonfallthru_and_redirect): Only do partition fix up if
6951 architecture supports named sections.
6952 (rtl_split_edge): Make sure newly created bb ends up in
6953 correct partition.
6954 (commit_one_edge_insertion): Remove code that incorrectly
6955 updated basic block partition; Make sure partition fix up only
6956 happens if architecture supports named sections and it's not
6957 already done.
6958 (rtl_verify_flow_info_1): Fix if-condition on test/error
6959 condition that fallthru edges are not allowed to cross section
6960 boundaries.
6961 * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
6962 * final.c (final_scan_insn): Remove redundant test from if-statement;
6963 change calls to text_section into calls to function_section; add code
6964 to only to partitioning fix up if architecture supports named
6965 sections.
6966 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
6967 partition.
6968 (if_convert): Add targetm.have_named_sections to test.
6969 * output.h (unlikely_section_label): Extern declaration for new global
6970 variable.
6971 (unlikely_text_section_name): Likewise.
6972 * opts.c (decode_options): If both partitioning and DWARF debugging
6973 are turned on, issue a warning that this doesn't work, and change
6974 partitiong to basic block reordering (without hot/cold partitions).
6aaf3dde 6975 * passes.c (rest_of_handle_final): Re-set new global variable,
790ac0e1
CT
6976 user_defined_section_attribute, to false.
6977 (rest_of_compilation): Change options for calling partitioning
6978 function: Don't call if the user defined the section attribute, and
6979 don't call if DECL_ONE_ONLY is true for the current function.
6980 * predict.c (choose_function_section): Return immediately if we
6981 are doing hot/cold partitioning (i.e. let the basic block partitioning
6982 determine where the function belongs).
6983 * reg-stack.c (emit_swap_insn): Add condition to step over
6984 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6985 * toplev.c (user_defined_section_attribute): New global variable.
89b0433e
NS
6986 * toplev.h (user_defined_section_attribute): Extern declaration
6987 for new global variable.
790ac0e1
CT
6988 * varasm.c (unlikely_section_label): New global variable.
6989 (unlikely_text_section_name): New global variable.
89b0433e
NS
6990 (unlikely_text_section): Add code to initialize
6991 unlikely_text_section_name if necessary; modify to use
6992 unlikely_text_section_name and unlikely_section_label; also to use
6993 named_section properly.
6994 (in_unlikely_text_section): Modify to work correctly with
6995 named_section and to use unlikely_text_section_name.
790ac0e1
CT
6996 (named_section): Add code to work properly with cold section.
6997 (function_section): Clean up if-statement.
89b0433e
NS
6998 * config/darwin.c (darwin_asm_named_section): Return to original
6999 code, removing use of SECTION_FORMAT_STRING.
6aaf3dde 7000 * config/arm/pe.h (switch_to_section): Add case for
790ac0e1
CT
7001 in_unlikely_executed_text to switch statement.
7002 * config/i386/cygming.h (switch_to_section): Likewise.
7003 * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
7004 (SECTION_FORMAT_STRING): Likewise.
7005 * config/mcore/mcore.h (switch_to_section): Likewise.
7006 * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
7007 (SECTION_FORMAT_STRING): Remove.
7008
3a4416fb
RS
70092004-08-18 Roger Sayle <roger@eyesopen.com>
7010
7011 * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
7012 -ffixed-reg safe, by preserving the meanings of zero and one.
7013 (CALL_USED_REGISTERS): Likewise.
7014 (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
7015
03904fb3
KK
70162004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
7017
7018 * config/sh/sh.c (split_branches): Check the result of
7019 next_active_insn.
7020 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
7021 Call rtl_register_cfg_hooks.
7022
389fdba0
RH
70232004-08-18 Richard Henderson <rth@redhat.com>
7024
7025 * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
7026 * alias.c (true_dependence): Update to match new semantics.
7027 (canon_true_dependence, write_dependence_p): Likewise.
7028 (anti_dependence, output_dependence): Update write_dependence_p args.
7029 (unchanging_anti_dependence): Remove.
7030 * calls.c (purge_mem_unchanging_flag): Remove.
7031 (fixup_tail_calls): Don't call it.
7032 (expand_call): Don't add unchanging memory to function usage.
7033 * expr.c (emit_block_move_via_libcall): Likewise.
7034 (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
7035 (get_subtarget): Don't use RTX_UNCHANGING_P.
7036 (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
7037 (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
7038 * combine.c (get_last_value_validate): Use MEM_READONLY_P.
7039 * cse.c (insert): Don't use RTX_UNCHANGING_P.
7040 (cse_insn, canon_hash): Use MEM_READONLY_P.
7041 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
7042 instead of RTX_UNCHANGING_P.
7043 * explow.c (maybe_set_unchanging): Remove.
7044 * expr.h (maybe_set_unchanging): Remove.
7045 * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
7046 * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
7047 (assign_parm_setup_reg, expand_function_start): Likewise.
7048 * integrate.c (copy_rtx_and_substitute): Likewise.
7049 * ra-rewrite.c (emit_colors): Likewise.
7050 * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
7051 (fixup_match_1): Likewise.
7052 * reload1.c (reload, alter_reg): Likewise.
7053 * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
7054 not RTX_UNCHANGING_P.
7055 (equiv_init_varies_p): Likewise.
7056 * loop-invariant.c (check_maybe_invariant): Likewise.
7057 * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
7058 * loop.c (note_addr_stored): Likewise.
7059 (prescan_loop): Likewise. Don't check function usage for clobbered
7060 unchanging memory.
7061 * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
6aaf3dde 7062 not RTX_UNCHANGING_P.
389fdba0
RH
7063 (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
7064 * varasm.c (force_const_mem): Likewise.
7065 * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
7066 * web.c (entry_register): Likewise.
7067 * tree-gimple.h (get_base_address): Move decl ...
7068 * tree.h: ... here.
7069 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
7070
7071 * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
7072 called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
7073 (alpha_set_memflags): Update to match.
7074
7075 * config/darwin.c (machopic_indirect_data_reference): Set
7076 MEM_READONLY_P instead of RTX_UNCHANGING_P.
7077 (machopic_indirect_call_target): Likewise.
7078 (machopic_legitimize_pic_address): Likewise.
6aaf3dde 7079 * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
389fdba0
RH
7080 arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
7081 * config/arm/arm.md (load_multiple, store_multiple): Likewise.
7082 * config/frv/frv.md (symGOT2reg): Likewise.
7083 * config/i386/i386.c (legitimize_pic_address,
7084 legitimize_tls_address, ix86_split_to_parts): Likewise.
7085 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
7086 * config/ia64/ia64.md (load_fptr): Likewise.
7087 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
7088 * config/m68k/m68k.c (legitimize_pic_address): Likewise.
7089 * config/mcore/mcore.c (block_move_sequence): Likewise.
7090 * config/mn10300/mn10300.md (symGOT2reg): Likewise.
7091 * config/pa/pa.c (legitimize_pic_address): Likewise.
7092 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
7093 (rs6000_emit_move): Likewise.
7094 * config/s390/s390.c (legitimize_pic_address): Likewise.
7095 (legitimize_tls_address): Likewise.
7096 * config/s390/s390.md (casesi): Likewise.
7097 * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
7098 * config/sh/sh.md (symGOT2reg): Likewise.
7099 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
7100 * config/v850/v850.md (casesi): Likewise.
7101
7102 * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
7103 * config/iq2000/iq2000.c (save_restore_insns): Likewise.
7104 * config/mips/mips.c (mips_restore_gp): Likewise.
7105 (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
7106 * config/sh/sh.c (sh_reorg): Likewise.
7107
17ad5b5e
RH
71082004-08-18 Richard Henderson <rth@redhat.com>
7109
7110 * tree.h (struct tree_decl): Add gimple_formal_temp.
7111 (DECL_GIMPLE_FORMAL_TEMP_P): New.
7112 * gimplify.c (pop_gimplify_context): Clear it.
7113 (lookup_tmp_var): Set it, if is_formal.
7114 (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
7115 Use is_gimple_val for VECTOR. Simplify return value.
7116 (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
7117 (gimplify_expr): Likewise.
7118 * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
7119 is_gimple_tmp_rhs for clarity. Update all callers.
7120 (is_gimple_reg_rhs): Simplify logic.
7121 (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
7122 clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
7123 (is_gimple_formal_tmp_reg): Similarly.
7124 * tree-gimple.h: Update decls.
7125 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
7126 DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting.
7127 * tree-ssa-live.c (var_union, type_var_init): Likewise.
7128
5b0eba61
PB
71292004-08-18 Paolo Bonzini <bonzini@gnu.org>
7130
7131 * c4x.c (legitimize_operands): Remove calls to
7132 preserve_subexpressions_p.
7133
07e15286
DE
71342004-08-18 David Edelsohn <edelsohn@gnu.org>
7135
7136 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
7137 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
7138
ad8c162b
ZL
71392004-08-18 Ziemowit Laski <zlaski@apple.com>
7140
7141 * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
7142 Objective-C++ extensions.
7143 * gengtype.c (get_file_basename): Match entire subdirectory name
7144 ('cp', 'objc', 'objcp') rather than just its suffix.
7145 (get_base_file_bitmap): Allow for files to belong to more than one
7146 language.
7147 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
7148 used by more than one front-end.
7149
d56993f2
RE
71502004-08-18 Richard Earnshaw <rearnsha@arm.com>
7151
7152 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
7153 avoid use of preserve_subexpressions_p.
7154
504c0e4f
RH
71552004-08-17 Richard Henderson <rth@redhat.com>
7156
7157 PR 17051
7158 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
7159
54e9a19d
DD
71602004-08-17 DJ Delorie <dj@redhat.com>
7161
7162 * doc/extend.texi: Document new xstormy16 attribute.
7163
7164 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
7165 (xstormy16_splittable_below100_or_register): New.
7166 (combine_bnp): New.
7167 (xstormy16_reorg): New.
7168 (TARGET_MACHINE_DEPENDENT_REORG): Define.
7169
54e9a19d
DD
7170 * config/stormy16/stormy16.md (movqi_internal): Make name public.
7171 (movhi_internal): Likewise.
7172 (cbhranchhi): Likewise.
7173 (cbhranchhi_neg): Likewise.
7174 (andhi3): Only allow splittable below100 operands.
7175 (iorhi3): Likewise.
7176 (peephole2): New and/zero_extend->and peephole.
7177 (peephole2): New load/ior/save->set1 peephole.
7178 (peephole2): New load/and/save->clr1 peephole.
7179 (bclrx, bclrx2, bclr7, bclr15): New.
7180 (bsetx, bsetx2, bset7, bset15): New.
7181
7182 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
7183 liberal about acceptable 'B' masks.
7184
7185 * config/stormy16/stormy16-protos.h
7186 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
7187 xstormy16_below100_operand, xstormy16_below100_or_register,
7188 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
7189 (PREDICATE_CODES): Add new predicates.
6aaf3dde 7190
54e9a19d
DD
7191 * config/stormy16/stormy16.c
7192 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
7193 xstormy16_below100_operand, xstormy16_below100_or_register,
7194 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
7195 (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
7196 (xstormy16_legitimate_address_p): Allow below100 symbols.
7197 (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
7198 (xstormy16_expand_move): Leave below100 operands as-is.
7199 (xstormy16_encode_section_info): Encode below100 symbols.
7200 (xstormy16_strip_name_encoding): New.
7201 (xstormy16_print_operand): Print 'b' as shift mask.
7202 (xstormy16_attribute_table): Add below100 attributes.
7203 (xstormy16_handle_below100_attribute): New.
7204
7205 * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
7206 (XSTORMY16_SECTION_FUNCTION): New.
7207 (EXTRA_SECTION_FUNCTIONS): Define using the above.
7208 (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
7209 (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
7210 (ASM_OUTPUT_LABELREF): Define.
7211
7212 * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
7213 (movhi_internal): Add below100 support.
7214 (andhi3): Add below100 support.
7215 (iorhi3): Add below100 support.
7216 (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
7217
4ef47bd8
JW
72182004-08-17 James E Wilson <wilson@specifixinc.com>
7219
7220 * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
7221 of VOIDmode for comparison code mode.
7222 * config/mips/mips.md: For conditional move patterns, use mode of
7223 first compare operand for comparison mode, instead of VOIDmode.
e17c734b
JW
7224
7225 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
7226 normal and -ffast-math code.
7227
1a10290c
MM
72282004-08-17 Mark Mitchell <mark@codesourcery.com>
7229
7230 PR c++/15871
7231 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
7232
f4e736dd 72332004-08-17 Robert Bowdidge <bowdidge@apple.com>
6aaf3dde
ZW
7234
7235 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
f4e736dd 7236
13a98f14
AT
72372004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
7238
7239 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
7240 for non Darwin targets.
7241 (*call_value_nonlocal_darwin64): Likewise.
7242
d0b2079e
FJ
72432004-08-17 Fariborz Jahanian <fjahanian@apple.com>
7244
7245 * config/rs6000/rs6000.c (rs6000_function_value): Check for
7246 altivec mode for altivec return register.
7247
feb3dc8b
DE
72482004-08-17 David Edelsohn <edelsohn@gnu.org>
7249
7250 Revert 2004-08-16 Stan Shebs <shebs@apple.com>
ef0e2729 7251 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
feb3dc8b
DE
7252 * config/rs6000/rs6000.md: Include darwin.md.
7253 (builtin_setjmp_receiver): Add DImode case.
7254 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
7255 Darwin bits.
7256
79fe1b3b
DN
72572004-08-17 Dorit Naishlos <dorit@il.ibm.com>
7258
89b0433e
NS
7259 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
7260 trees.
79fe1b3b
DN
7261 * tree-vectorizer.h: New File: Same.
7262 * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
7263 * common.opt (ftree-vectorize): New flag to enable vectorization.
89b0433e
NS
7264 * timevar.def (TV_TREE_VECTORIZATION): New dump file for
7265 vectorization pass.
79fe1b3b
DN
7266 * tree-data-ref.h (init_data_ref): Additional argument.
7267 (array_base_name_differ_p): Moved to tree-data-ref.c.
7268 * tree-data-ref.c (array_base_name_differ_p): Revised.
7269 (initialize_data_dependence_relation): Call array_base_name_differ_p
7270 with an extra argument.
7271 (analyze_all_data_dependences): Same.
7272 (init_data_ref): Additional argument is_read to set DR_IS_READ.
89b0433e
NS
7273 * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
7274 file.
79fe1b3b
DN
7275 * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
7276 * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
6aaf3dde 7277 * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
79fe1b3b
DN
7278 vectorization pass.
7279 * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
7280 (tree_ssa_loop_done): Call scev_finalize.
7281 (tree_vectorize): Define the new vectorization pass.
89b0433e
NS
7282 * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
7283 size of the vector they support (until support for multiple vector
7284 sizes is added to the vectorizer).
79fe1b3b
DN
7285 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
7286 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
7287 * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
7288 documentation.
7289
e15987c1
NS
72902004-08-17 Nathan Sidwell <nathan@codesourcery.com>
7291
7292 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
7293 usage.
7294 (generate_protocol_list, handle_impent): Likewise.
7295
e3cadb61
RS
72962004-08-17 Roger Sayle <roger@eyesopen.com>
7297
7298 * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
7299 ensure that call_used_regs is a superset of both fixed_regs and
7300 call_really_used_regs.
7301
108a579c
DB
73022004-08-17 Daniel Bornstein <danfuzz@milk.com>
7303
7304 PR target/17019
7305 * arm.md (addsi3_cbranch_scratch): Correct case labels.
7306
62fc1d7d
PB
73072004-08-17 Paolo Bonzini <bonzini@gnu.org>
7308
7309 PR middle-end/17036
7310 * fold-const.c (fold): Check for integer operand when
7311 folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew
7312 Pinski <pinskia@physics.uc.edu>.
7313
7c27e184
PB
73142004-08-17 Paolo Bonzini <bonzini@gnu.org>
7315
7316 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
7317 No need to check if in a cross configuration.
7318 * configure: Regenerate.
7319
7320 * calls.c (precompute_register_parameters):
7321 Inline preserve_subexpressions_p ().
7322 * expmed.c (expand_mult_const, emit_store_flag): Likewise.
7323 * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
7324 Likewise.
7325 * expr.c (get_subtarget): Likewise.
7326 * rtl.h (preserve_subexpressions_p): Remove.
7327 * stmt.c (preserve_subexpressions_p): Remove.
7328
7329 * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
7330 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
7331 Abort on gimplified cases.
7332
d97c6333
JW
73332004-08-16 James E Wilson <wilson@specifixinc.com>
7334
7335 * tree.h (VECTOR_FLOAT_TYPE_P): New.
7336 (FLOAT_TYPE_P): Use it.
7337 * c-typeck.c (build_binary_op): After convert calls, check for
7338 check for ERROR_MARK operands.
7339
45c8116d
ZW
73402004-08-16 Zack Weinberg <zack@codesourcery.com>
7341
7342 * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
7343 (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
7344 (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
7345 (genobjs static pattern rule): Remove %.c dependency.
7346 ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
7347 Rename rules; delete commands; fix dependencies.
7348 (mostlyclean): Do not delete temporary source copies.
7349 * configure.ac: Delete all references to BUILD_PREFIX and
7350 BUILD_PREFIX_1.
7351 * configure: Regenerate.
7352
7353 * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
7354 Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
7355 basic-block.h #ifdef GENERATOR_FILE. Surround some more code
7356 with #ifndef GENERATOR_FILE so that nothing from those headers
7357 is used.
7358
7359 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
7360
4d73e20b
AN
73612004-08-16 Adam Nemet <anemet@lnxw.com>
7362
7363 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
6aaf3dde 7364
62114438
AP
73652004-08-16 Andrew Pinski <apinski@apple.com>
7366
7367 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
7368 extraneous semicolon.
7369
8e3e233b
DP
73702004-08-16 Devang Patel <dpatel@apple.com>
7371
7372 * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
7373 * print-tree.c (print_node): Print DECL_PRESERVE_P.
7374 * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
7375 (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
7376 * target.h (struct gcc_target): New member, mark_decl_preserved.
45c8116d
ZW
7377 * hooks.c (hook_void_charptr): Rename to ...
7378 (hook_void_constcharptr): ... new name.
7379 * hooks.h (hook_void_charptr): Rename to ..
7380 (hook_void_constcharptr): ... new name.
8e3e233b
DP
7381 * tree.h (DECL_PRESERVE_P): New #define.
7382 (struct tree_decl): New member, preserve_flag.
7383 * varasm.c (assemble_start_function): Mark decl preserved.
7384 (assemble_variable): Same.
7385 * darwin.c (darwin_mark_decl_preserved): New function.
7386 * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
7387 * darwin-protos.h (darwin_mark_decl_preserved): New decl.
7388 * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
7389
580b3958
JM
73902004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
7391
7392 * c-decl.c (grokdeclarator): Allow for function definition where
7393 innermost declarator has attributes.
7394
93f90be6
FJ
73952004-08-16 Fariborz Jahanian <fjahanian@apple.com>
7396
7397 * except.c (get_exception_filter, build_post_landing_pads,
7398 dw2_build_landing_pads): Use target-specific mode for 'filter'.
7399 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
7400 * target.h (eh_return_filter_mode): New field added.
7401 * targhooks.c (default_eh_return_filter_mode): Defined.
7402 * targhooks.h (default_eh_return_filter_mode): Declared.
7403 * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
7404
392765bf
NN
74052004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
7406
7407 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
7408 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
7409 * configure: Regenerate.
7410
49bd1d27
SS
74112004-08-16 Stan Shebs <shebs@apple.com>
7412
7413 Basic support for 64-bit Darwin.
7414 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
7415 (machopic_legitimize_pic_address): Similarly, plus use Pmode
7416 instead of SImode.
7417 * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
7418 (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
7419 (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
7420 (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
7421 (PROCESSOR_DEFAULT64): Define.
7422 * config/rs6000/darwin.md: New file, patterns specific to 64-bit
7423 Darwin.
7424 * config/rs6000/rs6000.md: Include darwin.md.
7425 (builtin_setjmp_receiver): Add DImode case.
7426 * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
7427 Darwin.
7428 (TARGET_ASM_ALIGNED_DI_OP): Ditto.
7429 (rs6000_emit_move): Add DImode case to Darwin bits.
7430 (machopic_output_stub): Use .quad if 64-bit.
7431 * invoke.texi: Document -m32 and -m64.
7432
4e6e4e4c
JJ
74332004-08-16 Janis Johnson <janis187@us.ibm.com>
7434
7435 * doc/extend.texi (AltiVec builtins): Document additional differences
7436 from the Motorola AltiVec PIM.
7437
092313ae
NS
74382004-08-16 Nathan Sidwell <nathan@codesourcery.com>
7439
7440 * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
7441 * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
7442 (struct tree_common): Update public_flag documentation.
7443
dffc9ae5
NN
74442004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
7445
7446 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
62fc1d7d 7447 Check for artificial variables, not is_gimple_tmp_var.
dffc9ae5
NN
7448 * tree-ssa-live.c (var_union): Likewise.
7449
16e9be4c
NS
74502004-08-16 Nathan Sidwell <nathan@codesourcery.com>
7451
7452 * calls.c (load_register_parameters): Remove spurious FIXME token.
7453
9a4d6480
ZL
74542004-08-15 Ziemowit Laski <zlaski@apple.com>
7455
7456 * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
7457 (c-lang.o): Depend on c-objc-common.h.
45c8116d 7458 (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
9a4d6480
ZL
7459 c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
7460 * c-lang.c: Include c-objc-common.h.
7461 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
7462 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
7463 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
45c8116d
ZW
7464 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
7465 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
9a4d6480
ZL
7466 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
7467 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
45c8116d 7468 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
9a4d6480
ZL
7469 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
7470 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
7471 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
7472 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
7473 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
7474 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
7475 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
7476 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
7477 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
7478 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
7479 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
7480 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
7481 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
7482 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
7483 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
7484 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
7485 Move to c-objc-common.h.
7486 * c-objc-common.c: Include c-objc-common.h.
7487 * c-objc-common.h: New file.
7488
869464ba
AT
74892004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
7490 Andrew Pinski <pinskia@physics.uc.edu>
7491
7492 PR target/14931
7493 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
7494 style.
7495
4a90aeeb
NS
74962004-08-15 Nathan Sidwell <nathan@codesourcery.com>
7497
7498 * tree.h (build_int_cst): New.
7499 (build_int_2): Remove.
7500 * tree.c (build_int_2): Remove.
7501 (build_int_cst): New.
7502 (make_vector_type, build_common_tree_nodes,
7503 build_common_tree_nodes_2): Use build_int_cst.
7504 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
7505 expand_builtin_strpbrk, expand_builtin_fputs,
7506 build_string_literal, expand_builtin_printf,
7507 expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
7508 fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
7509 fold_builtin_isdigit, simplify_builtin_strstr,
7510 simplify_builtin_strpbrk, fold_builtin_fputs,
7511 simplify_builtin_sprintf): Use build_int_cst.
7512 * c-common.c (start_fname_decls, fix_string_type,
7513 c_common_nodes_and_builtins, c_init_attributes,
7514 shorten_compare): Likewise.
7515 * c-decl.c (complete_array_type,
7516 check_bitfield_type_and_width): Likewise.
7517 * c-lex.c (interpret_integer, lex_charconst): Likewise.
7518 * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
7519 * c-pretty-print.c (pp_c_integer_constant): Likewise.
7520 * c-typeck.c (really_start_incremental_init, push_init_level,
7521 set_nonincremental_init_from_string): Likewise.
7522 * calls.c (load_register_parameters): Likewise.
7523 * convert.c (convert_to_pointer): Likewise.
7524 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
7525 build_fn_info_type, build_ctr_info_value, build_gcov_info):
7526 Likewise.
7527 * except.c (init_eh, assign_filter_values, assign_filter_values):
7528 Likewise.
7529 * expmed.c (store_fixed_bit_field, extract_bit_field,
7530 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
7531 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
7532 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
7533 * expr.c (convert_move, emit_group_load, emit_group_store,
7534 expand_assignment, store_constructor, store_field,
7535 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
7536 * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
7537 invert_truthvalue, optimize_bit_field_compare,
7538 decode_field_reference, all_ones_mask_p, constant_boolean_node,
7539 fold_div_compare, fold, fold_read_from_constant_string,
7540 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
7541 * function.c (assign_parm_setup_block): Likewise.
7542 * stmt.c (shift_return_value, expand_end_case_type,
7543 estimate_case_costs): Likewise.
7544 * stor-layout.c (layout_type, initialize_sizetypes,
7545 set_min_and_max_values_for_integral_type): Likewise.
7546 * tree-chrec.c (chrec_fold_multiply_poly_poly,
7547 reset_evolution_in_loop): Likewise.
7548 * tree-chrec.h (build_polynomial_chrec): Likewise.
7549 * tree-complex.c (build_replicated_const): Likewise.
7550 * tree-eh.c (honor_protect_cleanup_actions,
7551 lower_try_finally_onedest, lower_try_finally_copy,
7552 lower_try_finally_switch): Likewise.
7553 * tree-mudflap.c (mf_build_string, mx_register_decls,
7554 mudflap_register_call, mudflap_enqueue_constant): Likewise.
7555 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
7556 * tree-pretty-print.c (dump_generic_node): Likewise.
7557 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
7558 Likewise.
7559 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
7560 * tree-ssa-loop-niter.c (number_of_iterations_cond,
7561 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
7562 Likewise.
45c8116d 7563
4a90aeeb
NS
7564 * config/alpha/alpha.c (alpha_initialize_trampoline,
7565 alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
7566 * config/arm/arm.c (arm_get_cookie_size): Likewise.
7567 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
7568 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
7569 * config/i860/i860.c (i860_va_start): Likewise.
7570 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
7571 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
7572 mips_gimplify_va_arg_expr): Likewise.
7573 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
7574 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
7575 add_compiler_branch_island): Likewise.
7576 * config/s390/s390.c (s390_va_start): Likewise.
7577 * config/sh/sh.c (sh_va_start): Likewise.
7578 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
7579 Likewise.
7580 * config/xtensa/xtensa.c (xtensa_va_start,
7581 xtensa_gimplify_va_arg_expr): Likewise.
45c8116d 7582
4a90aeeb
NS
7583 * objc/objc-act.c (build_objc_string_object,
7584 build_objc_symtab_template, init_def_list, init_objc_symtab,
7585 init_module_descriptor, generate_static_references,
7586 build_selector_translation_table, get_proto_encoding,
7587 build_typed_selector_reference, build_selector_reference,
7588 build_next_objc_exception_stuff,
7589 build_method_prototype_list_template, generate_descriptor_table,
7590 generate_protocols, build_protocol_initializer,
7591 build_ivar_list_template, build_method_list_template,
7592 build_ivar_list_initializer, generate_ivars_list,
7593 generate_dispatch_table, generate_protocol_list,
7594 build_category_initializer, build_shared_structure_initializer,
7595 generate_shared_structures, handle_impent,
7596 generate_objc_image_info): Use build_int_cst.
7597
2a68a7de
BE
75982004-08-15 Ben Elliston <bje@au.ibm.com>
7599
7600 * vec.h: Comment improvements.
7601
53fb4de3
RS
76022004-08-14 Roger Sayle <roger@eyesopen.com>
7603
7604 * c-common.c (shorten_compare, pointer_int_sum,
7605 c_common_truthvalue_conversion, boolean_increment): Replace calls
7606 to build with calls to buildN.
7607 * c-decl.c (complete_array_type, grokdeclarator): Likewise.
7608 * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
7609 gimplify_switch_stmt): Likewise.
7610 * c-typeck.c (default_function_array_conversion,
7611 build_component_ref, build_array_ref, build_function_call,
7612 pointer_diff, build_unary_op, build_conditional_expr,
7613 build_compound_expr, build_modify_expr, c_finish_goto_label,
7614 c_finish_goto_ptr, c_finish_return, c_finish_loop,
7615 c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
7616 build_binary_op): Likewise.
7617
254b17dd
SB
76182004-08-15 Steven Bosscher <stevenb@suse.de>
7619
7620 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
7621
a5252c84
JDA
76222004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7623
7624 * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
7625 curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
7626 * fixinc/fixincl.x: Rebuilt.
7627
96a30b18
RS
76282004-08-14 Richard Sandiford <rsandifo@redhat.com>
7629
7630 * config/mips/mips-protos.h (mips_symbolic_constant_p)
7631 (mips_atomic_symbolic_constant_p, mips_stack_address_p)
7632 (mips_small_data_pattern_p): Declare.
7633 * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
7634 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
7635 * config/mips/mips.c (mips_symbolic_constant_p): Make global.
7636 (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
7637 (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
7638 (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
7639 (reg_or_const_float_1_operand, hilo_operand, extend_operator)
7640 (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
7641 (pc_or_label_operand, call_insn_operand, move_operand)
7642 (consttable_operand, symbolic_operand, general_symbolic_operand)
7643 (global_got_operand, local_got_operand, stack_operand)
7644 (fp_register_operand, lo_operand, fcc_register_operand): Delete.
7645 (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
7646 (mips_small_data_pattern_p): Replace previous small_data_pattern
7647 predicate. Turn into a bool () (rtx) function.
7648 * config/mips/predicates.md: New file.
7649 * config/mips/mips.md: Include it. Use the target-independent
7650 comparison_operator instead of cmp_op. Rename trap_cmp_op to
7651 trap_comparison_operator and equality_op to equality_operator.
7652 Replace uses of small_int with the equivalent const_arith_operand.
7653 Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename
7654 const_float_1_operand to const_1_operand. Rename fcc_register_operand
7655 to fcc_reload_operand.
7656 * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
7657
e41c9fcb
JDA
76582004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7659
7660 PR libstdc++/17005 partial fix.
7661 * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
7662 except when generating ANSI/C89 code.
7663
af9c6659
NS
76642004-08-14 Nathan Sidwell <nathan@codesourcery.com>
7665
7666 * c-common.c (shorten_compare): Use force_fit_type directly.
7667
37de1373
GP
76682004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
7669 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
7670 Dave Korn <dk@artimi.com>
7671
7672 * doc/install.texi (Building): Avoid duplicate reference to GNU
7673 make requirement.
7674 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
7675
06d69cd3
RH
76762004-08-14 Richard Henderson <rth@redhat.com>
7677
7678 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
7679 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
7680
e427abbf
RH
76812004-08-13 Richard Henderson <rth@redhat.com>
7682
7683 * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
7684 for constant_call_address_operand.
7685 (call_value_pop_1, call_value_1): Likewise.
7686 (sibcall_value_1, call_value_1_rex64): Likewise.
7687
2b407936
JW
76882004-08-13 James E Wilson <wilson@specifixinc.com>
7689
7690 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
7691 Correct mode from SFmode to DFmode.
7692
3e0d5ae2
ZL
76932004-08-13 Ziemowit Laski <zlaski@apple.com>
7694
7695 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
7696 __cstring_object and __image_info sections with the no_dead_strip
7697 attribute.
7698
e0704143
RS
76992004-08-13 Roger Sayle <roger@eyesopen.com>
7700 David Billinghurst <David.Billinghurst@riotinto.com>
7701
7702 PR libgfortran/15930
7703 * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
7704 * fixinc/fixincl.x: Regenerate.
7705 * fixinc/tests/base/internal/math_core.h: New file.
7706
8768c655
RH
77072004-08-13 Richard Henderson <rth@redhat.com>
7708
7709 * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
7710 (dbxout_function_end): Remove ifdefs for it.
7711 (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
7712
201312c2
RH
77132004-08-13 Richard Henderson <rth@redhat.com>
7714
7715 * Makefile.in (insn-preds.o): Depend on TREE_H.
7716 * genpreds.c (write_insn_preds_c): Include tree.h.
7717 * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
7718 reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
7719 const48_operand, and_operand, or_operand, mode_width_operand,
7720 mode_mask_operand, mul8_operand, const0_operand,
7721 hard_fp_register_operand, hard_int_register_operand,
7722 reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
7723 samegp_function_operand, direct_call_operand, small_symbolic_operand,
45c8116d 7724 global_symbolic_operand, call_operand, symbolic_operand,
201312c2
RH
7725 dtp16_symbolic_operand, dtp32_symbolic_operand,
7726 gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
7727 gottp_symbolic_operand, alpha_comparison_operator,
7728 alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
7729 signed_comparison_operator, alpha_fp_comparison_operator,
7730 divmod_operator, fix_operator, aligned_memory_operand,
7731 unaligned_memory_operand, reg_or_unaligned_mem_operand,
7732 any_memory_operand, reg_not_elim_operand, normal_memory_operand,
7733 reg_no_subreg_operand, addition_operation): Move to predicates.md.
7734 (reg_or_const_int_operand): Remove. Replace all users with
7735 reg_or_cint_operand.
7736 (tls_symbolic_operand_1): Export. Don't check mode or for CONST.
7737 (resolve_reload_operand): Split out of aligned_memory_operand.
7738 * config/alpha/alpha-protos.h: Update for exports.
7739 * config/alpha/alpha.h (PREDICATE_CODES): Remove.
7740 * config/alpha/alpha.md: Include predicates.md.
7741 * config/alpha/predicates.md: New file.
7742
1e9c8405
RS
77432004-08-13 Richard Sandiford <rsandifo@redhat.com>
7744
7745 * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
7746 fields with a pointer to the instruction definition.
7747 (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
7748 (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
7749 (write_attr_case, write_const_num_delay_slots): Update accordingly.
7750 (write_attr_case, write_const_num_delay_slots): Write the name of
7751 an insn next to its case statement.
7752 * genoutput.c (data): Add a filename field.
7753 (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
7754 (output_insn_data): Print the location of each insn definition.
7755 * genrecog.c (write_action): Print the name of an insn above
7756 the statement that returns its code.
7757
1e5f1716
AP
77582004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
7759
7760 * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
7761 * config/libgloss.h: Likewise.
7762 * config/arm/arm.c (arm_gen_load_multiple): Likewise.
7763 * c4x/c4x-modes.def: Likewise.
7764 * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
7765 (c4x_rptb_nop_p): Likewise.
7766 (c4x_rptb_valid_p): Likewise.
7767 (c4x_rptb_insert): Likewise.
7768 (c4x_address_conflict): Likewise.
7769 * config/c4x/c4x.md: Likewise.
7770 * config/frv/frv.md: Likewise.
7771 * config/i386/athlon.md: Likewise.
7772 * config/i386/i386.md: Likewise.
7773 * config/i386/predicates.md: Likewise.
7774 * config/ia64/ia64.c: Likewise.
7775 * config/ia64/itanium1.md: Likewise.
7776 * config/ia64/itanium2.md: Likewise.
7777 * config/iq2000/iq2000.md: Likewise.
7778 * config/mcore/mcore.c: Likewise.
7779 * config/mips/mips.c: Likewise.
7780 * config/mips/r3900.h: Likewise.
7781 * config/mips/sb1.md: Likewise.
7782 * config/pa/milli64.S: Likewise.
7783 * config/pa/pa.c: Likewise.
7784 * config/pa/pa.h: Likewise.
7785 * config/rs6000/8540.md: Likewise.
7786
9bcc9490
DB
77872004-08-13 Daniel Berlin <dberlin@dberlin.org>
7788
7789 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
7790
68fe56fc
R
77912004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
7792
7793 * sh.md (cbranch define_delay) Use cond_delay_slot for
7794 non-anulled condition too.
7795
85d346f1
DE
77962004-08-12 David Edelsohn <edelsohn@gnu.org>
7797
7798 * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
7799 * config/rs6000/rs6000.h (PREDICATE_CODES): Add
7800 any_parallel_operand, lmw_operation, stmw_operation,
a688b3ac 7801 mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand.
85d346f1
DE
7802 * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
7803 any_parallel_operand.
7804 (return_and_restore_fpregs_{si,di}): Same.
7805
47d2cee5
ZW
78062004-08-12 Zack Weinberg <zack@codesourcery.com>
7807
7808 * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
7809 if pred->singleton != PARALLEL, issue a warning and pretend it was.
7810 Also issue a warning for any predicate we don't know about.
7811
8fe75e43
RH
78122004-08-12 Richard Henderson <rth@redhat.com>
7813
7814 * config/i386/i386.c (internal_label_prefix): Export.
7815 (internal_label_prefix_len, struct ix86_address,
7816 ix86_decompose_address, maybe_get_pool_constant,
7817 ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
7818 memory_address_length): Export.
47d2cee5 7819 (any_fp_register_operand, fp_register_operand,
8fe75e43 7820 register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
47d2cee5 7821 x86_64_general_operand, x86_64_szext_general_operand,
8fe75e43
RH
7822 x86_64_nonmemory_operand, x86_64_movabs_operand,
7823 x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
7824 x86_64_zext_immediate_operand, const_int_1_31_operand,
7825 symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
7826 tls_symbolic_operand, global_dynamic_symbolic_operand,
7827 local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
7828 local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
7829 constant_call_address_operand, const0_operand, const1_operand,
7830 const248_operand, const_0_to_3_operand, const_0_to_7_operand,
7831 const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
7832 shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
7833 general_no_elim_operand, nonmemory_no_elim_operand,
7834 index_register_operand, q_regs_operand, flags_reg_operand,
7835 non_q_regs_operand, zero_extended_scalar_load_operand,
7836 vector_move_operand, no_seg_address_operand, sse_comparison_operator,
47d2cee5 7837 ix86_comparison_operator, ix86_carry_flag_operator,
8fe75e43
RH
7838 fcmov_comparison_operator, promotable_binary_operator,
7839 cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
47d2cee5 7840 mult_operator, div_operator, arith_or_logical_operator,
8fe75e43
RH
7841 memory_displacement_operand, cmpsi_operand, long_memory_operand,
7842 aligned_operand): Move to predicates.md as define_predicates.
7843 (tls_symbolic_operand_1): Remove.
7844 (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
7845 (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
7846 (legitimize_address): Merge tls_symbolic_operand contents.
7847 (ix86_expand_move): Likewise.
7848 * config/i386/i386-protos.h: Update for exports.
7849 * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
7850 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
7851 * config/i386/i386.md: Include predicates.md.
7852 * config/i386/predicates.md: New file.
7853
ea3d83a7
MM
78542004-08-13 Mark Mitchell <mark@codesourcery.com>
7855
7856 PR c++/16924
7857 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
7858 SYMBOL_REF_DECL.
7859 (i386_pe_mark_dllimport): Likewise.
7860 (i386_pe_encode_section_info): Likewise, when overriding
7861 dllimport attribute.
7862
414adbdd
GK
78632004-08-12 Geoffrey Keating <geoffk@apple.com>
7864
7865 * configure.ac: When testing for flex, nm, ar, and bison, check
7866 that they will actually be built.
7867 * configure: Regenerate.
7868
c5443745
UW
78692004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
7870
7871 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
7872 (MOVE_MAX_PIECES): Define.
7873
8fa5469d
DP
78742004-08-12 Devang patel <dpatel@apple.com>
7875
7876 * dbxout.c (dbxout_begin_prologue): New function.
7877 (dbx_debug_hooks): Use new begin prologue hook.
7878 (dbxout_function_end): Emit N_ENSYM.
7879 * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
47d2cee5 7880
b0b343db
JJ
78812004-08-12 Janis Johnson <janis187@us.ibm.com>
7882
e390eb0a
JJ
7883 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
7884 argument is float*.
7885
e34b6648
JJ
7886 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
7887 for vec_dss.
7888
b0b343db
JJ
7889 * doc/extend.texi (AltiVec builtins): Fix description for recent
7890 changes. Update operation list to match current support.
7891
adf39f8f
AK
78922004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
7893
7894 * config/s390/s390.c (struct s390_frame_layout): New struct as element
7895 of struct machine_function.
7896 (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
7897 changed all uses.
7898 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
7899 changed all uses.
7900 (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
7901 (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
7902 (s390_frame_area, s390_register_info): New functions.
7903 (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
7904 for base register.
7905 (s390_return_addr_rtx, s390_return_address_offset)
7906 (s390_va_start, s390_gimplify_va_arg)
7907 (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
7908 layouts.
7909 (s390_frame_info): Functionality partly moved to s390_register_info.
7910 Made adaptions for new stack layout.
7911 (save_gprs, restore_gprs): Changed meaning of second parameter and
7912 adapted all callers.
7913
7914 * config/s390/s390.h (s390_backchain_string): New global variable.
7915 (MASK_BACKCHAIN): Removed definition.
7916 (TARGET_BACKCHAIN): Changed check.
7917 (TARGET_KERNEL_BACKCHAIN): New macro.
7918 (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
7919 (TARGET_OPTIONS): Added "backchain", "no-backchain" and
7920 "kernel-backchain".
7921 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
7922
7923 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
7924 as condition. Adjusted for new stack layout.
7925
7926 * doc/invoke.texi: Added documentation for new option
7927 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
7928 "-mno-backchain".
7929
db151e9d
PB
79302004-08-12 Paul Brook <paul@codesourcery.com>
7931
7932 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
7933 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
7934
02b75262
DD
79352004-08-12 David Daney <ddaney@avtrex.com>
7936
db151e9d 7937 * java/gcj.texi: Add subsection on signal usage.
02b75262 7938
f64d6991
DE
79392004-08-12 David Edelsohn <edelsohn@gnu.org>
7940
7941 * expr.c (move_by_pieces): Set alignment for move to minimum of
7942 MOVE_MAX_PIECES mode alignment and the largest non-slow mode
7943 alignment, but not less than the original alignment.
7944 (move_by_pieces_ninsns): Same.
7945 (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
7946 (store_by_pieces_1): Same.
7947
c597ef4e
DN
79482004-08-12 Diego Novillo <dnovillo@redhat.com>
7949
7950 PR tree-optimization/16867
7951 * tree.c (is_global_var): New function.
7952 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
7953 Call is_global_var.
7954 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
7955 Update all users.
7956 (is_global_var): Declare.
7957 * tree-dfa.c (dump_variable): Display global and addressable
7958 attributes.
7959 (add_referenced_var): Clarify documentation when marking
7960 variables call-clobbered.
7961 * tree-flow-inline.h (is_call_clobbered): Call is_global_var
7962 instead of needs_to_live_in_memory.
7963 (mark_call_clobbered): If the variable is a tag, mark it
7964 DECL_EXTERNAL.
7965 * tree-gimple.c (is_gimple_reg): Don't check for
7966 TREE_ADDRESSABLE.
7967 (is_gimple_non_addressable): Likewise.
7968 * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
7969 needs to be marked call-clobbered.
7970 (setup_pointers_and_addressables): Call is_global_var instead
7971 of needs_to_live_in_memory.
7972 * tree-ssa-dce.c (need_to_preserve_store): Remove.
7973 Update all users with is_global_var.
7974 (mark_stmt_if_obviously_necessary): Fix processing of aliased
7975 stores. Don't check the virtual definitions. Rather, check
7976 whether the store is going into global memory.
7977 (find_obviously_necessary_stmts): Get the symbol from the PHI
7978 result.
7979 * tree-ssa-operands.c (get_call_expr_operands): Do not add
7980 clobbering may-defs if the call does not have side effects.
7981
ab5c8549
JJ
79822004-08-12 Jakub Jelinek <jakub@redhat.com>
7983
7984 PR c++/16276
7985 * output.h (default_function_rodata_section,
7986 default_no_function_rodata_section): New prototypes.
7987 * target.h (struct gcc_target): Add asm_out.function_rodata_section.
7988 * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
7989 (TARGET_ASM_OUT): Add it.
7990 * varasm.c (default_function_rodata_section,
7991 default_no_function_rodata_section): New functions.
7992 * final.c (final_scan_insn): Call
7993 targetm.asm_out.function_rodata_section instead of
7994 readonly_data_section.
7995 * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
7996 * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
7997 * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
7998 * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
7999 Likewise.
8000 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
8001 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
8002 Likewise.
8003 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
8004 Likewise.
8005 * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
8006 * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
8007 * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
8008
5cf58f28
PB
80092004-08-12 Paul Brook <paul@codesourcery.com>
8010
8011 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
8012 frame info.
8013 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
8014 DWARF2_UNWIND_INFO.
8015
87e184d1
BE
80162004-08-12 Ben Elliston <bje@au.ibm.com>
8017
8018 PR target/16286
8019 * config/rs6000/altivec.h: Change vector to __vector throughout.
8020 (Except for the `vector' macro itself).
8021
e543e219
ZW
80222004-08-12 Zack Weinberg <zack@codesourcery.com>
8023
8024 * genpreds.c: Add capability to generate predicate bodies as
8025 well as function prototypes. Write function prototypes for
8026 the generic predicates too.
8027 (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
8028 (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
8029 (write_match_code, write_predicate_expr, write_one_predicate_function)
8030 (parse_option): New functions.
8031 (output_predicate_decls): Delete.
8032 (main): Read the machine description, process DEFINE_PREDICATE or
8033 DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
8034 as appropriate.
8035
8036 * genrecog.c (struct decision_test): Replace index with
8037 struct pred_data pointer.
8038 (next_index): Remove, unused.
8039 (pred_table, preds, special_mode_pred_table): Delete.
8040 (compute_predicate_codes, process_define_predicate): New functions.
8041 (validate_pattern, add_to_sequence, write_switch): Update for
8042 new data structures.
8043 (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
8044 Check both error_count and have_error.
8045
8046 * gensupport.c (in_fname, first_predicate): New globals.
8047 (define_pred_queue, define_pred_tail): New RTL-pattern queue.
8048 (predicate_table, last_predicate, old_pred_table)
8049 (old_special_pred_table): New statics.
8050 (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
8051 (add_predicate, init_predicate_table): New functions.
8052 (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
8053 (init_md_reader_args_cb): Use the global in_fname. No need to zero
8054 it or max_include_len. Call init_predicate_table.
8055 (read_rtx): Run the predicate queue after the attribute queue
8056 but before all the others.
8057 * gensupport.h (in_fname, struct pred_data, first_predicate)
8058 (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
8059 * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
8060 (DEFINE_SPECIAL_PREDICATE): New RTL codes.
8061 * dummy-conditions.c: Don't include bconfig.h, system.h,
8062 coretypes.h, tm.h, or system.h. Do include stddef.h.
8063 Duplicate declaration of struct c_test from gensupport.h.
8064
8065 * Makefile.in (OBJS-common): Add insn-preds.o.
8066 (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
8067 (insn-preds.c, insn-preds.o): New rules.
8068 (s-preds): Also generate insn-preds.c.
8069 (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
8070 Update dependencies.
8071 (print-rtl.o, print-rtl1.o): Correct dependencies.
8072
8073 * recog.h: Delete prototypes of predicate functions.
8074
8075 * doc/md.texi (Predicates): New section with complete
8076 documentation of operand/operator predicates. Remove some
8077 incomplete documentation of predicates from other places.
8078 * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
8079 PREDICATE_CODES; indicate that both are deprecated in favor
8080 of define_predicate/define_special_predicate.
8081
8082 * config/ia64/ia64.c: All predicate function definitions moved
8083 to ia64.md, except
8084 (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
8085 (ia64_expand_load_address, ia64_expand_move):
8086 Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
8087
8088 * config/ia64/ia64.md: All predicates now defined here.
8089 (symbolic_operand): Is now a special predicate.
8090
8091 * config/ia64/ia64.h: Declare ia64_section_threshold.
8092 (PREDICATE_CODES): Delete.
8093
174283a3
RH
80942004-08-12 Richard Henderson <rth@redhat.com>
8095
8096 * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
8097 * c-semantics.c (add_stmt): Set it.
8098 * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
8099 before instantiating a variable sized type.
8100
15931954
RH
81012004-08-12 Richard Henderson <rth@redhat.com>
8102
8103 * stor-layout.c (round_up, round_down): Move ...
e543e219 8104 * fold-const.c (round_up, round_down): ... here. Use
15931954
RH
8105 multiple_of_p to avoid any arithmetic at all.
8106
57d1dd87
RH
81072004-08-12 Richard Henderson <rth@redhat.com>
8108
8109 * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
8110 (gimplify_init_ctor_preeval_1): New.
8111 (gimplify_init_ctor_preeval): New.
8112 (gimplify_init_ctor_eval): New.
8113 (gimplify_init_constructor): Use them. Always gimplify the LHS
8114 object first.
8115
46e34f96
ZL
81162004-08-12 Ziemowit Laski <zlaski@apple.com>
8117
8118 (This patch is part of merge of objc-improvements-branch
8119 into mainline.)
8120
8121 * doc/frontends.texi: Mention Objective-C++ in addition to
8122 Objective-C.
8123 * doc/install.texi: Add 'obj-c++' to list of configurable
8124 languages.
8125 * doc/invoke.texi: Rename Objective-C option headings to
8126 indicate they also apply to Objective-C++. List file
8127 extensions for Objective-C++ sources. Mention that
8128 ObjC and ObjC++ compilations may also use C and C++ options,
8129 respectively. Point users to doc/standards.texi for
8130 further info on ObjC and ObjC++.
8131 * doc/sourcebuild.texi: Mention the objcp/ directory and
8132 the Objective-C++ sources it contains.
8133 * doc/standards.texi: Update link to Apple ObjC site;
8134 add link to gcc readings.html WWW doc.
8135
07f12d8b
AM
81362004-08-12 Alan Modra <amodra@bigpond.net.au>
8137
8138 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
8139 and 2004-07-14 changes.
8140
89aa5a20
PB
81412004-08-12 Paul Brook <paul@codesourcery.com>
8142
8143 * doc/invoke.texi: Fix typo.
8144
5079843a
DP
81452004-08-11 Devang Patel <dpatel@apple.com>
8146
8147 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
8148 and -no_dead_strip_inits_and_terms.
8149 (LINK_SPEC): Same.
8150 * doc/invoke.texi (Darwin Options): Document -dead_strip and
8151 -no_dead_strip_inits_and_terms.
e543e219 8152
876f13b0
PB
81532004-08-11 Paul Brook <paul@codesourcery.com>
8154
8155 * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
8156 (arm_load_pic_register): ... to this.
8157 * config/arm/arm.c (arm_finalize_pic): Rename ...
8158 (arm_load_pic_register): ... to this. Always output insns at the
8159 current location. Load via low reg in thumb mode.
8160 (arm_expand_prologue): Call arm_load_pic_register.
8161 (thumb_expand_prologue): Ditto.
8162 * config/arm/arm.h (FINALIZE_PIC): Remove.
8163 * config/arm/arm.md (builtin_setjmp_receiver): Call
8164 arm_load_pic_register.
8165
57934c39
PB
81662004-08-11 Paul Brook <paul@codesourcery.com>
8167
8168 * arm.c (thumb_force_lr_save): Add prototype.
8169 (thumb_compute_save_reg_mask): New function.
8170 (thumb_find_work_register): New function.
8171 (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
8172 (thumb_unexpanded_epilogue): Ditto. Remove redundant code.
8173 Don't clobber r3 when removing pretend args.
8174 (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
8175 (thumb_output_function_prologue): Use new functions.
8176 (thumb_set_return_address): Use thumb_compute_save_reg_mask.
8177 * arm.h (THUMB_REG_PUSHED_P): Remove.
8178
af874237
JW
81792004-08-11 James E Wilson <wilson@specifixinc.com>
8180
8181 PR rtl-optimization/16490
8182 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
8183 global_live_at_end for new basic block if already set for other blocks.
8184
c1618c0c
DE
81852004-08-11 David Edelsohn <edelsohn@gnu.org>
8186
8187 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
8188
8189 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
8190 (mfcr rlwinm rlwinm patterns): Set length to 12.
8191
1a24f92f
AM
81922004-08-11 Andrew MacLeod <amacleod@redhat.com>
8193
8194 * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
8195 get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
8196 (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
8197 (start_ssa_stmt_operands): Delete.
e543e219 8198 * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
1a24f92f
AM
8199 struct stmt_operands_d.
8200 (build_ssa_operands): New extern entry point.
e543e219 8201 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
1a24f92f
AM
8202 building code, replace with create_ssa_artficial_load_stmt().
8203 * tree-ssa-operands.c (struct voperands_d): Delete.
8204 (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
8205 (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
e543e219 8206 (free_uses, free_defs, free_vuses, free_v_may_defs,
1a24f92f
AM
8207 free_v_must_defs): Remove dealloc parameter.
8208 (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
8209 (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
8210 finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
8211 vector comparisons, ssa_name reuse, and allocations here.
8212 (verify_start_operands): Delete.
8213 (finalize_ssa_stmt_operands): Set new operands by calling finalize
8214 routines.
8215 (start_ssa_stmt_operands): Move from tree-flow-inline.h.
8216 (append_def, append_usei): Simplify to simple accumulation.
8217 (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
8218 duplicates and simple accumulation.
8219 (free_ssa_operands): Free vectors in a stmt_operand structure.
8220 (build_ssa_operands): New. Create a new stmt_operand structure from
e543e219 8221 a stmt and an old set of stmt_operands.
1a24f92f
AM
8222 (get_stmt_operands): Simplify and call build_ssa_operands.
8223 (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
8224 get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
8225 add_call_read_ops): Don't pass prev_vops around anymore.
8226 (note_addressable): Return if no stmt annotation.
8227 (copy_virtual_operands): Access v_may_def operands through a struct.
8228 (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
8229 hash tables without treating the stmt as a real stmt.
8230 * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
8231 v_may_def def and use through a struct instead of 2 array elements.
8232 (struct v_may_def_optype_d): Use v_may_def_operand_type.
8233 (struct stmt_operands_d): New. Struct for storing all operand vectors.
8234
a77655b1
NC
82352004-08-11 Nick Clifton <nickc@redhat.com>
8236
8237 * config/arm/arm.c (arm_is_longcall_p): Update comment describing
8238 this funciton's behaviour. Return true when the current function
8239 has a section attribute and -mlong-calls is in effect.
8240 * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
8241 short-call marker when -mlong-calls is in effect and the function
8242 has a section attribute.
8243
6f4a43e0
ZW
82442004-08-10 Zack Weinberg <zack@codesourcery.com>
8245
8246 * stmt.c (expand_return): If asked to return the RESULT_DECL,
8247 just call expand_value_return on result_rtl.
8248
1a186ec5
RH
82492004-08-10 Richard Henderson <rth@redhat.com>
8250
8251 * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
8252 * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
8253 * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
8254 (add_location_or_const_value_attribute): ... not here. Use
8255 loc_descriptor_from_tree if possible.
8256 (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
8257 Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
8258 values specially.
8259 (loc_descriptor_from_tree): New. Update callers.
8260 * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
8261 * gimplify.c (gimplify_decl_expr): Lower variable sized types to
8262 pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
8263 (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
8264 and BUILT_IN_STACK_RESTORE.
8265 (gimplify_expr): Lower DECL_VALUE_EXPR decls.
8266 * stmt.c (expand_stack_alloc): Remove.
8267 * tree-mudflap.c (mx_register_decls): Don't look for
8268 BUILT_IN_STACK_ALLOC.
8269 * tree-nested.c (convert_local_reference): Likewise.
8270 * tree.h (DECL_VALUE_EXPR): New.
8271
7109c195
RH
82722004-08-10 Richard Henderson <rth@redhat.com>
8273
bf4ccdd6
RH
8274 * stor-layout.c (round_up): Check for 0/1 before dividing.
8275 (round_down): Likewise.
8276
7109c195
RH
8277 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
8278
b3f8d95d
MM
82792004-08-09 Mark Mitchell <mark@codesourcery.com>
8280
8281 * config.gcc (arm*-*-eabi*): New target.
8282 * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
8283 (TARGET_LIB_INT_CMP_BIASED): Likewise.
8284 * expmed.c (expand_divmod): Try a two-valued divmod function as a
8285 last resort.
8286 * gthr.h: Remove bogus tokens at end of #pragma.
8287 * optabs.c (expand_twoval_binop_libfunc): New function.
8288 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
8289 (prepare_float_lib_cmp): Try reversing the condition.
8290 (debug_optab_libfuncs): New function.
8291 * optabs.h (expand_twoval_binop_libfunc): Declare.
8292 * config/arm/arm.c (arm_init_libfuncs): New function.
8293 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
8294 (TARGET_INIT_LIBFUNCS): Define it.
8295 * config/arm/arm.h (TARGET_BPABI): New macro.
8296 * config/arm/arm-protos.h
8297 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
8298 * config/arm/bpabi.S: New file.
8299 * config/arm/bpabi.c: Likewise.
8300 * config/arm/bpabi.h: Likewise.
8301 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
8302 (__aeabi_drsub): Likewise.
8303 (__aeabi_dsub): Likewise.
8304 (__aeabi_dadd): Likewise.
8305 (__aeabi_ui2d): Likewise.
8306 (__aeabi_i2d): Likewise.
8307 (__aeabi_f2d): Likewise.
8308 (__aeabi_dmul): Likewise.
8309 (__aeabi_ddiv): Likewise.
8310 (__aeabi_cdrcmple): Likewise.
8311 (__aeabi_cdcmpeq): Likewise.
8312 (__aeabi_cdcmple): Likewise.
8313 (__aeabi_dcmpeq): Likewise.
8314 (__aeabi_dcmplt): Likewise.
8315 (__aeabi_dcmple): Likewise.
8316 (__aeabi_dcmpge): Likewise.
8317 (__aeabi_dcmpgt): Likewise.
8318 (__aeabi_dcmpun): Likewise.
8319 (__aeabi_d2iz): Likewise.
8320 (__aeabi_d2uiz): Likewise.
8321 (__aeabi_d2f): Likewise.
8322 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
8323 (__aeabi_frsub): Likewise.
8324 (__aeabi_fsub): Likewise.
8325 (__aeabi_fadd): Likewise.
8326 (__aeabi_ui2f): Likewise.
8327 (__aeabi_i2f): Likewise.
8328 (__aeabi_fmul): Likewise.
8329 (__aeabi_fdiv): Likewise.
8330 (__aeabi_cfrcmple): Likewise.
8331 (__aeabi_cfcmpeq): Likewise.
8332 (__aeabi_cfcmple): Likewise.
8333 (__aeabi_fcmpeq): Likewise.
8334 (__aeabi_fcmplt): Likewise.
8335 (__aeabi_fcmple): Likewise.
8336 (__aeabi_fcmpge): Likewise.
8337 (__aeabi_fcmpgt): Likewise.
8338 (__aeabi_fcmpun): Likewise.
8339 (__aeabi_f2iz): Likewise.
8340 (__aeabi_f2uiz): Likewise.
8341 * config/arm/lib1funcs.asm (ARM_CALL): New macro.
8342 (__aeabi_uidivmod): New function or alias.
8343 (__aeabi_idivmod): Likewise.
8344 (__aeabi_idiv0): Likewise.
8345 (__aeabi_ldiv0): Likewise.
8346 (__aeabi_llsr): Likewise.
8347 (__aeabi_lasr): Likewise.
8348 (__aeabi_llsl): Likewise.
8349 (bpabi.S): Include it.
8350 * config/arm/libgcc-bpabi.ver: New file.
8351 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
8352 (LINK_SPEC): Remove.
8353 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
8354 __aeabi_ulcmp.
8355 * config/arm/t-bpabi: New file.
8356 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
8357 (TARGET_LIB_INT_CMP_BIASED): Likewise.
6f4a43e0 8358
fba73eb1
DE
83592004-08-10 David Edelsohn <edelsohn@gnu.org>
8360
8361 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
8362 * config/rs6000/rs6000.md (clrmemsi): New pattern.
8363 * config/rs6000/rs6000.c (expand_block_clear): New function.
8364 (expand_block_move): Convert alignment to bits. Use SImode and
8365 HImode for unaligned addresses if not STRICT_ALIGNMENT.
8366
83672004-08-10 Caroline Tice <ctice@apple.com>
c295317d
CT
8368
8369 * varasm.c (unlikely_section_label): New global variable.
8370 (unlikely_text_section_name): New global variable.
8371 (text_section): Remove alignment statement.
6f4a43e0 8372 (unlikely_text_section): Remove alignment statement; use
c295317d
CT
8373 unlikely_section_label rather than hard-coded string.
8374 (assemble_start_function): Initialize unlikely_section_label and
8375 unlikely_text_section_name; make sure cold section is properly
8376 aligned at start of function; output unlikely_section_label if
8377 appropriate.
8378
68f9c5e2
UW
83792004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
8380
8381 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
8382 * config/s390/s390.c (s390_canonicalize_comparison): New function.
8383 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
8384 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
8385 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
8386 ("*tmqi_mem"): Remove SUBREG from pattern.
8387 ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
8388 ("*andsi3_cconly"): Likewise.
6f4a43e0 8389
22116d84
L
83902004-08-10 H.J. Lu <hongjiu.lu@intel.com>
8391
8392 PR target/16909
8393 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
8394
c75095b2
JJ
83952004-08-10 Janis Johnson <janis187@us.ibm.com>
8396
8397 * doc/sourcebuild.texi (compat testing): Document available test
8398 framework commands. Use the preferred spelling of DejaGnu.
8399
98975653
DB
84002004-08-10 Daniel Berlin <dberlin@dberlin.org>
8401
8402 * lambda.h: Add matrix type, and prototypes for remainder of
8403 matrix and vector functions.
8404 (lambda_vector_mult_const): New function.
8405 (lambda_vector_negate): Ditto.
8406 (lambda_vector_add): Ditto.
8407 (lambda_vector_add_mc): Ditto.
8408 (lambda_vector_copy): Ditto.
8409 (lambda_vector_zerop): Ditto.
8410 (lambda_vector_equal): Ditto.
8411 (lambda_vector_min_nz): Ditto.
8412 (lambda_vector_first_nz): Ditto.
8413 (lambda_vector_matrix_mult): Ditto.
8414 * lambda-mat.c: New file.
8415 * Makefile.in (lambda-mat.o): New.
8416
68b9f53b
AM
84172004-08-10 Andrew MacLeod <amacleod@redhat.com>
8418
8419 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
8420 after linking stmt into the program.
8421 (bsi_remove): Don't call modify_stmt.
6f4a43e0 8422 * tree-complex.c (update_complex_assignment,
68b9f53b 8423 expand_complex_comparison): Call modify_stmt after changing the stmt.
6f4a43e0 8424 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
68b9f53b
AM
8425 removing the stmt.
8426 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
8427 the stmt, and only if needed.
8428 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
8429 expression.
8430 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
8431 (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
8432 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
6f4a43e0 8433 (eliminate_redundant_computations): Don't pass an annotation. Call
68b9f53b
AM
8434 modify_stmt rather than setting the annotation directly.
8435 (record_equivalences_from_stmt): Remove unused local 'j'.
8436 (cprop_operand): Take a stmt rather than an annotation as a parameter.
8437 Call modify_stmt.
8438 (cprop_into_stmt): Pass stmt rather than annotation.
8439 (update_rhs_and_lookup_avail_expr): Call modify_stmt.
6f4a43e0 8440 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
68b9f53b
AM
8441 modify_stmt.
8442 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
8443
01c98570
JM
84442004-08-10 Jason Merrill <jason@redhat.com>
8445
6c9c4526 8446 PR middle-end/16948
01c98570
JM
8447 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
8448 the RESULT_DECL.
8449
b2ddaebb
GK
84502004-08-10 Geoffrey Keating <geoffk@apple.com>
8451
8452 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
8453 hash function.
8454
23657388
RS
84552004-08-10 Roger Sayle <roger@eyesopen.com>
8456
8457 * config/mips/mips.md: New reciprocal square root patterns that
8458 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
8459
c9ca9b88
PB
84602004-08-10 Paul Brook <paul@codesourcery.com>
8461
8462 * config/arm/arm-protos.h (arm_set_return_address,
8463 thumb_set_return_address): Add prototypes.
8464 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
8465 * config/arm/arm.c (arm_compute_func_type,
8466 use_return_insn, arm_compute_save_reg0_reg12_mask,
8467 arm_compute_save_reg_mask, arm_output_function_prologue,
8468 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
8469 current_function_calls_eh_return.
8470 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
8471 old eh code.
8472 (arm_set_return_address, thumb_set_return_address): New functions.
8473 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
8474 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
8475 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
8476 (epilogue): Use the stackadj register.
8477 (eh_return, arm_eh_return, thumb_eh_return): New pattern.
8478
45d78e7f
JJ
84792004-08-10 Jakub Jelinek <jakub@redhat.com>
8480
8481 PR target/3144
8482 * expr.c (move_by_pieces_ninsns): Add max_size argument.
8483 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
8484 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
8485 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
8486 but using MOVE_RATIO.
8487 (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
8488 (can_store_by_pieces): Change max_size type to unsigned int.
8489 (store_by_pieces_1): Likewise. Pass max_size to
8490 move_by_pieces_ninsns.
8491 * config/s390/s390.h (STORE_BY_PIECES_P): Define.
8492 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
8493 to move_by_pieces_ninsns.
8494 (STORE_BY_PIECES_P): Define.
8495 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
8496 to move_by_pieces_ninsns.
8497 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
8498
8499 * config/i386/i386.h (CLEAR_RATIO): Define.
8500
25f3e06c
PB
85012004-08-09 Paolo Bonzini <bonzini@gnu.org>
8502
8503 * expr.c (expand_expr_real_1): Add back code that was not dead.
8504
6a3203c8
AP
85052004-08-09 Andrew Pinski <apinski@apple.com>
8506
8507 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
8508 which is found to be compatible before returning the aliasing set.
8509
b9bfca81
DJ
85102004-08-09 Daniel Jacobowitz <dan@debian.org>
8511
8512 * ggc-zone.c (struct alloc_zone): Add statistics counters.
8513 (always_collect): New flag.
8514 (ggc_alloc_zone_1): Update statistics support. Don't include
8515 overhead in allocated counter.
8516 (sweep_pages): Update allocated counter for large pages. Don'y
8517 include overhead.
8518 (ggc_collect_1): Always collect.
8519 (ggc_collect): Honor always_collect flag. Sum all zones to decide
8520 whether to collect.
8521 (SCALE, LABEL): New macros.
8522 (ggc_print_statistics): Add statistics support.
8523
fdded401
RS
85242004-08-09 Roger Sayle <roger@eyesopen.com>
8525
8526 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
8527 (init_expmed): Fix potential overrun problem with "all.reg".
8528 (expand_sdiv2_pow2): Add an alternate implementation for signed
8529 division, if the target provides a suitable conditional move insn.
8530
9d8646d7
PB
85312004-08-09 Paul Brook <paul@codesourcery.com>
8532 Richard Henderson <rth@redhat.com>
8533
8534 * unwind-dw2.c (uw_install_context_1): Update target saved stack
8535 pointer.
8536
d37e6b50
GK
85372004-08-09 Geoffrey Keating <geoffk@apple.com>
8538
8539 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
8540 Check DATA limit only if there's no AS limit. Ignore insanely
8541 low DATA limits.
8542 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
8543 but take care that the AS limit isn't overrun.
8544 * doc/invoke.texi: Update documentation of min-heapsize parameter.
8545
56b043c8
JL
85462004-08-09 Jeff Law <law@redhat.com>
8547
8548 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
8549 (tree-ssa-threadupdate.o): Add dependencies.
8550 * tree-ssa-threadupdate.c: New file.
8551 * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
8552 (rewrite_vars_out_of_ssa): Remove prototype.
8553 (cleanup_tree_cfg): Returns a bool.
8554 * tree.h (thread_through_all_blocks): Prototype.
8555 * tree-outof-ssa.c (SSANORM_*): Move into here.
8556 (remove_ssa_form): Now static.
8557 (rewrite_vars_out_of_ssa): Kill.
8558 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
8559 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
8560 (remove_ssa_form, register_partitions_for_vars): Kill declarations.
8561 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
8562 anything was changed.
8563 * tree-phinodes.c (add_phi_arg): Get the block for the PHI
8564 from the PHI's annotation rather than the edge associated with
8565 the new argument.
8566 * tree-ssa-dom.c (redirection_edges): Kill.
8567 (redirect_edges_and_update_ssa_graph): Kill.
8568 (tree_ssa_dominator_optimize): Do not reset forwardable flag
8569 for blocks anymore. Do not initialize redirection_edges.
8570 Call thread_through_all_blocks. Simplify code for cleanup
8571 of the CFG and iterating. No longer call cleanup_tree_cfg
8572 outside the iteration loop.
8573 (thread_across_edge): No longer mess with forwardable blocks.
8574
9b305d55
ZW
85752004-08-09 Zack Weinberg <zack@codesourcery.com>
8576
8577 * explow.c (memory_address): Use memory_address_p.
8578 * recog.c (general_operand): Likewise.
8579 * regrename.c: No need to define REG_OK_STRICT.
8580
27fb79ad
SB
85812004-08-09 Steven Bosscher <stevenb@suse.de>
8582
8583 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
8584 New timers.
8585 * gcse.c: Include timevar.h.
8586 (const_prop_count, copy_prop_count): Rename to global_const_prop_count
8587 and global_copy_prop_count.
8588 (local_const_prop_count, local_copy_prop_count): New static globals.
8589 (gcse_main): Set the right timevar for each pass.
8590 (cprop_jump): Increment global_const_prop_count when a constant is
8591 propagated. Add "GLOBAL" to dump output.
8592 (cprop_insn): Increment global_const_prop_count when a constant is
8593 propagated, or global_copy_prop_count when a copy is propagated.
8594 (do_local_cprop): Likewise for local_const_prop_count and
8595 local_copy_prop_count.
8596 (one_cprop_pass): Initialize const/cprop counters to zero.
8597 Print out results of local and global const/cprop separately.
8598 (bypass_block): Break over-length line.
702d4b73
SB
8599 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
8600 for bb-reorder.o and tracer.o.
27fb79ad 8601
7efcb746
PB
86022004-08-09 Paolo Bonzini <bonzini@gnu.org>
8603
8604 * Makefile.in (GTFILES): Remove stmt.c
8605 (stmt.o): Do not depend on gt-stmt.h.
8606 * emit-rtl.c (emit_line_note): Do not call
8607 set_file_and_line_for_stmt.
8608 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
8609 do everything.
8610 * function.c (free_after_parsing): Do not free STMT field.
8611 (allocate_struct_function): Do not call init_stmt_for_function.
8612 (assign_stack_temp_for_type): Do not accept values of keep
8613 other than 0 or 1.
8614 (init_temp_slots): Do not initialize removed variables.
8615 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
8616 and X_VAR_TEMP_SLOT_LEVEL fields.
8617 * rtl.h (set_file_and_line_for_stmt): Remove.
8618 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
8619 struct stmt_status, cond_stack, case_stack, nesting_stack,
8620 nesting_depth, emit_locus, set_file_and_line_for_stmt,
8621 same_case_target_p, init_stmt_for_function, emit_nop,
8622 expand_start_cond, expand_start_elseif, expand_start_else,
8623 expand_elseif, expand_end_cond): Remove.
8624 (preserve_subexpressions_p): Remove references to CFUN->STMT.
8625 (expand_start_case, expand_end_case_type): Remove, merge into...
8626 (expand_case): ... this one, including other bits from
8627 expand_expr_real_1. Inline same_case_target_p. Turn members
8628 of CASE_STACK into local variables.
8629 (emit_case_bit_tests): Inline same_case_target_p.
8630 (add_case_node): Add HEAD argument, return new head of the list,
8631 do not handle default label here.
8632 * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
8633 expand_start_elseif, current_nesting_level, expand_start_case,
8634 expand_end_case_type, expand_end_case, add_case_node,
8635 init_stmt_for_function, expand_elseif): Remove prototypes.
8636 (expand_case): Add prototype.
8637
c4d70ce3
PB
86382004-08-09 Paolo Bonzini <bonzini@gnu.org>
8639
8640 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
8641
86422004-08-09 Paolo Bonzini <bonzini@gnu.org>
e5bacf32
PB
8643
8644 * expr.c (var_rtx): Remove.
8645 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
8646 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
8647 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
8648 Abort.
8649 (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
8650 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
8651 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
8652
d72372e4
MH
86532004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
8654 Ayal Zaks <zaks@il.ibm.com>
8655
8656 * common.opt (freschedule-modulo-scheduled-loops): New flag.
8657 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
8658 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
8659 when -freschedule-modulo-scheduled-loops flag is not specified.
8660 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
8661 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
8662 More accurate placing of insn in row of partial schedule.
8663 (ps_insn_find_column): New function.
8664 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
8665 * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
8666 (schedule_region): Use sched_is_disabled_for_current_region_p.
8667 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
8668
0737fbff
L
86692004-08-07 H.J. Lu <hongjiu.lu@intel.com>
8670
8671 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
8672 change.
8673
11c4576f
L
86742004-08-07 H.J. Lu <hongjiu.lu@intel.com>
8675
8676 * config/i386/i386.c (ix86_expand_clrmem): Properly call
8677 gen_strset for 64bit target.
8678
34def210
OH
86792004-08-07 Olivier Hainque <hainque@act-europe.fr>
8680
8681 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
8682
5201931e
JM
86832004-08-07 Jason Merrill <jason@redhat.com>
8684
cc77ae10
JM
8685 Make return in memory explicit.
8686 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
8687 (assign_parm_find_data_types): Remove code for old front end
8688 invisible reference handling.
8689 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
8690 (expand_function_end): Likewise.
8691 * gimplify.c (gimplify_return_expr): Handle a dereferenced
8692 RESULT_DECL.
8693 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
8694 (declare_return_variable): Handle DECL_BY_REFERENCE.
8695 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
8696 (cp_genericize_r): Use convert_from_reference.
8697 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
8698 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
8699
5201931e
JM
8700 * c-common.c (c_warn_unused_result): Check TREE_USED before
8701 warning about a CALL_EXPR with an unused value.
8702
2ed9e527
MM
87032004-08-06 Mark Mitchell <mark@codesourcery.com>
8704
8705 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
8706 to the compiler. Use -fshort-wchar by default.
8707
12183e0f
PH
87082004-08-06 Pat Haugen <pthaugen@us.ibm.com>
8709
8710 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
8711 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
8712 threshhold.
8713 * doc/invoke.texi (param): Document min-crossjump-insns.
8714
eaac4679
RS
87152004-08-06 Richard Sandiford <rsandifo@redhat.com>
8716
8717 PR c/13282
8718 * c.opt (Wmissing-field-initializers): New option.
8719 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
8720 * c-typeck.c (pop_init_level): Guard the missing field warning with
8721 warn_missing_field_initializers rather than extra_warnings.
8722 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
8723 some of the explanation from...
8724 (-Wextra): ...here. Say that the missing field warning can be
8725 seperately controlled by -Wmissing-field-initializers.
8726
caad9f81
PB
87272004-08-06 Paolo Bonzini <bonzini@gnu.org>
8728
8729 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
8730 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
8731 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
8732 * tree.def (ENTRY_VALUE_EXPR): Remove.
8733
6b32b628
JJ
87342004-08-06 Jakub Jelinek <jakub@redhat.com>
8735
8736 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
8737 the places where it is actually needed. Don't use repz; stosb
8738 for -Os with sufficiently small constant sizes.
8739 For sufficiently small repz; stos{l,q} repeat counts use a sequence
8740 of stos{l,q} instructions instead.
8741
6797f908
ZD
87422004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8743
8744 PR tree-optimization/16807
8745 * loop-iv.c (dump_iv_info): Dump invariants correctly.
8746 (iv_subreg, iv_extend): Express value of invariant purely in
8747 base field.
8748
866cf037
MM
87492004-08-06 Mark Mitchell <mark@codesourcery.com>
8750
8751 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
8752 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
8753
9652c531 87542004-08-06 Roman Zippel <zippel@linux-m68k.org>
9b305d55 8755
27fb79ad
SB
8756 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
8757 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
8758 pre_dec_operand.
8759 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
8760 pattern until reload is finished to allow better code generation
8761 and split them completely into separate instrunctions.
8762 (*andsi3_split): New pattern.
9652c531 8763
b2ca3702
MM
87642004-08-05 Mark Mitchell <mark@codesourcery.com>
8765
8766 * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
8767 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
8768 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
8769 * tree.h (handle_dll_attribute): Declare. Test
8770 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
8771 * c-common.h (c_determine_visibility): Declare.
8772 * c-common.c (c_determine_visibility): New function.
8773 * c-decl.c (finish_decl): Use it.
8774 (finish_function): Likewise.
8775 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
8776 zero, by default. Use #if, not #ifdef, to test it.
8777 * config/arm/arm.c (arm_attribute_table): Use
8778 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
8779 #if.
8780 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
8781 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
8782 to 1.
8783 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
8784 * config/i386/i386.c (ix86_attribute_table): Use
8785 handle_dll_attribute for dllimport/dllexport. Test
8786 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
8787 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
8788 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
8789 it to 1.
8790 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
8791 with #if.
8792 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
8793 it to 1.
8794 * doc/extend.texi (dllexport): Clarify and correct documentation.
8795 (dllimport): Likewise.
8796 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
8797 handle_dll_attribute.
9b305d55 8798
c913f08a
ZD
87992004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8800
8801 * tree-ssa-loop-manip.c: New file.
8802 * Makefile.in (tree-ssa-loop-manip.o): Add.
8803 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
8804 Declare.
8805 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
8806 form.
8807 (tree_ssa_loop_done): Verify loop closed ssa form.
8808 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
8809
d4482715
JDA
88102004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8811
8812 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
8813 pa_asm_output_aligned_local): New functions.
8814 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
8815 pa_asm_output_aligned_common and pa_asm_output_aligned_local.
8816 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
8817 pa_asm_output_aligned_common.
8818 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
8819 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
8820 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
8821 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
8822 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
8823 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
8824 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
8825 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
8826 common data.
8827
21149a79
AP
88282004-08-05 Andrew Pinski <apinski@apple.com>
8829
8830 * objc/objc-act.c (build_objc_string_object): Mark the address
8831 expression as constant.
8832
d5861a7a
DE
88332004-08-05 David Edelsohn <edelsohn@gnu.org>
8834
8835 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
8836 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
8837 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
8838
0a2b72a6
JM
88392004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
8840
8841 * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
8842 Remove definitions conditioned on USE_GNULIBC_1 or conditioned
8843 out, and associated obsolete comments.
8844
ca7a3bd7
NS
88452004-08-05 Nathan Sidwell <nathan@codesourcery.com>
8846
8847 * tree.h (force_fit_type): Return a tree, take three flags.
8848 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
8849 TREE_CONSTANT_OVERFLOW here.
8850 (int_const_binop, const_binop): Adjust.
8851 (size_int_type): Do sign extension here.
8852 (fold_convert_const, optimize_bit_field_compare,
8853 decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
8854 fold_negate_const, fold_abs_const, fold_not_const): Adjust.
8855 * tree.c (size_in_bytes, int_fits_type_p): Adjust.
8856
d36837f4
ZD
88572004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8858
8859 PR tree-optimization/16864
8860 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
8861 for ssa names without default_def.
8862
ea5f7a19
RS
88632004-08-05 Richard Sandiford <rsandifo@redhat.com>
8864
8865 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
8866 frame pointer, restore eax with an ebp-relative address.
8867
0e6df31e
GK
88682004-08-04 Geoffrey Keating <geoffk@apple.com>
8869
8870 PR 14516
8871 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
8872 * c-common.h (make_rtl_for_local_static): Delete.
8873 * c-decl.c (shadow_tag_warned): Clean up comment.
8874 (finish_decl): Clean up spacing. Use set_user_assembler_name when
8875 appropriate. Don't pass asmspec to rest_of_decl_compilation.
8876 * c-semantics.c (make_rtl_for_local_static): Delete.
8877 * expr.c (init_block_move_fn): Use set_user_assembler_name.
8878 (init_block_clear_fn): Likewise.
8879 * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
8880 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
8881 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
8882 * tree.h (make_decl_rtl): Remove second parameter.
8883 (set_user_assembler_name): New.
8884 * varasm.c (set_user_assembler_name): New.
8885 (make_decl_rtl): Remove second parameter. Update callers in many
8886 files.
8887
4f587cb0
AN
88882004-08-05 Adam Nemet <anemet@lnxw.com>
8889
8890 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
8891 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
8892 to LynxOS 4.0.
8893 * gthr-lynx.h: New file.
8894 * config/lynx-ng.h: Remove file.
8895 * config/lynx.h: Update to LynxOS 4.0.
8896 * config/t-lynx: New file.
8897 * config/i386/lynx-ng.h: Remove file.
8898 * config/i386/lynx.h: Update to LynxOS 4.0.
8899 * config/rs6000/lynxbase.h: Remove file.
8900 * config/rs6000/lynx.h: Update to LynxOS 4.0.
8901 * config/rs6000/t-lynx: New file.
8902 * doc/install.texi (Options specification): Remove reference to
8903 LynxOS from systems where --with-gnu-as makes a difference.
8904
85291069
JM
89052004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
8906
8907 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
8908 __UINTMAX_TYPE__.
8909 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
8910 __INTMAX_MAX__.
8911 (c_cpp_builtins): Call it.
8912 * doc/cpp.texi: Update.
8913
30a555d9
DE
89142004-08-04 David Edelsohn <edelsohn@gnu.org>
8915
8916 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
8917 cost.
8918
878f99d2
JH
89192004-08-04 Jan Hubicka <jh@suse.cz>
8920
8921 * basic-block.h (profile_staus): New global variable.
8922 * cfg.c (profile_status): Declare.
8923 (check_bb_profile): Break out from ....; use profile_status
8924 (dump_flow_info): ... here.
8925 * cfgbuild.c (find_basic_blocks): Set profile_status.
8926 * cfgexpand.c (tree_expand_cfg): Likewise.
8927 * predict.c (estimate_probability): Likewise.
8928 * profile.c (branch_prob): Likewise.
8929 * tree-cfg.c (build_tree_cfg): Likewise.
8930 (dump_function_to_file): Use check_bb_profile.
8931 * tree-pretty-print (dump_bb_header): Likewise.
8932 * tree-profile.c (do_tree_profiling): Cleanup.
8933
7e7ec48e
ZW
89342004-08-04 Zack Weinberg <zack@codesourcery.com>
8935
8936 * Makefile.in (RTL_BASE_H, RTL_H): Correct.
8937 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
8938 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
8939 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
8940 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
8941 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
8942 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
8943 (ggc-none.o, errors.o): Move rule to generators section;
8944 correct dependencies.
8945 (min-insn-modes.o): Move rule to generators section; remove
8946 unnecessary explicit command; correct dependencies.
8947 (print-rtl.o, print-rtl1.o): Correct dependencies.
8948 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
8949 (mostlyclean): Update.
8950
8951 * errors.c: Include bconfig.h not config.h. Correct comment.
8952 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
8953 * ggc-none.c: Include bconfig.h; not config.h or tm.h.
8954 * print-rtl.c: Don't include tm_p.h.
8955
8956 * rtl.h: Move forward-decl of struct function down where it's
8957 needed. Include genrtl.h #ifndef GENERATOR_FILE, not
8958 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
8959
b0382c67
ZD
89602004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8961 Jeff Law <law@redhat.com>
8962
8963 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
8964 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
8965 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
8966 manipulate the duplicated ssa names.
8967 * tree-ssanames.c (ssa_names_to_rewrite): New variable.
8968 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
8969 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
8970 New functions.
8971 (release_ssa_name): Do not release ssa names that may have multiple
8972 definitions.
8973 * tree.h (release_ssa_name_force, mark_for_rewrite,
8974 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
8975 marked_ssa_names): Declare.
8976 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
8977 (duplicate_blocks): Remove call to mark_defs_for_rewrite.
8978 Update call to rewrite_ssa_into_ssa.
8979
63c5b495
MM
89802004-08-04 Mark Mitchell <mark@codesourcery.com>
8981
8982 * defaults.h (TARGET_DECLSPEC): New macro.
8983 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
8984 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
b2ca3702 8985 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
63c5b495
MM
8986 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
8987 __declspec support.
8988 (TARGET_DECLSPEC): Define.
8989 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
8990 __declspec support.
8991 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
8992 __declspec support.
8993 (TARGET_DECLSPEC): Define.
8994 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
8995 __declspec support.
8996 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
8997 support.
8998 * doc/tm.texi (TARGET_DECLSPEC): Document.
8999
9000 * doc/extend.texi: Fix typo in comment.
9001
44d10c10
PB
90022004-08-04 Paul Brook <paul@codesourcery.com>
9003
9004 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
9005 (TARGET_CXX): Use it.
9006 * target.h (struct gcc_target): Add cdtor_returns_this.
9007 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
9008 (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
9009 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
9010
5e9754af
NS
90112004-08-03 Nathan Sidwell <nathan@codesourcery.com>
9012
9013 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
9014 low/high pair. Do range checking directly.
9015 (interpret_integer): Adjust.
9016
2acc29bd
NC
90172004-08-04 Nick Clifton <nickc@redhat.com>
9018
9019 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
9020 GCC ABI.
9021 * doc/invoke.texi: Document this new switch and also the -mrenesas
9022 switch.
9023
2496942a
NS
90242004-08-04 Nathan Sidwell <nathan@codesourcery.com>
9025
9026 * cfglayout.c (insn_locators_initialize): Update the current
9027 location before initializing a location.
9028
7e2e8179
ZW
90292004-08-03 Zack Weinberg <zack@codesourcery.com>
9030
403f8503
ZW
9031 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
9032 (dbxout_function_end): Return after emitting the "Lscope" symbol
9033 under the same conditions that this function formerly wasn't called.
9034 Add explanatory comments.
9035
bcc7f708 9036 PR 14860
ca043393
ZW
9037 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
9038 on the new decl.
9039
bcc7f708 9040 PR 13956
7e2e8179
ZW
9041 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
9042 functions, broken out of dbxout_block.
9043 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
9044 stabs too, if it contains symbols. Use the begin_label and
9045 the Lscope label (emitted by dbxout_function_end) for the
9046 range of this block.
9047
5d75ba94
NN
90482004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
9049
9050 * doc/install.texi: Update autoconf version requirements.
9051
2e4e72b1
ZW
90522004-08-03 Zack Weinberg <zack@codesourcery.com>
9053
9054 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
9055 * recog.c (general_operand, immediate_operand, nonmemory_operand)
9056 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
9057 * regclass.c (record_reg_classes): Likewise.
9058 * reload.c (find_reloads): Likewise.
9059 * reload1.c (reload): Likewise.
9060
f9942f4e
ZW
90612004-08-03 Zack Weinberg <zack@codesourcery.com>
9062
9063 * gensupport.c (init_md_reader_args_cb): Renamed from
9064 init_md_reader_args. Add third option, callback function for
9065 parsing program-specific options. Add diagnosis of incorrect
9066 number of input files.
9067 (init_md_reader): Fold into init_md_reader_args_cb.
9068 (init_md_reader_args): Now a thin wrapper around
9069 init_md_reader_args_cb.
9070 * gensupport.h: Update prototypes.
9071
9072 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
9073 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
9074 * genrecog.c: No need to diagnose lack of an input file;
9075 init_md_reader_args will handle it.
9076 * genconditions.c: Likewise, and use init_md_reader_args.
9077 * genconstants.c: Likewise, and no need to call read_md_rtx.
9078
9cbe78fb
JM
90792004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
9080
9081 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
9082 declarations.
9083
3e558e80
MS
90842004-08-03 Mike Stump <mrs@apple.com>
9085
9086 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
9087 for frameworks.
9088 * doc/invoke.texi (Darwin Options): Update to reflect above.
9089
a0fac73d
RS
90902004-08-03 Roger Sayle <roger@eyesopen.com>
9091
9092 PR middle-end/16790
9093 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
9094 truncations, not just global truncations.
9095
cddbddb7
AP
90962004-08-03 Andrew Pinski <apinski@apple.com>
9097
9098 PR bootstrap/16865
9099 * loop-iv.c (simplify_using_assignment): Initialize lhs.
9100
bebf829d
PB
91012004-08-03 Paul Brook <paul@codesourcery.com>
9102
9103 * gcc/doc/install.texi: Document MPFR requirement.
9104
cddbddb7 91052004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
3b0727a0 9106
f9942f4e
ZW
9107 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
9108 and mmap() explicitly instead of relying on preset autoconf cache
3b0727a0
MR
9109 variables.
9110 * configure: Regenerate.
9111
f6bc51cb
L
91122004-08-03 H.J. Lu <hongjiu.lu@intel.com>
9113
9114 PR target/16570
9115 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
9116 to tmake_file.
9117 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
9118 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
9119 to tmake_file.
9120
9121 * config/i386/t-gmm_malloc: New file.
9122 * config/i386/t-pmm_malloc: Likewise.
f9942f4e 9123
f6bc51cb
L
9124 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
9125
91262004-08-03 H.J. Lu <hongjiu.lu@intel.com>
0ddcd94f 9127