]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
2004-09-06 Paolo Bonzini <bonzini@gnu.org>
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
0f9005dd 12004-09-06 Paolo Bonzini <bonzini@gnu.org>
2
3 Unify the management of RTL and tree-level dump files.
4
5 * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
6 Don't print function name to the dump file, the pass manager
7 would do this for us. Add code from the top of
8 rest_of_compilation, up to the initial RTL dump.
9 * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
10 close the DFI_sibling dump file.
11 (rest_of_compilation): Don't do that here. Remove code up to the
12 initial RTL dump.
13 (init_optimization_passes): Remove.
14 (pass_rest_of_compilation): Change pass name to NULL.
15 * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
16 Do not call init_optimization_passes.
17 * toplev.h (init_optimization_passes): Remove.
18
19 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
20 finish_graph_dump_file): Remove SUFFIX parameter.
21 * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
22 finish_graph_dump_file): Likewise.
23
24 * tree-pass.h (struct tree_opt_pass): Add `letter' field.
25 * cfgexpand.c (pass_expand): Adjust.
26 * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
27 * passes.c (pass_rest_of_compilation): Adjust.
28 * predict.c (pass_profile): Adjust.
29 * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
30 * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
31 pass_split_crit_edges, pass_warn_function_return): Adjust.
32 * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
33 * tree-dfa.c (pass_referenced_vars): Adjust.
34 * tree-eh.c (pass_lower_eh): Adjust.
35 * tree-if-conv.c (pass_build_ssa): Adjust.
36 * tree-into-ssa.c (pass_build_ssa): Adjust.
37 * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
38 * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
39 * tree-nrv.c (pass_nrv): Adjust.
40 * tree-optimize.c (pass_gimple, pass_all_optimizations,
41 pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
42 pass_init_datastructures): Adjust.
43 * tree-outof-ssa.c (pass_del_ssa): Adjust.
44 * tree-profile.c (pass_tree_profile): Adjust.
45 * tree-sra.c (pass_sra): Adjust.
46 * tree-ssa-alias.c (pass_may_alias): Adjust.
47 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
48 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
49 * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
50 * tree-ssa-dom.c (pass_dominator): Adjust.
51 * tree-ssa-dse.c (pass_dse): Adjust.
52 * tree-ssa-forwprop.c (pass_forwprop): Adjust.
53 * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
54 * tree-ssa-loop-ch.c (pass_ch): Adjust.
55 * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
56 pass_loop_done, pass_complete_unroll, pass_iv_canon,
57 pass_iv_optimize, pass_vectorize): Adjust.
58 * tree-ssa-phiopt.c (pass_phiopt): Adjust.
59 * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
60 * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
61 pass_late_warn_uninnitialized): Adjust.
62 * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
63
64 * Makefile.in (tree-dump.o): Add new dependencies.
65 * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
66 * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
67 Likewise.
68 * toplev.c (dump_file_name): New.
69 * tree-dump.c (dump_enable_all): Add LETTER parameter.
70 (struct dump_file_info): Add NUM and LETTER fields.
71 (dump_files): Adjust and add RTL dump files.
72 (dump_register): Add NUM and LETTER fields.
73 (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
74 (dump_begin): Use get_dump_file_name.
75 (dump_switch_p_1): Adjust call to dump_enable_all.
76 * tree-dump.h (dump_register): Adjust prototype.
77 * tree-optimize.c (register_one_dump_file): Take dump file index.
78 Support flags for RTL dumps.
79 (register_dump_files): Fill in NUM field of struct dump_file_info.
80 Track properties both when the gate is executed and when it is not.
81 (execute_todo): Dump RTL. Add PROPERTIES parameter.
82 (execute_one_pass): Pass properties to execute_todo. Handle VCG
83 dumps of RTL.
84 * tree-pass.h (dump_file_name): New.
85 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
86 New.
87
88 * Makefile.in (passes.o): Add new dependencies.
89 * passes.c (struct dump_file_info, enum dump_file_index,
90 dump_file_tbl, init_optimization_passes): Remove.
91 (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
92 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
93 dump_enabled_p.
94 (finish_optimization_passes): Update finish_graph_dump_file loop.
95 (enable_rtl_dump_file): Remove.
96 * tree-dump.c (dump_files): Adjust and add RTL dump files.
97 (enable_rtl_dump_file): Add here.
98 * tree.h (enum tree_dump_index): Add RTL dump file indices.
99 * doc/invoke.texi (Debugging options): Document new RTL debugging
100 options. Update.
101
fbf0afd1 1022004-09-05 Kazu Hirata <kazu@cs.umass.edu>
103
104 * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
105 gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
106 stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
107 tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
108 tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
109 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
110 tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
111 vec.h: Fix comment formatting.
112
91275768 1132004-09-05 Kazu Hirata <kazu@cs.umass.edu>
114
115 * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
116 et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
117 hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
118 tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
119 tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
120 tree-ssa-loop-niter.c, tree-ssa-operands.c,
121 tree-ssa-operands.h, tree-ssa-propagate.c,
122 tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
123 vec.c, vec.h: Fix comment typos. Follow spelling conventions.
124
690a81bd 1252004-09-05 Diego Novillo <dnovillo@redhat.com>
126
127 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
128 vectorizer is enabled.
129
35a40aad 1302004-09-05 Andreas Jaeger <aj@suse.de>
131
132 * tree-if-conv.c: Spell check comments and clean up whitespace.
133
dec41e98 1342004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
135
136 * tree-ssa-loop-ivopts.c: New file.
137 * Makefile.in (tree-ssa-loop-ivopts.c): Add.
138 * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
139 target_pres_cost, target_spill_cost): Declare.
140 * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
141 spill_cost): Renamed to ...
142 (target_avail_regs, target_res_regs, target_small_cost,
143 target_pres_cost, target_spill_cost): ... and exported.
144 (init_set_costs, global_cost_for_size): Work with renamed variables.
145 * common.opt (flag_ivopts): New flag.
146 * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle
147 REF_ORIGINAL.
148 * gimplify.c (struct gimplify_ctx): Add into_ssa field.
149 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
150 generating SSA form.
151 (force_gimple_operand): New function.
152 * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
153 * tree-cfg.c (stmt_bsi): New function.
154 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
155 PARAM_IV_MAX_CONSIDERED_USES): New.
156 * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
157 bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
158 ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
159 * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
160 * tree-nested.c (build_addr): Export.
161 * tree-optimize.c (init_tree_optimization_passes): Add
162 pass_iv_optimize.
163 * tree-pass.h (pass_iv_optimize): Declare.
164 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
165 IMAGPART_EXPR.
166 * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
167 as a phi node argument.
168 (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
169 ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
170 functions.
171 * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
172 * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
173 pass_iv_optimize): New pass.
174 * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
175 * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
176 * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
177 * tree.h (REF_ORIGINAL): New macro.
178 (build_int_cst_type, unsigned_type_for, zero_p,
179 cst_and_fits_in_hwi, build_addr): Declare.
180 * doc/invoke.texi (-fivopts): Document.
181 (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
182 PARAM_IV_MAX_CONSIDERED_USES): Document.
183 * doc/passes.texi: Document induction variable optimizations pass.
184
50ca527f 1852004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
186
187 * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
188 * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
189 * c-common.c (c_common_attribute_table): Accept parameters to
190 sentinel attribute.
191 (check_function_sentinel, handle_sentinel_attribute): Likewise.
192 * doc/extend.texi: Update accordingly.
193
bf6c8de0 1942004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
195
196 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
197 New.
198 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
199 attribute.
200 * c-common.c (handle_sentinel_attribute, check_function_sentinel):
201 New functions.
202 (c_common_attribute_table): Add `sentinel' attribute.
203 (check_function_arguments): Handle `sentinel' attribute.
204 * doc/extend.texi: Document `sentinel' attribute.
c2c28e49 205
b9135568 2062004-09-04 H.J. Lu <hongjiu.lu@intel.com>
8d061c60 207
bf6c8de0 208 * configure: Regenerated.
209
b9135568 2102004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
211
c2c21b65 212 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
213
3a337e42 214 * tree.c (save_expr): No longer TREE_READONLY.
215
132b0da4 2162004-09-04 Jan Hubicka <jh@suse.cz>
217
218 * passes.c (rest_of_clean_state): Fix merge conflict made during
219 commiting the patch.
220
3df33117 2212004-09-04 Jan Hubicka <jh@suse.cz>
222
223 * passes.c (rest_of_clean_state): Decompose the instruction stream.
224
c49547c4 2252004-09-04 Richard Sandiford <rsandifo@redhat.com>
226
227 * doc/md.texi (shift patterns): New anchor. Add reference to
228 TARGET_SHIFT_TRUNCATION_MASK.
229 * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
230 * target.h (shift_truncation_mask): New target hook.
231 * targhook.h (default_shift_truncation_mask): Declare.
232 * targhook.c (default_shift_truncation_mask): Define.
233 * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
234 (TARGET_INITIALIZER): Include it.
235 * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
236 and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
237 reject all out-of-range values. Fix sign-extension code for modes
238 whose width is smaller than HOST_BITS_PER_WIDE_INT.
239 * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
240 (expand_superword_shift, expand_subword_shift): Likewise.
241 (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
242 (expand_binop): Use them to implement double-word shifts.
243 * config/arm/arm.c (arm_shift_truncation_mask): New function.
244 (TARGET_SHIFT_TRUNCATION_MASK): Define.
245
c068056a 2462004-09-04 Jan Hubicka <jh@suse.cz>
247
248 * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
249 (mix): New macro copied from hashtab.c
250 (iterative_hash_hashval_t, iterative_hash_pointer,
251 iterative_hash_host_wide_int): New functions based on hashtab.c
252 implementation.
253
71773db9 2542004-09-04 Richard Sandiford <rsandifo@redhat.com>
255
256 * config/mips/mips.md (mask): New mode attribute.
257 (zero_extendsidi2): Add memory alternative.
258 (*zero_extendsidi2_mem): Delete.
259 (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use
260 memory_operand in the TARGET_MIPS16 check.
261 (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
262 Redefine using :GPR and :SHORT.
263 (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
264
aef94a0f 2652004-09-04 Uros Bizjak <uros@kss-loka.si>
266
267 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
268 using rint_optab.
269 (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
270 expand_builtin_mathfn.
271 * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
272 btrunc?f patterns for btrunc_optab. Implement rint_optab using
273 rint?f patterns.
274 * optabs.c (init_optabs): Initialize rint_optab.
275 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
276 Add new OTI_rint.
277 (btrunc_optab): Rename macro from trunc_optab.
278 (rint_optab): Define corresponding macro.
279
280 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
281 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
282
283 * config/i386/i386-protos.h (emit_i387_cw_initialization):
284 Change prototype. Add new int parameter.
285 * config/i386/i386.c (emit_i387_cw_initialization):
286 Handle new rounding modes.
287
288 * config/i386/i386.h (enum fp_cw_mode): Delete.
4cdc6180 289 (MODE_NEEDED): Handle new rounding modes.
aef94a0f 290 (EMIT_MODE_SET): Change condition to handle new rounding modes.
291
292 * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
293 UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
294 represent different rounding modes of frndint insn.
295 (type): Add frndint type.
296 (i387, length, memory): Handle this type.
297 (i387_cw): New attribute definition.
298 (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
299 *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
300 *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
301 Add "i387_cw" attribute defined to "trunc".
302 (x86_fnstcw_1): Remove comment.
303 (*frndintxf2): Rename insn definition to frndintxf2. Move
304 insn definition near rint?f2 expanders.
305 (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
306 rintf and rintl built-ins as inline x87 intrinsics.
307 (frndintxf2_floor): New pattern to implement floor rounding
308 mode with frndint x87 instruction.
309 (floordf2, floorsf2, floorxf2): New expanders to implement floor,
310 floorf and floorl built-ins as inline x87 intrinsics.
311 (frndintxf2_ceil): New pattern to implement ceil rounding
312 mode with frndint x87 instruction.
313 (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
314 ceilf and ceill built-ins as inline x87 intrinsics.
315 (frndintxf2_trunc): New pattern to implement trunc rounding
316 mode with frndint x87 instruction.
317 (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
318 truncf and truncl built-ins as inline x87 intrinsics.
319 (frndintxf2_mask_pm): New pattern to implement rounding
320 mode with exceptions with frndint x87 instruction.
321 (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
322 implement nearbyint, nearbyintf and nearbyintl built-ins as
323 inline x87 intrinsics.
324
4ac89247 3252004-09-04 Richard Sandiford <rsandifo@redhat.com>
326
327 * config/mips/mips.md (SHORT): New mode macro.
328 (size): New mode attribute.
329 (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
330 (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
331 *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if
332 !ISA_HAS_SEB_SEH.
333 (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
334 *extend[qh]isi2_hw patterns and extending them to di.
335 (extendqihi2): Implement as define_insn_and_split that produces
336 extendqisi2 after reload.
337
07c03fb0 3382004-09-03 Devang Patel <dpatel@apple.com>
339
340 * Makefile.in (OBJS-common): Add tree-if-conv.o
341 (tree-if-conv.o): New rule.
342 * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
343 (get_loop_body_in_bfs_order): New.
344 * cfgloop.h (get_loop_body_in_bfs_order): New.
345 * tree-flow.h (enum move_pos): Move here from ..
346 * tree-ssa-loop-im.c (enum move_pos): here.
347 (movement_possibility): Make externally visible.
348 * tree-optimize.c (init_tree_optimization_passes): New entry for
349 if conversion pass.
350 * tree-pass.h (pass_if_conversion): New.
351 * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
352 * tree-if-conv.c: New file.
353 * doc/passes.texi: Document tree if-conversion pass.
4cdc6180 354 * doc/tree-ssa.texi: Same.
07c03fb0 355
8bdf23ae 3562004-09-03 H.J. Lu <hongjiu.lu@intel.com>
357
358 PR target/14925:
359 Makefile.in (LIB2ADDEHSTATIC): New.
360 (LIB2ADDEHSHARED): New.
361 (LIBUNWIND): New.
362 (LIBUNWINDDEP): New.
363 (SHLIBUNWIND_LINK): New.
364 (SHLIBUNWIND_INSTALL): New.
365 (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
366 LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
367 (clean): Remove libunwind*
368 (stage1-start): Remove and copy stage1/libunwind*.
369 (stage2-start): Remove and copy stage2/libunwind*.
370 (stage3-start): Remove and copy stage3/libunwind*.
371 (stage4-start): Remove and copy stage4/libunwind*.
372 (stageprofile-start): Remove and copy stageprofile/libunwind*.
373 (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
374
375 * config.gcc (ia64*-*-linux*): Always add t-libunwind to
376 tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
377 tmake_file if --with-system-libunwind isn't used.
378
379 * config/ia64/t-glibc-libunwind: New file.
380 * config/t-libunwind-elf: Likewise.
381 * unwind-compat.c: Likewise.
382 * unwind-compat.h: Likewise.
383 * unwind-dw2-fde-compat.c: Likewise.
384
385 * config/ia64/t-glibc (LIB2ADDEH): Updated.
386 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
387
388 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
389 aliases if needed.
390 * unwind-dw2-fde-glibc.c: Likewise.
391 * unwind-dw2.c: Likewise.
392
393 * config/t-libunwind (LIB2ADDEH): Updated.
394 (LIB2ADDEHSTATIC): New.
395 (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
396 (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
397
398 * configure.ac: Change --enable-libunwind-exceptions to
399 --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
400 * configure: Regenerated.
401 * config.in: Updated.
402
403 * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
404 above and mention --with-system-libunwind.
405 (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
406 removed in gcc 3.4.3 and later.
407
408 * gcc.c (init_spec): Add -lunwind to -lgcc_s if
409 USE_LIBUNWIND_EXCEPTIONS is defined.
410
411 * mklibgcc.in: Support libunwind.
412
aa229444 4132004-09-03 H.J. Lu <hongjiu.lu@intel.com>
414
415 * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
416 m_NOCONA.
417
60d03123 4182004-09-03 Richard Henderson <rth@redhat.com>
419
420 PR middle-end/9997
421 * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
422 (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
423 (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
424 stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
425 frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
426 resize_stack_vars_conflict, add_stack_var_conflict,
427 stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
428 union_stack_vars, partition_stack_vars, dump_stack_var_partition,
429 expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
430 expand_one_static_var, expand_one_hard_reg_var,
431 expand_one_register_var, expand_one_error_var, defer_stack_allocation,
432 expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
433 (expand_used_vars): Rewrite.
434 * Makefile.in (cfgexpand.o): Update dependencies.
435
ac6db781 4362004-09-04 Jan Hubicka <jh@suse.cz>
437
438 * cfg.c (free_edge): Use ggc_free.
439 (expunge_block): Use ggc_free.
440 * passes.c (rest_of_clean_state): Free after compilation.
441 * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
442 * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
443
d7997df0 4442004-09-03 James E Wilson <wilson@specifixinc.com>
445
446 * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
447 DECL_EXTERNAL check.
448
792005ae 4492004-09-03 Eric Botcazou <ebotcazou@libertysurf.fr>
450
451 * final.c (output_in_slot): New global variable.
452 (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
453 Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE. Set
454 'output_in_slot' before invoking output_asm_insn.
455 (output_asm_insn): Add a space after the tab if 'output_in_slot'
456 is set.
457 * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
458 final_scan_insn.
459 (output_sibcall): Likewise.
460
4ba32638 4612004-09-03 Jan Hubicka <jh@suse.cz>
462
463 * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
464 * tree-ssanames (init_ssanames): Likewise.
465
e4897e7d 4662004-09-03 Ziemowit Laski <zlaski@apple.com>
467
468 * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
469 objc_declare_protocols, objc_start_protocol,
470 objc_start_class_interface, objc_start_category_interface,
471 objc_continue_interface, objc_finish_interface,
472 objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
473 objc_start_class_implementation, objc_start_category_implementation,
474 objc_continue_implementation, objc_finish_implementation,
475 objc_add_method_declaration, objc_start_method_definition,
476 objc_finish_method_definition, objc_build_keyword_decl,
477 objc_build_method_signature, objc_build_encode_expr,
478 objc_build_protocol_expr, objc_build_selector_expr,
479 objc_build_message_expr, objc_build_string_object,
480 objc_get_class_reference, objc_get_protocol_qualified_type,
481 objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
482
77ebfbe1 4832004-09-03 James E Wilson <wilson@specifixinc.com>
484
485 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
486
487 * config/mips/generic.md (generic_frecip_fsqrt_step): New.
488 * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
489 (mips_rsqrt2_<fmt>): Use frsqrt2 type.
490 (mips_recip1_<fmt>): Use frdiv1 type.
491 (mips_recip2_<fmt>): Use frdiv2 type.
492 * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
493 * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
494 and frsqrt1.
495 (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
496
c166bf3d 4972004-09-03 Daniel Jacobowitz <dan@debian.org>
498
499 * reload.c (find_reloads): Swap operand_loc pointers for
500 find_dummy_reload if we have swapped two operands.
501
c60ee9dd 5022004-09-03 Hans-Peter Nilsson <hp@axis.com>
503
504 * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
505 to get the tablejump-insn before the jump-table label.
506
5bc0b3a8 5072004-09-03 Ziemowit Laski <zlaski@apple.com>
508
509 * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
510 objc_declare_protocols, objc_build_message_expr,
511 objc_finish_message_expr, objc_build_selector_expr,
512 objc_build_protocol_expr, objc_build_encode_expr,
513 objc_build_string_object, objc_get_protocol_qualified_type,
514 objc_get_class_reference, objc_get_class_ivars,
515 objc_start_class_interface, objc_start_category_interface,
516 objc_start_protocol, objc_continue_interface, objc_finish_interface,
517 objc_start_class_implementation, objc_start_category_implementation,
518 objc_continue_implementation, objc_finish_implementation,
519 objc_set_visibility, objc_set_method_type, objc_build_method_signature,
520 objc_add_method_declaration, objc_start_method_definition,
521 objc_finish_method_definition, objc_add_instance_variable,
522 objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
523 objc_finish_try_stmt, objc_begin_catch_clause,
524 objc_finish_catch_clause, objc_build_finally_clause,
525 objc_build_synchronized, objc_static_init_needed_p,
526 objc_generate_static_init_call): New prototypes.
527
908e9a95 5282004-09-03 Steve Ellcey <sje@cup.hp.com>
529
530 * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
531 is only one reg.
532 (ia64_function_value): Ditto.
533
634f7a13 5342004-09-03 Jan Beulich <jbeulich@novell.com>
535
536 * config.gcc: Resurrect NetWare as a target. Handle special case of
537 Novell linker to be used (specified through --with-ld=) and threading
538 model of either Posix (default) or NKS.
539 * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
540 of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
541 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
542 * config/i386/netware.c, config/i386/netware.h: New.
543 * config/i386/nwld.c, config/i386/nwld.h: New.
544 * config/i386/netware-crt0.c: New.
545 * config/i386/netware-libgcc.c: New.
546 * config/i386/netware-libgcc.def: New.
547 * config/i386/netware-libgcc.exp: New.
548 * config/i386/t-netware, config/i386/t-nwld: New.
549 * gthr-nks.h: New.
550 * doc/install.texi: Document NKS threading model.
551
6b5553e5 5522004-09-03 Jan Beulich <jbeulich@novell.com>
553
554 PR c/7054
555 * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
556 * tree.h (initial_max_fld_align): Declare
557 * stor-layout.c (initial_max_fld_align): Define and initialize.
558 (maximum_field_alignment): Initialize to the same value.
559 * common.opt: Add -fpack-struct= variant of switch.
560 * opts.c: Handle -fpack-struct= variant of switch.
561 * c-pragma.c: Change #pragma pack() handling so that it becomes
562 compatible to other compilers: accept individual 'push' argument,
563 make final pop restore (command line) default, correct interaction
564 of push/pop and sole specification of a new alignment (so that the
565 sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
566 to #pragma pack(push, <n>).
567 * doc/extend.texi: New node "Structure-Packing Pragmas" under
568 "Pragmas", describing #pragma pack.
569 * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
570 * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
571 Document new TARGET_DEFAULT_PACK_STRUCT.
572
243f8437 5732004-09-03 Devang Patel <dpatel@apple.com>
574
575 * dwarf2out.c (gen_field_die). Equate decl number to die.
4cdc6180 576
0bc2b406 5772004-09-03 Vladimir Makarov <vmakarov@redhat.com>
578
579 PR target/15832
580 * global.c (modify_reg_pav): New function.
581 (make_accurate_live_analysis): Call the new function. Move pavin
582 modification by earlyclobber set into the new function.
583
3e080e22 5842004-09-03 Andreas Schwab <schwab@suse.de>
585
586 * config/m68k/m68k.c (output_andsi3): Use -1 instead of
587 (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
588 extended.
589
bd32ed0e 5902004-09-02 Jan Beulich <jbeulich@novell.com>
591
592 * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
593 * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
594 not unwind code specific ones.
595 (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
596 Remove unwind code specific dependencies.
597 (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
598 Remove gbl-ctors.h.
599 Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
600 LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
601 * tsystem.h: Declare memcpy and memset when inhibit_libc.
602
a1159f52 6032004-09-02 Roman Zippel <zippel@linux-m68k.org>
4cdc6180 604
a1159f52 605 * combine.c (try_combine): Delay modifying of insns which cannot
606 be easily undone.
607
41b5cc78 6082004-09-02 Daniel Berlin <dberlin@dberlin.org>
609
610 * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
611 tree-loop-im.
612 * gcc/tree-ssa-loop.c: Ditto
613 * gcc/tree-ssa-loop-ivcanon.c: Ditto
614 * gcc/doc/invoke.texi: Ditto.
615
38401f3c 6162004-09-02 Ziemowit Laski <zlaski@apple.com>
617
618 * c-decl.c (store_parm_decls_newstyle): Make static.
619 (store_parm_decls_from): New function.
620 * c-tree.h (store_parm_decls_newstyle): Remove prototype.
621 (store_parm_decls_from): New prototype.
622
94ddd54c 6232004-09-02 David Edelsohn <edelsohn@gnu.org>
624
625 * config/rs6000/rs6000.c (expand_block_move): Use SImode and
626 HImode with STRICT_ALIGNMENT.
627
7dab6ba6 6282004-09-02 Mark Mitchell <mark@codesourcery.com>
629
630 * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
631 (TARGET_OS_CPP_BUILTINS): Likewise.
632 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
633 TARGET_BPABI_CPP_BUILTINS.
634
f439075a 6352004-09-02 Roman Zippel <zippel@linux-m68k.org>
4cdc6180 636
f439075a 637 * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
638
7d3f6cc7 6392004-09-02 Eric Christopher <echristo@redhat.com>
640
641 * builtins.c (expand_builtin_cabs): Delete.
642 (expand_builtin): If unable to fold the values do a normal
643 library call for builtin_cab*.
644 (fold_builtin_cabs): Depend on optimize and optimize_size.
645 * optabs.c (expand_cmplxdiv_straight): Delete.
646 (expand_cmplxdiv_wide): Ditto.
647 (expand_vector_binop): Ditto.
648 (expand_vector_unop): Ditto.
649 (expand_complex_abs): Delete.
650 (expand_binop): Remove calls to above functions.
651 Remove open coding of complex arithmetic.
652 (expand_unop): Ditto.
653 * optabs.h: Remove prototypes.
654
ec92c1a1 6552004-09-02 Ziemowit Laski <zlaski@apple.com>
656
657 * c-decl.c (store_parm_decls_newstyle): Make externally visible.
658 * c-tree.h (store_parm_decls_newstyle): New prototype.
659
ff4d74e0 6602004-09-02 Geoffrey Keating <geoffk@apple.com>
661
662 * config/rs6000/rs6000.c (expand_block_clear): Use vector
663 instructions if available.
664 (expand_block_move): Likewise.
665
1078b066 6662004-09-03 Jan Hubicka <jh@suse.cz>
667
668 * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
669
b399661d 6702004-09-02 Mark Mitchell <mark@codesourcery.com>
671
672 * config/arm/symbian.h (LIB_SPEC): Define to empty.
673 * config/arm/t-symbian (SHLIB_LC): Likewise.
674
80583086 6752004-09-02 Paul Brook <paul@codesourcery.com>
676
677 * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
678
b8501569 6792004-09-02 Richard Sandiford <rsandifo@redhat.com>
680
681 * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
682 (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
683 (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
684 (build_mips16_call_stub): Likewise. Remove daft CALL_INSN checks.
685 (mips_issue_rate): Remove unreachable abort.
686 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
687 (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
688 (mips_block_move_straight, print_operand_address, mips_file_start)
689 (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
690 (mips_output_conditional_branch, mips_expand_builtin_direct)
691 (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
692 * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
693 with gcc_assert.
694
6fa01489 6952004-09-02 Richard Sandiford <rsandifo@redhat.com>
696
697 * config/mips/mips.md (*lea_high64): Change split condition to
698 flow2_completed. Add a peephole2 to generate a more parallel version.
699
0ca9a7b6 7002004-09-02 Jan Hubicka <jh@suse.cz>
701
702 * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
703 GGC.
704
705 * ggc-page.c: include tree-flow.h.
706 (extra_order_size_table): Add stmt_ann_d.
707 (STAT_LABEL): Rename from ....
708 (LABEL): ... this one.
709 * Makefile.in (ggc-page.o): Add dependency.
710
711 * ggc-common.c (ggc_force_collect): New global variable.
712 (loc_description): Add fields "freed", "collected"
713 (ptr_hash): New static hash
714 (ptr_hash_entry): New structure.
715 (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
716 (ggc_record_overhead): Take ptr argument, record it
717 (ggc_prune_overhead_list, ggc_free_overhead): New functions.
718 (cmp_statistics): Imrove sorting.
719 (dump_ggc_loc_statistics): Output newly collected statistics
720 * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
721 (ggc_free): Call ggc_free_overhead.
722 (ggc_collect): Force collection when asked to be forced.
723 (ggc_collect): Call ggc_prune_overhead_list.
724 * ggc.h (ggc_force_collect): Declare
725 (ggc_record_overhead): Update prototype.
726 (ggc_free_overhead, ggc_prune_overhead_list): Declare.
727
a619b050 7282004-09-02 James E Wilson <wilson@specifixinc.com>
729
730 * common.opt (ftrapping-math): Default to on.
731
d530a8c4 7322004-09-02 Richard Earnshaw <rearnsha@arm.com>
733
734 * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
735
0d012a1e 7362004-09-02 Denis Chertykov <denisc@overta.ru>
737
738 PR target/16884
739 * config/avr/avr.md ("movmemhi"): Substitute match_dup to
740 match_scratch.
741 (*movmemqi_insn): Likewise.
742 (*movmemhi): Likewise.
743 (clrmemhi): Likewise.
744 (*clrmemqi): Likewise.
745 (*clrmemhi): Likewise.
746
a6b58380 7472004-09-02 Paul Brook <paul@codesourcery.com>
748
749 * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
750 default_use_cxa_atexit=yes.
751
86062919 7522004-09-02 Alan Modra <amodra@bigpond.net.au>
753
754 * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
755 (struct kernel_old_ucontext): Delete.
756 (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
757 (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs. Only define
758 when IN_LIGGCC2.
759
e0a25846 7602004-09-02 Richard Sandiford <rsandifo@redhat.com>
761
762 * toplev.c (process_options): Fix typo.
763
41dc12b4 7642004-09-01 Richard Henderson <rth@redhat.com>
765
766 PR middle-end/17258
767 * calls.c (initialize_argument_information): Tighten pass-through
768 conditions for pass-by-reference. Remove dead TARGET_EXPR code.
769 Use build_fold_addr_expr.
770 (emit_library_call_value_1): Use build_fold_addr_expr. Remove code
771 that assumes ADDR_EXPR allocates stack space.
772 * fold-const.c (build_fold_addr_expr_with_type): Look through
773 WITH_SIZE_EXPR.
774
9bc2282c 7752004-09-01 Dan Nicolaescu <dann@ics.uci.edu>
776
777 * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
778 * ggc.h (ggc_alloc_rtx): Delete.
779
d9154849 7802004-09-01 Roger Sayle <roger@eyesopen.com>
781
782 * expmed.c (enum alg_code): Remove long unused enumeration values.
bd32ed0e 783 (struct mult_cost): New structure to hold the "score" of a synthetic
d9154849 784 multiply sequence, including both a rtx_cost and a latency field.
785 (MULT_COST_LESS): New macro to compare mult_cost to a constant.
786 (CHEAPER_MULT_COST): New macro to compare two mult_costs.
787 (struct algorithm): Change type of cost field to be mult_cost.
788 (synth_mult): Change type of cost_limit argument to be a
789 pointer to a mult_cost. Update all cost comparisons to use the
7d3f6cc7 790 new mult_cost infrastructure. For alg_add_factor and
d9154849 791 alg_sub_factor operations, latency is lower than the rtx_cost.
792 (choose_mult_variant): Update calls to synth_mult. Perform
793 cost comparisons using the new mult_cost infrastructure.
794 (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
795 to optain the total rtx_cost of a synth_mult "algorithm".
796
8e157233 7972004-09-01 David Edelsohn <edelsohn@gnu.org>
798
799 * config/rs6000/power4.md: Increase store latency to 12.
800 * config/rs6000/power5.md: Same.
801
417eae69 8022004-09-01 James E Wilson <wilson@specifixinc.com>
803
804 PR target/14064
805 * config/avr/avr.c (avr_unique_section): Delete prototype and
806 definition.
807 (TARGET_ASM_UNIQUE_SECTION): Delete.
808
66eb9e7e 8092004-09-01 Ziemowit Laski <zlaski@apple.com>
810
811 * c-parse.in (primary): Call objc_build_message_expr(),
812 objc_build_selector_expr(), objc_build_protocol_expr(),
813 objc_build_encode_expr() and objc_build_string_object() instead of
814 build_message_expr(), build_selector_expr(), build_protocol_expr(),
815 build_encode_expr() and build_objc_string_object(), respectively.
816 (component_decl_list2): Call objc_get_class_ivars() instead of
817 get_class_ivars_from_name().
818 (keyworddecl): Call objc_build_keyword_decl() instead of
819 build_keyword_decl().
820 (receiver): Call objc_get_class_reference() instead of
821 get_class_reference().
822 (reswords): Add blank line before @@ifobjc section, for clarity.
823
fe1671c1 8242002-09-01 Fariborz Jahanian <fjahanian@apple.com>
825
826 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
827 to Altivec vetors.
828
cd98a805 8292004-09-01 Wu Yongwei <adah@sh163.net>
830 Danny Smith <dannysmith@users.sourceforge.net>
831
832 * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
833 not Windows 'DWORD'.
834 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
835 (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
836 (__gthr_win32_recursive_mutex_init_function): Add prototype for
837 __GTHREAD_HIDE_WIN32API case..
838 (__gthr_win32_recursive_mutex_lock): Likewise.
839 (__gthr_win32_recursive_mutex_trylock): Likewise.
840 (__gthr_win32_recursive_mutex_unlock): Likewise.
841 (__gthread_recursive_mutex_init_function); Add definition for
842 __GTHREAD_HIDE_WIN32API case.
843 (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
844 * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
845 call to InterlockedDecrement.
846
905bfa9e 8472004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
848
147b9f52 849 * tree-tailcall.c (find_tail_calls): Also fail is statement has
850 volatile operands.
851
197f9988 852 * tree-ssa.c (propagate_into_addr): Properly test for LHR.
853
905bfa9e 854 * doc/c-tree.texi: Document new operands for ARRAY_REF and
855 COMPONENT_REF.
856
8a5df2ce 8572004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
858
859 * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
860 * common.opt (fspeculative-prefetching): New.
861 * flags.h (flag_speculative_prefetching_set): Declare.
862 * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
863 values.
864 * opts.c (flag_sepculative_prefetching_set): New variable.
865 (common_handle_option): Handle -fspeculative-prefetching.
866 * passes.c (rest_of_compilation): Ditto.
867 * profile.c (instrument_values, compute_value_histograms, branch_prob):
868 Use vectors instead of arrays.
869 * toplev.c (process_options): Handle -fspeculative-prefetching.
870 * rtl-profile.c: Include ggc.h.
871 (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
872 rtl_gen_one_value_profiler_no_edge_manipulation,
873 rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
874 argument changed.
875 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
876 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
877 argument changed.
878 * value-prof.c: Include ggc.h.
879 (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
880 macros.
881 (insn_prefetch_values_to_profile, find_mem_reference_1,
882 find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
883 speculative_prefetching_transform): New.
884 (value_profile_transformations): Call speculative_prefetching_transform.
885 (insn_values_to_profile): Call insn_prefetch_values_to_profile.
886 (insn_divmod_values_to_profile, rtl_find_values_to_profile,
887 tree_find_values_to_profile, find_values to profile): Use vectors
888 instead of arrays.
889 (free_profiled_values): Removed.
890 * value-prof.h (struct histogram_value): Renamed to
891 struct histogram_value_t.
892 (histogram_value, histogram_values): New types.
893 (find_values_to_profile): Declaration changed.
894 (free_profiled_values): Removed.
895 (struct profile_hooks): Type of argument of the hooks changed to
896 histogram_value.
897 * doc/invoke.texi (-fspeculative-prefetching): Document.
898
04dc1cf6 8992004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
900
901 PR rtl-optimization/16408
902 * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
903
c6e0562a 9042004-09-01 Richard Henderson <rth@redhat.com>
905
bd32ed0e 906 * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
907 (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
c6e0562a 908
c1d3a902 9092004-09-01 Jakub Jelinek <jakub@redhat.com>
910
911 * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
912
8d806159 9132004-09-01 Mike Stump <mrs@apple.com>
914
915 * config/darwin.c (machopic_symbol_defined_p): In addition to
916 being SYMBOL_REF_LOCAL_P, a symbol must also be
917 ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
918 defined in this output file, or translation unit in the case
919 of IMA not being used.
920 (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
921 never need .indirect_symbol when indirecting.
922
d06856b0 9232004-09-01 Jakub Jelinek <jakub@redhat.com>
924
925 * Makefile.in (bb-reorder.o): Add several dependencies.
926
e6546627 9272004-09-01 Jakub Jelinek <jakub@redhat.com>
928
929 * fold-const.c (operand_equal_p): Require equal sign also for
930 FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
931
346bfe2d 9322004-09-01 Richard Earnshaw <rearnsha@arm.com>
933
934 * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
935 for use in configargs.h. Put the cname in a separate variable. Use
936 that to set target_cpu_default2.
937
fb8e89b1 9382004-09-01 J"orn Rennecke <joern.rennecke@superh.com>
939 Nick Clifton <nickc@redhat.com>
940
941 * config/sh/sh.md ("length"): Increase branch length when
942 SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
943 constant, 2 byte for aligning the constant.
944
61b58075 9452004-09-01 Richard Earnshaw <rearnsha@arm.com>
946
947 * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
948 CPU.
949 (arm7tdmi-s): New CPU name.
950 * arm/arm.c (ARM_CORE): Update for new format.
951 * arm/arm.h (ARM_CORE): Likewise.
952 * arm/gentune.sh: Update for extra field.
953 * config.gcc: Likewise.
954 * arm/arm-tune.md: Regenerate.
955 * doc/invoke.texi: Document the real processor names for ARM cpus.
956
992845df 9572004-09-01 Richard Earnshaw <rearnsha@arm.com>
958
959 * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
960 (floatdidf): New functions.
961 * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
962 (floatdisf): New functions.
963 * t-arm-elf: Use them.
964
99d7d801 9652004-09-01 Ziemowit Laski <zlaski@apple.com>
966
967 * c-common.h (lookup_interface): Remove prototype.
968 (is_class_name): Rename to objc_is_class_name.
969 (lookup_objc_ivar): Rename to objc_lookup_ivar.
970 (get_current_scope): Rename to objc_get_current_scope.
971 * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
972 * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
973 (yylexname): Call objc_is_class_name() instead of is_class_name().
974 * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
975 instead of lookup_objc_ivar().
976 * stub-objc.c (lookup_interface): Remove stub.
977 (is_class_name): Rename to objc_is_class_name.
978 (lookup_objc_ivar): Rename to objc_lookup_ivar.
979
38ec748f 9802004-08-31 Mark Mitchell <mark@codesourcery.com>
981
982 * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
983 * config/arm/lib1funcs.asm: Do not include supplemental .S files
984 when compiling for Symbian.
985 * config/arm/symbian.h (RENAME_LIBRARY): New macro.
986 (TARGET_OS_CPP_BUILTINS): Likewise.
987 * config/arm/t-symbian (LIB1ASMFUNCS): Define.
988
8b7af0c0 9892004-08-31 Stan Shebs <shebs@apple.com>
990
991 * toplev.c (process_options): Ensure debug_hooks is initialized.
992
4fc9a8ec 9932004-08-31 Mark Mitchell <mark@codesourcery.com>
994
995 * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
996 * target.h (cxx): Add export_class_data.
997 * config/arm/arm.c (arm_cxx_export_class_data): New function.
998 (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
2ba11d51 999 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
7d3f6cc7 1000
62111d8e 10012004-08-31 Kaz Kojima <kkojima@gcc.gnu.org>
1002
1003 * config/sh/sh.c (output_branch): Check the insn length possibly
1004 in the delayed slot.
1005
d37625c0 10062004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1007
153536df 1008 * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
1009 blank after ')'.
1010 (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
1011
d37625c0 1012 * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
1013 (c_sizeof_of_alignof_type): Likewise.
1014 * expr.c (array_ref_element_size): Likewise.
1015 (highest_pow2_factor_for_target): Likewise.
1016 * gimplify.c (canonicalize_addr_expr): Likewise.
1017 (gimplify_compound_lval): Likewise.
1018 * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
1019 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
1020 * varasm.c (assemble_variable): Likewise.
1021 (output_constant_def_contents): Alignments are unsigned.
1022
05128764 10232004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1024 Jeff Law <law@redhat.com>
1025
1026 * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
1027 gets modified.
1028
219626ad 10292004-08-31 Mark Mitchell <mark@codesourcery.com>
1030
1031 * hooks.c (hook_bool_void_true): New function.
1032 * hooks.h (hook_bool_void_true): Declare.
1033 * target-def.h (TARGET_CXX): Add
1034 TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
1035 * target.h (struct cxx): Add key_method_may_be_inline.
1036 * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
1037 function.
1038 (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
1039 * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
1040 __THUMB_INTERWORK.
7d3f6cc7 1041
02b088c6 10422004-08-31 Denis Chertykov <denisc@overta.ru>
1043
1044 PR target/15417
1045 * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
1046 frame pointer register only in Pmode while reload in progress.
1047
02daa8ff 10482004-08-31 Stephane Carrez <stcarrez@nerim.fr>
1049
1050 PR target/15334
1051 * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
1052 because it breaks the 32-bit shift patterns that rely on a match_dup.
1053
70e7a699 10542004-08-31 Matt Austern <austern@apple.com>
1055
1056 * config/darwin.c (darwin_make_decl_one_only): Allocate section
1057 names once per compilation, instead of once per symbol.
7d3f6cc7 1058
2b59cb05 10592004-08-31 Paolo Bonzini <bonzini@gnu.org>
1060
1061 * Makefile.in (build_subdir): New substitution.
1062 (fixinc.sh): Simplify heavily since fixincludes is already built.
1063 (stmp-fixinc): Depend on specs.ready.
1064 (install-mkheaders): Use new location of fixincludes.
1065 (clean): Do not descend into fixinc.
1066 (FORBUILD): Replace with ../$(build_subdir).
1067 * configure.ac (build_subdir): Substitute.
1068 (FORBUILD): Do not set.
1069 (all_outputs): Remove fixinc/Makefile.
1070 (default commands): Do not create links in fixinc.
1071 * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
1072 the fixincludes configuration steps and substituting
1073 @FIXINCL@ in fixinc.in.
1074 * fixinc.in: New, from fixinc/fixincl.sh.
1075
1076 * fixinc/*: Removed.
7d3f6cc7 1077
a73be86c 10782004-08-31 Joseph S. Myers <jsm@polyomino.org.uk>
1079
1080 * attribs.c (strip_attrs): Remove.
1081 (split_specs_attrs): Move ...
1082 * c-decl.c: ... to here.
1083 * tree.h (split_specs_attrs, strip_attrs): Remove.
1084 * c-tree.h (split_specs_attrs): Declare.
1085
4f1159f8 10862004-08-31 Richard Sandiford <rsandifo@redhat.com>
1087
1088 * read-rtl.c: Disable RTL checking.
1089 (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
1090
54f06ca6 10912004-08-31 Richard Sandiford <rsandifo@redhat.com>
1092
1093 * config/mips/mips.md (fcond): New code macro and attribute.
1094 (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
1095 (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
1096 (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
1097
bef3b33e 10982004-08-30 Mark Mitchell <mark@codesourcery.com>
1099
1100 Revert:
1101 2004-08-29 Mark Mitchell <mark@codesourcery.com>
1102 PR rtl-optimization/16590
1103 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
1104
3f28a032 11052004-08-30 Andrew Pinski <apinski@apple.com>
1106
7d3f6cc7 1107 * hard-reg-set.h:
6a5b7d12 1108 s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
1109 * ChangeLog: Fix previous ChangeLog entry.
1110
3f28a032 1111 PR rtl-opt/13987
7d3f6cc7 1112 * config.host (use_long_long_for_widest_fast_int): New, default is
3f28a032 1113 off.
1114 (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
1115 * configure.ac: If use_long_long_for_widest_fast_int, then
1116 define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
1117 * configure: Regenerate.
1118 * config.in: Regenerate.
1119 * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
1120 New: widest integer type supported efficiently in hardware for the
1121 host.
1122 * sbitmap.h (SBITMAP_ELT_BITS): Define based on
1123 HOST_BITS_PER_WIDEST_FAST_INT.
1124 (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
7d3f6cc7 1125 * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
3f28a032 1126 HOST_WIDEST_FAST_INT
1127 instead of HOST_WIDE_INT.
1128 (HARD_REG_SET_LONGS): Likewise.
1129 (UHOST_BITS_PER_WIDE_INT): Likewise.
1130 Change the checks for the fast cases to be based on
6a5b7d12 1131 HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
3f28a032 1132
92025ac5 11332004-08-30 Steven Bosscher <stevenb@suse.de>
1134
1135 * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
1136 not the pointers.
1137
72394149 11382004-08-30 Geoffrey Keating <geoffk@apple.com>
1139
1140 PR 12738
1141 PR 17205
1142 Radar 3460526
1143 Radar 3775729
1144 * c-decl.c (grokdeclarator): Produce error for 'static' on local
1145 function declaration.
1146
20506a1d 11472004-08-30 Richard Henderson <rth@redhat.com>
1148
1149 * expr.c (array_ref_element_size): Force aligned_size back to
1150 sizetype.
1151 (component_ref_field_offset): Similarly for aligned_offset.
1152 * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
1153 low-bound, element-size, field-offset fields rather than
1154 computed values.
1155
f47fc523 11562004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
1157
1158 * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
1159 redundant code.
1160
731e6cbf 11612004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
1162
1163 * c-tree.h (struct language_function): Add arg_info element.
1164 * c-decl.c (current_function_arg_info): New.
1165 (grokdeclarator, store_parm_decls): Use it instead of
1166 DECL_ARGUMENTS.
1167 (c_push_function_context, c_pop_function_context): Save and
1168 restore it.
1169
7da1265c 11702004-08-30 Richard Henderson <rth@redhat.com>
1171
7d3f6cc7 1172 * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
7da1265c 1173 COMPONENT_REF to pointer arithmetic.
1174 * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
1175 constant "c" as a valid constant initializer. Allow narrowing of
1176 differences against the same base object, for any base object.
1177
ec1e52d1 11782004-08-30 Richard Henderson <rth@redhat.com>
1179
1180 * expr.c (expand_expr_addr_expr): New.
1181 (expand_expr_real_1) <case ADDR_EXPR>: Use it.
1182
dc71d935 11832004-08-30 Richard Sandiford <rsandifo@redhat.com>
1184
1185 * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
1186 (mips_fp_condition): New enum.
1187 (mips_fp_conditions): New array.
1188 (print_fcc_operand): Delete.
1189 (print_operand): Remove %V, %v and %Q. Redefine %Z so that it prints
1190 the operand and comma if and only if ISA_HAS_8CC. Add %Y.
1191 (builtin_description): Add "cond" field.
1192 (DIRECT_BUILTIN): Initialize it.
1193 (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
1194 into INSN and CODE. Initialize the "cond" field.
1195 (CMP_BUILTINS): Update accordingly.
1196 (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
1197 (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
1198 mips_fp_condition as argument. Make it the final operand of the
1199 comparison instruction.
1200 (mips_expand_builtin): Update accordingly.
1201 * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
1202 (UNSPEC_C, UNSPEC_CABS): New constants. Shuffle others to fill
1203 the gaps.
1204 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
1205 Don't use the 'Q' operand prefix; just print the operand normally.
1206 (mips_cabs_*, mips_c_*): Delete, replacing with...
1207 (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
1208 patterns. Split the 4s versions into 2 ps patterns after reload.
1209
3d1c55e6 12102004-08-30 Richard Henderson <rth@redhat.com>
1211
1212 * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
1213 assuming an ADDR_EXPR is non-null.
1214
fcbbb04c 12152004-08-30 Jason Merrill <jason@redhat.com>
1216
36b3b043 1217 * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
fcbbb04c 1218
eea75c62 12192004-08-30 Nathan Sidwell <nathan@codesourcery.com>
1220
03b7130b 1221 * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
1222 * gcov.c (abort): Remove undef.
1223
eea75c62 1224 * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
1225 (struct tree_binfo): Remove primary field.
1226
31b04dee 12272004-08-30 Paolo Bonzini <bonzini@gnu.org>
1228
1229 * fixinc/Makefile.in (machname.h): Remove.
1230 (fixincl.x): Do not pass $@ to genfixes.
1231 * fixinc/genfixes: Remove code to produce machname.h.
1232 * fixinc/fixincl.sh: Move it here instead.
1233 * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
1234 instead check if pz_mn_name_pat is NULL. Make mn_get_regexps
1235 return a bool indicating whether pz_mn_name_pat is NULL.
1236 * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
1237 Declare extern C variables for the ENV_TABLE.
1238 * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
1239 instead use the result of mn_get_regexps.
1240 * fixinc/fixtests.c: Likewise.
1241
bb9fd4c9 12422004-08-30 Paolo Bonzini <bonzini@gnu.org>
1243
1244 * configure.ac: Do not run fixincludes after stage1 during
1245 toplevel bootstrap.
1246 * configure: Regenerate.
1247
af4ff459 12482004-08-30 Richard Earnshaw <rearnsha@arm.com>
1249
1250 * sched-deps.c (get_condition): Partially revert previous, by never
1251 trying to extract the condition from a condjump.
1252
eea75c62 12532004-08-30 Nathan Sidwell <nathan@codesourcery.com>
1254
1255 * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
1256 (handle_visibility_attribute, c_determine_visibility): Likewise.
1257 * c-common.h (my_friendly_assert): Remove.
1258
089492e0 12592004-08-30 Richard Sandiford <rsandifo@redhat.com>
1260
1261 * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
1262 (UNSPEC_{RSQRT,RECIP}[12]): New constants.
1263 (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
1264 * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
1265 (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
1266
e3349ccb 12672004-08-30 Diego Novillo <dnovillo@redhat.com>
1268
1269 * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
1270 in COMPONENT_REF nodes.
1271
096f40ca 12722004-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
1273
1274 PR c++/15378
1275 * c-opts.c (c_common_handle_option): <case OPT_Werror> set
1276 global_dc->warning_as_error_requested.
1277 * diagnostic.c (diagnostic_initialize): Tidy.
1278 * diagnostic.h (diagnostic_context::x_data): Remove
1279 (diagnostic_context::issue_warnings_are_errors_message): Rename
1280 from warnings_are_errors_message.
1281 (diagnostic_context::warning_as_error_requested): New.
1282
d87bddc5 12832004-08-30 Richard Earnshaw <rearnsha@arm.com>
1284
1285 * sched-deps.c (get_condition): Fix breakage in previous patch.
1286
fa52acf4 12872004-08-30 Paul Brook <paul@codesourcery.com>
1288
1289 * doc/install.texi: Fix broken mpfr link.
1290
9be5fb82 12912004-08-29 David O'Brien <obrien@FreeBSD.org>
1292
1293 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
1294 other FreeBSD platforms.
1295
1cf5e604 12962004-08-29 Richard Earnshaw <rearnsha@arm.com>
1297
1298 * arm.h (REVERSE_CONDITION): Define.
1299 (REVERSIBLE_CC_MODE): All comparisons are now reversible.
1300
367dc0cd 13012004-08-29 Richard Earnshaw <rearnsha@arm.com>
1302
1303 * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
1304 just the codes, call reversed_comparison_code ().
1305 (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
1306 (not_reg_cond): Use reversed_comparison_code.
1307 (and_reg_cond): Likewise.
1308 * ifcvt.c (cond_exec_process_if_block): Likewise.
1309 * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
1310
bbb82bbf 13112004-08-29 Richard Earnshaw <rearnsha@arm.com>
1312
1313 * sched-deps.c (get_condition): Rewrite using jump support functions.
1314 Use reversed_comparison_code.
1315 (conditions_mutex_p): Use reversed_comparison_code.
1316
61fd88ed 13172004-08-29 Richard Sandiford <rsandifo@redhat.com>
1318
1319 * config/mips/mips.c (override_options): Disable hot/cold partitioning
1320 for MIPS16.
1321
fe3c72f9 13222004-08-29 Richard Sandiford <rsandifo@redhat.com>
1323
1324 * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
1325 (mips_function_type): Move to mips.c.
1326 * config/mips/mips.c (mips_builtin_type): New enum.
1327 (builtin_description): Replace code and ftype with builtin_type
1328 and function_type.
1329 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
1330 (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
1331 (CODE_FOR_mips_abs_ps): Define.
1332 (mips_bdesc): Use new macros.
1333 (mips_expand_builtin): Use builtin_type. Update calls to subroutines.
1334 (mips_init_builtins): Use the mips_bdesc[] index as the function code.
1335 (mips_expand_builtin_direct): New function.
1336 (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
1337 builtin. Replace boolean parameter with builtin_type.
1338 (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
1339 (mips_expand_4s_compare_builtin): Delete, replacing with...
1340 (mips_expand_builtin_compare): ...this new function.
1341
d3cee69d 13422004-08-29 Mark Mitchell <mark@codesourcery.com>
1343
1344 PR rtl-optimization/16590
1345 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
1346
7b4fe863 13472004-08-29 Diego Novillo <dnovillo@redhat.com>
1348
1349 * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
1350 * tree-ssa-propagate.c: Fix documentation.
1351
9d66bad9 13522004-08-29 Richard Sandiford <rsandifo@redhat.com>
1353
1354 * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
1355 (mov[sd]fcc): Likewise.
1356
bd91c38f 13572004-08-29 Richard Sandiford <rsandifo@redhat.com>
1358
1359 * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
1360
b70a541a 13612004-08-29 Richard Sandiford <rsandifo@redhat.com>
1362
1363 * config/mips/mips.md (divide_condition): New mode attribute.
1364 (div[sd]f3, *div[sd]f3): Use it. Redefine using :SCALARF.
1365 (sqrt[sd]f3): Redefine using SCALARF.
1366 (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise. Name formerly unnamed
1367 patterns.
1368
2deb7e2e 13692004-08-29 Richard Sandiford <rsandifo@redhat.com>
1370
1371 * config/mips/mips.md (ANYF, SCALARF): New mode macros.
1372 (loadx, storex, fmt, UNITMODE): New mode attributes.
1373 (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
1374 (mul[sd]f3): Redefine using :SCALARF.
1375 (*mul[sd]f3): Renamed from mul[sd]f3_internal. Use :SCALARF.
1376 (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
1377 (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns. Use :ANYF.
1378 Check TARGET_FUSED_MADD for V2SF too.
1379 (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
1380 were already named.
1381 (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
1382 (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
1383
e419d696 13842004-08-29 Richard Sandiford <rsandifo@redhat.com>
1385
1386 * config/mips/mips.c (mips_init_builtins): Simplify. Only create
1387 V2SF_type_node if it will be needed.
1388
b8a7347b 13892004-08-29 Richard Sandiford <rsandifo@redhat.com>
1390
1391 * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
1392 * config/mips/mips.c (mips_prepare_builtin_arg): New function.
1393 (mips_prepare_builtin_target): New function.
1394 (mips_expand_builtin): Use them. Update calls to subroutines.
1395 (mips_expand_ps_cond_move_builtin): Use the new functions. Replace
1396 cmp_choice with a boolean argument to select between movt and movf.
1397 Take the comparison's icode as an argument, not the function's fcode.
1398 (mips_expand_compare_builtin): New function. Rename existing function
1399 to mips_expand_scalar_compare_builtin.
1400 (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
1401 (mips_expand_ps_compare_builtin): Use the new functions. Take the
1402 comparison's icode as an argument, not the builtin's fcode.
1403
785299dd 14042004-08-29 Richard Sandiford <rsandifo@redhat.com>
1405
1406 * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
1407 (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
1408 registers are false and -1 if all registers are true.
1409 (mips_expand_ps_compare_builtin): Likewise CCV2. Use subregs for
1410 MIPS_CMP_UPPER and MIPS_CMP_LOWER.
1411 * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
1412 (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
1413 (bc1any2t, bc1any2f): Likewise CCV2.
1414 (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
1415
efb7e7d7 14162004-08-29 Richard Sandiford <rsandifo@redhat.com>
1417
1418 * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
1419 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
1420 UNSPEC rather than an IF_THEN_ELSE.
1421 * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
1422 mips_cond_move_tf_ps by name.
1423
8ff58a85 14242004-08-29 Chao-ying Fu <fu@mips.com>
1425 James E Wilson <wilson@specifixinc.com>
7d3f6cc7 1426
8ff58a85 1427 * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
1428 8 byte size and alignment. Give CCV4 16 byte size and alignment.
1429 * config/mips/mips-ps-3d.md: New file.
1430 * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
1431 TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1432 (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
1433 (mips_output_move): Emit "mov.ps" for V2SFmode.
1434 (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
1435 MODE_VECTOR_FLOAT.
1436 (override_options): Check if TARGET_MIPS3D and there was an explicit
1437 !TARGET_PAIRED_SINGLE_FLOAT. Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
1438 Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
1439 TARGET_PAIRED_SINGLE_FLOAT is true. Check if the ISA supports
1440 TARGET_PAIRED_SINGLE_FLOAT. Allow MODE_VECTOR_FLOAT in fp registers,
1441 and allow CCV2 and CCV4 to occupy two and four CC registers.
1442 (print_fcc_operand): New function.
1443 (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC. Modify
1444 %Z to call print_fcc_operand.
1445 (mips_function_value): Handle MODE_VECTOR_FLOAT.
1446 (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
1447 (mips_vector_mode_supported_p): New function.
1448 (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
1449 (builtin_description): New struct.
1450 (mips_bdesc): New array of struct builtin_description.
1451 (mips_expand_builtin, mips_init_builtins,
1452 mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
1453 mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
1454 functions.
1455 * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
1456 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
1457 (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
1458 (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
1459 "-mips3d", and "-mno-mips3d".
1460 (ASM_SPEC): Map -mips3d to -mips3d in gas.
1461 (EXTRA_CONSTRAINT_Y): New macro.
1462 (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT. Add new
1463 multi-letter constraint 'Y'.
1464 (CONSTRAINT_LEN): New macro.
1465 (enum mips_builtins): New for MIPS builtin functions.
1466 (enum mips_function_type): New for the types of MIPS builtin functions.
1467 (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
7d3f6cc7 1468 * config/mips/mips.md: New constants for paired single and MIPS-3D
8ff58a85 1469 instructions. Include the new mips-ps-3d.md file.
1470 (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
1471 movv2sf_hardfloat_64bit): New named patterns.
1472 (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
1473 nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
1474 sdxc1_v2sf_di): New unnamed patterns.
1475 * config/mips/predicates.md (const_0_operand, const_1_operand): Add
1476 const_vector support.
1477 (const_0_or_1_operand): New predicate.
1478 * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
1479
41511585 14802004-08-29 Diego Novillo <dnovillo@redhat.com>
1481
1482 * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
1483 (tree-ssa-propagate.o): New rule.
1484 (GTFILES): Add tree-ssa-propagate.c.
1485 * tree-flow.h (struct stmt_ann_d): Remove field
1486 in_ccp_worklist.
1487 * tree-ssa-propagate.c: New file.
1488 * tree-ssa-propagate.h: New file.
1489 * tree-ssa-ccp.c: Re-write to use the routines from
1490 tree-ssa-propagate.c.
1491
b6278851 14922004-08-28 Andrew Pinski <apinski@apple.com>
1493
1494 * tree-ssa-loop.c: Remove extra include of basic-block.h.
1495
11a35d8f 14962004-08-28 Ziemowit Laski <zlaski@apple.com>
1497
1498 * c-common.h: Update comments about ObjC/ObjC++ entry points.
1499 (objc_is_reserved_word): New prototype.
1500 (get_current_scope, objc_mark_locals_volatile): Move prototypes to
1501 separate section; these are call-backs.
1502 * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
1503 ObjC/ObjC++ "@" keywords.
1504 * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
1505 prototypes; they already live in c-common.h.
1506 * stub-objc.c: Update copyright notice.
1507 (objc_is_reserved_word): New stub.
1508
d70f68e8 15092004-08-28 Nathan Sidwell <nathan@codesourcery.com>
1510
1511 * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR
1512 even when not checking.
1513
4813f5af 15142004-08-27 Jason Merrill <jason@redhat.com>
1515
1516 PR c++/13684
1517 * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
1518 (gimple_push_cleanup): Add eh_only parm.
1519 (gimplify_target_expr): Pass it.
1520 * c.opt (-fno-threadsafe-statics): New option.
1521 * c-opts.c (c_common_handle_option): Handle it.
1522 * c-common.h (flag_threadsafe_statics): Declare it.
1523 * c-common.c (flag_threadsafe_statics): Record it.
1524 * doc/invoke.texi: Document it.
1525 * tsystem.h (_GNU_SOURCE): Define.
1526 * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
1527 (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
1528 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
1529 (__gthread_recursive_mutex_init_function): New fn.
1530 (__gthread_recursive_mutex_lock): New fn.
1531 (__gthread_recursive_mutex_trylock): New fn.
1532 (__gthread_recursive_mutex_unlock): New fn.
1533 * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
1534 * gthr-win32.h, gthr-vxworks.h: Likewise.
1535 * gthr.h: Document.
1536
35306c0d 15372004-08-27 David Edelsohn <edelsohn@gnu.org>
1538
1539 * config/rs6000/rs6000.c (rs6000_override_options): Increase
1540 maximum skip to 15. Set function alignment, jump alignment, and
1541 loop alignment to 16 for processors that form dispatch groups.
2d8efd75 1542 (rs6000_rtx_costs): outer_code is used.
35306c0d 1543
85390276 15442004-08-27 Nathan Sidwell <nathan@codesourcery.com>
1545
0f999733 1546 * stor-layout.c (sizetype_set): Remove.
1547 (set_sizetype): Don't test or set it.
1548
85390276 1549 * tree.h (size_int_type): Remove.
1550 * fold-const.c: Do not #include gt-fold-const.h.
1551 (size_htab_hash, size_htab_eq): Remove.
1552 (size_int_kind): Use build_int_cst.
1553 (new_const, size_htab): Remove.
1554 (size_int_type): Remove.
1555 (round_up): Use build_int_cst.
1556 (round_down): Likewise. Remove spurious constant build.
1557
997731eb 15582004-08-27 Nathan Sidwell <nathan@codesourcery.com>
1559
1560 * configure.ac: Add ENABLE_ASSERT_CHECKING control.
1561 Add is_release variable, use it for --enable-werror and
1562 --enable-checking defaults.
1563 * system.h (gcc_assert, gcc_unreachable): New.
1564 * doc/install.texi (--enable-checking): Update.
1565 * configure, config.in: Rebuilt.
1566
fea520eb 15672004-08-26 Richard Sandiford <rsandifo@redhat.com>
1568
1569 * rtl.h (read_rtx): Change prototype.
1570 * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
1571 line number. Return true on success.
1572 * gensupport.c (process_include, init_md_reader_args_cb): Adjust
1573 callers accordingly.
1574
af28855b 15752004-08-26 Richard Henderson <rth@redhat.com>
1576
1577 * c-typeck.c (build_offsetof): Remove.
1578 * c-tree.h (build_offsetof): Remove.
1579 * c-common.c (fold_offsetof_1, fold_offsetof): New.
1580 * c-common.h (fold_offsetof): Declare.
1581 * c-parse.in (offsetof_base): New.
1582 (offsetof_member_designator): Use it. Build references, not just
1583 a tree list.
1584 (primary): Use fold_offsetof, not build_offsetof.
1585
82e3f297 15862004-08-26 Richard Henderson <rth@redhat.com>
1587
1588 * tree.c (staticp): Return the static object.
1589 * tree.h (staticp): Update decl.
1590 * langhooks.h (struct lang_hooks): Change staticp return type to tree.
1591 * langhooks.c (lhd_staticp): Return NULL_TREE.
1592 * langhooks-def.h (lhd_staticp): Update decl.
1593 * c-common.c (c_staticp): Return the static object.
1594 * c-common.h (c_staticp): Update decl.
1595
28d1bd60 15962004-08-26 Richard Henderson <rth@redhat.com>
1597
1598 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
1599 modes.
1600
606a02e3 16012004-08-26 Joseph S. Myers <jsm@polyomino.org.uk>
1602
1603 PR c/13801
1604 * c-decl.c (struct c_binding): Add type and inner_comp fields.
1605 (bind): Set type and inner_comp fields.
1606 (pop_scope): Restore type of decl to the correct type from an
1607 outer scope. Give error when popping file scope for incomplete
1608 arrays completed incompatibly with default initialization in an
1609 inner scope.
1610 (diagnose_mismatched_decls): Handle externs with initializers at
1611 block scope.
1612 (pushdecl): Set type of external declaration at block scope based
1613 only on the visible declarations. Save type when changing the
1614 type of a declaration. Merge an external declaration at block
1615 scope with a visible static declaration at file scope.
1616 (implicitly_declare): Give recycled old declaration the new type
1617 except for incompatible declarations of built-in functions, saving
1618 the old type.
1619
53d146fe 16202004-08-26 Ziemowit Laski <zlaski@apple.com>
1621
1622 * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
1623
3b30af2c 16242004-08-26 Daniel Berlin <dberlin@dberlin.org>
1625
1626 * tree-alias-common.c (gate_pta): New function.
1627 (pass_build_pta): Use it.
1628 (pass_del_pta): Use it.
1629 (delete_alias_vars): Don't check flag_tree_points_to.
1630
e96dc3fc 16312004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1632
7d3f6cc7 1633 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
e96dc3fc 1634 TFmode as additional register mode cloberred by call.
1635
16362004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1637
1638 * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
1639 parallel pattern for library call returning DImode in
1640 mixed mode.
1641
16422004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1643
1644 * config/rs6000/rs6000.c (function_arg): Generate parallel
1645 pattern for more split args.
1646
16472004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1648
1649 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
1650 either gen_movdi_di_update or gen_movdi_si_update depending on
1651 target mode.
1652 * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
1653 to generate two versions.
7d3f6cc7 1654
6b6f234c 16552004-08-26 Daniel Berlin <dberlin@dberlin.org>
1656
1657 * Makefile.in (lambda-code.o): New.
1658 (lambda-trans.o): Ditto.
1659 (TREE_DATA_REF_H): Ditto.
1660 (LAMBDA_H): Ditto.
1661 (lambda-mat.o): Use LAMBDA_H.
1662 (tree-data-ref.o): Ditto.
1663 * lambda-code.c: New file. Lambda code generation algorithm.
1664 * lambda-trans.c: Ditto. Lambda transformation matrix support.
1665 * lambda.h: Add lambda loop structures.
1666 Add lambda loopnest structures.
1667 Add lambda body vector structure.
1668 Add lambda linear expression structures.
1669 Add prototypes for functions in new files.
1670 * lambda-mat.c: Include tree.h
1671
16722004-08-26 Daniel Berlin <dberlin@dberlin.org>
7d3f6cc7 1673 Sebastian Pop <pop@cri.ensmp.fr>
1674
1675 * tree-data-ref.h: Include lambda.h
6b6f234c 1676 (free_dependence_relation): Declared here.
7d3f6cc7 1677 (free_dependence_relations): Ditto.
6b6f234c 1678 (free_data_refs): Ditto.
1679 * tree-data-ref.c (free_dependence_relation): New function.
1680 (free_dependence_relations): Ditto.
1681 (free_data_refs): Ditot.
1682 (analyze_all_data_dependences): Free datarefs and dependence_relations.
1683 (build_classic_dist_vector): Store in the dependence_relations the
1684 information. Each arc in the dependence_relations graph is labelled
1685 with the distance and direction vectors.
1686 (build_classic_dir_vector): Ditto.
1687 (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
1688 Now computes again the whole dependence graph including read-read
1689 relations.
1690 (compute_data_dependences_for_loop): Now dependence_relations contains
1691 all the data, and thus it doesn't need to initialize the classic_dir
1692 and classic_dist vectors.
1693 (analyze_all_data_dependences): Adjusted for using the new interface of
1694 compute_data_dependences_for_loop. Remove the statistics dump.
7d3f6cc7 1695
a80259b6 16962004-08-26 Bob Wilson <bob.wilson@acm.org>
1697
1698 * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
1699 (xtensa_expand_block_move): Update comment.
1700 (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
1701
c706a9d9 17022004-08026 Richard Earnshaw <rearnsha@arm.com>
1703
1704 PR target/13506
1705 * toplev.c (crash_signal): If we crashed while emitting
1706 a user asm, then die more gracefully.
1707
4c6c8621 17082004-08-26 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1709
1710 PR target/17119.
1711 * config/m32r.c (gen_compare): Use reg_or_int16_operand when
1712 checking for a valid constant, regardless of sign.
1713
8496048b 17142004-08-25 Richard Henderson <rth@redhat.com>
1715
28d1bd60 1716 PR target/16974
1717 * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
1718 if the constant satisfies add_operand.
8496048b 1719
fb0de38e 17202004-08-25 Richard Henderson <rth@redhat.com>
7d3f6cc7 1721
28d1bd60 1722 PR debug/10695
1723 * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
1724 (alpha_expand_prologue): Handle >32-bit frames. Generate proper
1725 unwind info for >16-bit frames.
fb0de38e 1726
728719fa 17272004-08-25 Richard B. Kreckel <richard.kreckel@framatome-anp.com>
1728
1729 PR target/17171
1730 * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
1731
c0da4391 17322004-08-25 Richard Henderson <rth@redhat.com>
1733
28d1bd60 1734 * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
1735 (TARGET_CANNOT_FORCE_CONST_MEM): New.
c0da4391 1736
184e5b30 17372004-08-25 Andrew MacLeod <amacleod@redhat.com>
1738
1739 * doc/tree-ssa.texi: Document new operand iterator.
1740
beca3c12 17412004-08-26 Alan Modra <amodra@bigpond.net.au>
1742
1743 PR target/16480
1744 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
1745 on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well
1746 as PLUS base regs.
1747
a928f18c 17482005-08-28 Paul Brook <paul@codesourcery.com>
1749
1750 * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
1751 -mfpu=vfp -march=armv5t
5bc4ac8c 1752 * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
a928f18c 1753
b2aef146 17542004-08-25 Richard Henderson <rth@redhat.com>
1755
1756 * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1757 * target.h (struct gcc_target): Add scalar_mode_supported_p.
1758 * targhooks.c (default_scalar_mode_supported_p): New.
1759 * targhooks.h (default_scalar_mode_supported_p): Declare.
1760 * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
1761
1762 * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
1763 before attempting to create types. Tidy.
1764 * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
1765
1766 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
1767 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1768
aeb45c8e 17692004-08-25 Richard Henderson <rth@redhat.com>
1770
1771 * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1772 set REAL_MODE_FORMAT for TFmode.
1773
7c42cc36 17742004-08-25 Ziemowit Laski <zlaski@apple.com>
1775
1776 * c-decl.c (grokparm): New function.
1777 * c-tree.h (grokparm): New prototype.
1778
43daa21e 17792004-08-25 Andrew MacLeod <amacleod@redhat.com>
1780
1781 * tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand
1782 iterator controlling structure.
1783 (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
1784 SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
1785 SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand
1786 iterator flags.
1787 (FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees.
1788 (FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses.
1789 (FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs.
1790 (FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs.
7d3f6cc7 1791 * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
43daa21e 1792 Empty operand pointers.
1793 * tree-flow-inline.h (op_iter_done): New. Return true if finished.
1794 (op_iter_next_use): New. Return next use_operand_p.
1795 (op_iter_next_def): New. Return next def_operand_p.
1796 (op_iter_next_tree): New. Return next operands as a tree.
1797 (op_iter_init): New. Initialize an iterator structure.
1798 (op_iter_init_use): New. Initialize structure and get the first use.
1799 (op_iter_init_def): New. Initialize structure and get the first def.
1800 (op_iter_init_tree): New. Initialize structure and get the first tree.
1801 (op_iter_next_maydef): New. Return next V_MAY_DEF operands.
7d3f6cc7 1802 (op_iter_init_maydef): New. Initialize structure and get the first
43daa21e 1803 V_MAY_DEF operands.
1804 * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
7d3f6cc7 1805 * tree-dfa.c (compute_immediate_uses_for_stmt,
43daa21e 1806 redirect_immediate_uses): Use new operand iterator.
1807 (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
1808 (mark_new_vars_to_rename): Use new operand iterator. Count virtual
1809 operands instead of using *_disappeared_p routines.
1810 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
1811 ssa_rewrite_stmt): Use new operand iterator.
1812 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
1813 rewrite_trees): Use new operand iterator.
1814 * tree-pretty-print.c (dump_vops): Use new operand iterator.
1815 * tree-sra.c (mark_all_v_defs): Use new operand iterator.
7d3f6cc7 1816 * tree-ssa-alias.c (compute_points_to_and_addr_escape,
43daa21e 1817 dump_points_to_info): Use new operand iterator.
7d3f6cc7 1818 * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
1819 replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
43daa21e 1820 operand iterator.
7d3f6cc7 1821 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
43daa21e 1822 propagate_necessity): Use new operand iterator.
1823 * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
1824 (register_definitions_for_stmt): Use new operand iterator. Take stmt as
1825 a parameter instead of a stmt_ann_t.
1826 * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
1827 build_tree_conflict_graph): Use new operand iterator.
1828 * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
1829 rewrite_mem_refs): Use new operand iterator.
7d3f6cc7 1830 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
43daa21e 1831 check_loop_closed_ssa_use): Use new operand iterator.
1832 * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
1833 * tree-ssanames.c (release_defs): Use new operand iterator.
1834 * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
1835
05a7239a 18362004-08-25 Adam Nemet <anemet@lnxw.com>
1837
1838 * tlink.c (initial_cwd): New variable.
1839 (tlink_init): Initialize it.
1840 (recompile_files): Use tlink_execute() instead of system(). Don't
1841 duplicate verbose output of collect_execute. Restore initial_cwd.
1842 Update comment before the function.
1843
e0d844be 18442004-08-25 Ziemowit Laski <zlaski@apple.com>
1845
1846 * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
1847 accept) a cast from one Objective-C pointer type to another.
1848
d38c5855 18492004-08-25 Paolo Carlini <pcarlini@suse.de>
1850
1851 * doc/install.texi: Document that libstdc++-v3 requires
1852 now automake 1.9.1.
1853
1118aef7 18542004-08-25 Caroline Tice <ctice@apple.com>
1855
1856 * bb-reorder.c (partition_hot_cold_basic_blocks): Add more details
1857 to comments at start of function.
1858 * cfgbuild.c (make_edges): Add more details to hot/cold partitioning
1859 comment.
7d3f6cc7 1860 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1861 merge_blocks_move_predecessor_nojumps,
1862 merge_blocks_move_successor_nojumps, merge_blocks_move,
1118aef7 1863 try_crossjump_to_edge, try_crossjump_bb): Likewise.
1864 * cfglayout.c (fixup_reorder_chain): Likewise.
1865 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
1866 cfg_layout_can_merge_blocks_p): Likewise.
1867 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
7d3f6cc7 1868 * passes.c (rest_of_compilation): Update comments for calling
1118aef7 1869 optimization that partitions hot/cold basic blocks.
7d3f6cc7 1870 * doc/invoke.texi: Update documentation of
1118aef7 1871 freorder-blocks-and-partition flag.
7d3f6cc7 1872
63bd12e1 18732004-08-25 Richard Sandiford <rsandifo@redhat.com>
1874
1875 * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
1876 (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix.
1877
b440d994 18782004-08-25 Richard Sandiford <rsandifo@redhat.com>
1879
1880 * config/mips/mips.md (any_shift): New code macro.
1881 (optab, insn): New code attributes.
1882 ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
1883 Use the standard rather than internal patterns for the MIPS16
1884 double-shift optimization.
1885 (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
1886 Redefine using :GPR and any_shift.
1887 (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
1888 to cover all three shifts.
1889 (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
1890 Redefine using any_shift. Use :GPR and any_shift to combine splitters.
1891 (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
1892
7304b3a6 18932004-08-24 Geoffrey Keating <geoffk@apple.com>
1894
1895 * gimplify.c (lookup_tmp_var): Separate temporaries when not
1896 optimizing.
1897
8ab32933 18982004-08-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1899
1900 PR libstdc++/17005 (fix for HP-UX 11.11)
1901 * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
1902 (hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of
7d3f6cc7 1903 tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
8ab32933 1904 * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
1905 * config/pa/pa-hpux.h (TARGET_HPUX): Define.
1906 (LINK_SPEC): Handle march=1.0 option.
1907 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1908 and _XOPEN_SOURCE_EXTENDED for UNIX 95.
1909 (SUBTARGET_OPTIONS): New define.
1910 (LINK_SPEC): Handle march=1.0 option.
1911 (STARTFILE_SPEC): New define.
1912 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1913 and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine
1914 _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
1915 (SUBTARGET_OPTIONS): New define.
1916 (LINK_SPEC): Handle march=1.0 option.
1917 (STARTFILE_SPEC): New define.
1918 * config/pa/pa.c (override_options): Add code to process -munix= option.
1919 * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
1920 (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
1921 defines.
1922 (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
1923 (SUBTARGET_OPTIONS): Provide default define.
1924 * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
1925 STANDARD_STARTFILE_PREFIX_2): New defines.
1926 (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
1927 (ENDFILE_SPEC): Use %O.
1928 * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
1929 Mention issue caused by changing namespace and runtime to UNIX 95/98.
1930 * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
1931 Document -munix=std option.
1932
bc8ab538 19332004-08-25 Steven Bosscher <stevenb@suse.de>
1934
1935 * cse.c (cse_around_loop, cse_check_loop_start,
1936 cse_set_around_loop): Remove.
1937 (cse_basic_block): Remove the around_loop argument.
1938 (cse_end_of_basic_block): Remove the after_loop argument.
1939 (cse_main): Likewise.
1940 * rtl.h (cse_main): Update prototype.
1941 * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
1942 rest_of_handle_gcse): Update cse_main calls.
1943
7016c612 19442004-08-25 Nathan Sidwell <nathan@codesourcery.com>
1945
1946 * tree.h (build_int_cst): New, sign extended constant.
1947 (build_int_cstu): New, zero extended constant.
1948 (build_int_cst_wide): Renamed from build_int_cst.
1949 * tree.c (build_int_cst, build_int_cstu): New.
1950 (build_int_cst_wide): Renamed from build_int_cst.
1951 (make_vector_type, build_common_tree_nodes,
1952 build_common_tree_nodes_2): Adjust build_int_cst calls.
1953 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
1954 expand_builtin_strpbrk, expand_builtin_fputs,
1955 build_string_literal, expand_builtin_printf,
1956 expand_builtin_sprintf, fold_builtin_classify_type,
1957 fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
1958 fold_builtin_toascii, fold_builtin_isdigit,
1959 simplify_builtin_strstr, simplify_builtin_strpbrk,
1960 fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
1961 * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
1962 DEF_ATTR_INT): Likewise.
1963 * c-decl.c (complete_array_type, check_bitfield_type_and_width):
1964 Likewise.
1965 * c-lex.c (interpret_integer, lex_charconst): Likewise.
1966 * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
1967 * c-pretty-print.c (pp_c_integer_constant): Likewise.
1968 * c-typeck.c (really_start_incremental_init, push_init_level,
1969 set_nonincremental_init_from_string): Likewise.
1970 * calls.c (load_register_parameters): Likewise.
1971 convert.c (convert_to_pointer): Likewise.
1972 coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
1973 build_fn_info_type, build_fn_info_value, build_ctr_info_value,
1974 build_gcov_info): Likewise.
1975 * except.c (init_eh, assign_filter_values): Likewise.
1976 * expmed.c (store_fixed_bit_field, extract_bit_field,
1977 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
1978 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
1979 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
1980 * expr.c (convert_move, emit_group_load, emit_group_store,
1981 expand_assignment, store_constructor, store_field,
1982 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
1983 fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
1984 invert_truthvalue, optimize_bit_field_compare,
1985 decode_field_reference, all_ones_mask_p, constant_boolean_node,
1986 fold_div_compare, fold, fold_read_from_constant_string,
1987 fold_negate_const, fold_abs_const, fold_not_const, round_up,
1988 round_down): Likewise.
1989 * function.c (assign_parm_setup_block): Likewise.
1990 * stmt.c (shift_return_value, expand_case, estimate_case_costs):
1991 Likewise.
1992 * stor-layout.c (layout_type, initialize_sizetypes,
1993 set_min_and_max_values_for_integral_type): Likewise.
1994 * tree-chrec.c (chrec_fold_multiply_poly_poly,
1995 reset_evolution_in_loop): Likewise.
1996 * tree-chrec.h (build_polynomial_chrec): Likewise.
1997 * tree-complex.c (build_replicated_const): Likewise.
1998 * tree-eh.c (honor_protect_cleanup_actions,
1999 lower_try_finally_onedest, lower_try_finally_copy,
2000 lower_try_finally_switch): Likewise.
2001 * tree-mudflap.c (mf_build_string, mx_register_decls,
2002 mudflap_register_call, mudflap_enqueue_constant): Likewise.
2003 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
2004 * tree-pretty-print.c (dump_generic_node): Likewise.
2005 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
2006 Likewise.
2007 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2008 * tree-ssa-loop-niter.c (number_of_iterations_cond,
2009 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
2010 Likewise.
2011 * tree-ssa-loop-ivcanon.c (create_canonical_iv,
2012 canonicalize_loop_induction_variables): Likewise.
2013 * tree-vectorizer.c (vect_create_index_for_array_ref,
2014 vect_transform_loop_bound, vect_compute_data_ref_alignment):
2015 Likewise.
2016
2017 * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
2018 alpha_gimplify_va_arg_1): Likewise.
2019 * config/arm/arm.c (arm_get_cookie_size): Likewise.
2020 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2021 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2022 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2023 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
2024 mips_gimplify_va_arg_expr): Likewise.
2025 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2026 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
2027 add_compiler_branch_island): Likewise.
2028 * config/s390/s390.c (s390_va_start): Likewise.
2029 * config/sh/sh.c (sh_va_start): Likewise.
2030 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2031 Likewise.
2032 * config/xtensa/xtensa.c (xtensa_va_start,
2033 xtensa_gimplify_va_arg_expr): Likewise.
7d3f6cc7 2034
7016c612 2035 * objc/objc-act.c (build_objc_string_object,
2036 build_objc_symtab_template, init_def_list, init_objc_symtab,
2037 init_module_descriptor, generate_static_references,
2038 build_selector_translation_table, get_proto_encoding,
2039 build_typed_selector_reference, build_selector_reference,
2040 build_next_objc_exception_stuff,
2041 build_method_prototype_list_template, generate_descriptor_table,
2042 generate_protocols, build_protocol_initializer,
2043 build_ivar_list_template, build_method_list_template,
2044 build_ivar_list_initializer, generate_ivars_list,
2045 generate_dispatch_table, generate_protocol_list,
2046 build_category_initializer, build_shared_structure_initializer,
2047 generate_shared_structures, handle_impent,
2048 generate_objc_image_info): Likewise.
2049
5f1278e9 20502004-04-25 Paolo Bonzini <bonzini@gnu.org>
2051
2052 * cfglayout.c (duplicate_insn_chain): Remove references to
2053 NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
2054 * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
2055 * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
2056 * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
2057 and NOTE_INSN_LOOP_CONT.
2058 * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
2059 * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
2060 and NOTE_INSN_LOOP_CONT.
2061 * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
2062 check_dbra_loop, loop_dump_aux): Remove references to removed notes
2063 and fields.
2064 * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
2065 * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
2066 references to removed notes and fields.
2067 (subtract_reg_term, ujump_to_loop_cont): Remove.
2068
a668be26 20692004-08-25 Paolo Bonzini <bonzini@gnu.org>
2070
5f1278e9 2071 * doc/install.texi: Document that libcpp does not require
a668be26 2072 Automake any longer. Document that Automake 1.9.1 should
2073 work everywhere.
2074
346e0763 20752004-08-25 Zack Weinberg <zack@codesourcery.com>
2076
2077 * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
2078 * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
2079 DWARF_DEBUGGING_INFO from choice-of-definition chain;
2080 restructure using C89 features (#elif, #error).
2081 * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
2082 * config/sh/sh.h: Remove references to DWARF_DEBUG.
2083 * doc/invoke.texi: Remove references to DWARF version 1;
2084 clarify why -gdwarf-2<n> doesn't work.
2085
91ef7ecb 20862004-08-25 Zack Weinberg <zack@codesourcery.com>
2087
2088 * basic-block.h (BB_SET_PARTITION): Clear old value first.
2089 * cfg.c (clear_bb_flags): Don't clear partition setting.
a9b8c2ff 2090 * ifcvt.c (find_if_case_1): Remove ??? comment.
91ef7ecb 2091
cfd67584 20922004-08-25 Alan Modra <amodra@bigpond.net.au>
2093
2094 PR target/17052
2095 * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
2096 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
2097 current_function_stdarg in place of sysv_varargs_p.
2098 * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
2099 sysv_varargs_p.
2100
d8823edb 21012004-08-24 Richard Henderson <rth@redhat.com>
2102
2103 PR target/16298
2104 * config/i386/i386.c (legitimate_constant_p): Rework to not accept
2105 random codes within CONST.
2106
74ca0dd9 21072004-08-24 James E Wilson <wilson@specifixinc.com>
2108
2109 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
2110 -freorder-blocks-and-partition.
2111
a3d0fd80 21122004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2113
2114 PR middle-end/17044
2115 * tree-ssa-threadupdate.c (redirection_data): Make static.
2116 (thread_block): Use ggc_alloc_cleared to allocate struct
2117 redirection_data. Don't free elements in redirection_data.
2118
b218b649 21192004-08-24 Richard Sandiford <rsandifo@redhat.com>
2120
2121 * config/mips/predicates.md (small_data_pattern): Match prefetches.
2122
4fef3950 21232004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2124
2125 PR tree-optimization/17016
2126 * tree-ssa-loop-niter.c (number_of_iterations_cond,
2127 number_of_iterations_exit): Use POINTER_TYPE_P instead
2128 of testing for POINTER_TYPE.
2129
bb445479 21302004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2131
2132 * tree-ssa-loop-ivcanon.c: New file.
2133 * tree-ssa-loop-manip.c (create_iv): New function.
2134 * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
2135 (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
2136 * cfgloop.c (mark_single_exit_loops): New function.
2137 (verify_loop_structure): Verify single-exit loops.
2138 * cfgloop.h (struct loop): Add single_exit field.
2139 (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
2140 (mark_single_exit_loops): Declare.
2141 (tree_num_loop_insns): Declare.
2142 * cfgloopmanip.c (update_single_exits_after_duplication): New function.
2143 (duplicate_loop_to_header_edge): Use it.
2144 * common.opt (fivcanon): New flag.
2145 * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
2146 * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
2147 (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
2148 (bsi_insert_on_edge_immediate): New function.
2149 * tree-flow.h (bsi_insert_on_edge_immediate,
2150 canonicalize_induction_variables, tree_unroll_loops_completely,
2151 create_iv): Declare.
2152 * tree-optimize.c (init_tree_optimization_passes): Add
2153 pass_iv_canon and pass_complete_unroll.
2154 * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
2155 * tree-scalar-evolution.c (get_loop_exit_condition,
2156 get_exit_conditions_rec, number_of_iterations_in_loop,
2157 scev_initialize): Use single_exit information.
2158 * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
2159 missing assumptions.
2160 (loop_niter_by_eval): Return number of iterations as unsigned
2161 int.
2162 * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
2163 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
2164 tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
2165 New passes.
2166 (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
2167 * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
2168 the defining statement is ready.
2169 * tree-vectorizer.c (vect_create_iv_simple): Removed.
2170 (vect_create_index_for_array_ref, vect_transform_loop_bound):
2171 Use create_iv.
2172 (vect_transform_loop_bound): Use single_exit information.
2173 (vect_analyze_loop_form): Cleanup bogus tests.
2174 (vectorize_loops): Do not call flow_loop_scan.
2175 * tree.h (may_negate_without_overflow_p): Declare.
2176 * fold-const.c (may_negate_without_overflow_p): Split out from ...
2177 (negate_expr_p): ... this function.
2178 (tree_expr_nonzero_p): Handle overflowed constants correctly.
2179 * doc/invoke.texi (-fivcanon): Document.
2180 * doc/passes.texi: Document canonical induction variable creation.
2181
00b5c4a1 21822004-08-24 Richard Sandiford <rsandifo@redhat.com>
2183
2184 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
2185 * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
2186 using the mode of the operand to decide between them.
2187 * config/mips/mips.md (MOVECC): New mode macro.
2188 (ccreg): New mode attribute.
2189 (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
2190 Redefine using :GPR and :MOVECC. Use %T and %t for the condition.
2191 (mov[sd]icc): Redefine using :GPR.
2192
f61e0070 21932004-08-24 Richard Sandiford <rsandifo@redhat.com>
2194
a062259b 2195 * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
2196 (mips_prefetch_cookie): New function.
2197 * config/mips/mips.c (print_operand_address): Fix handling of
2198 ADDRESS_CONST_INT.
2199 (mips_emit_prefetch): Delete.
2200 (mips_prefetch_cookie): New function.
2201 * config/mips/mips.md (prefetch): Turn into a define_insn. Use a
2202 mode of QImode for the address_operand. Use mips_prefetch_cookie
2203 to calculate the first "pref" operand.
2204 (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
2205 (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie.
f61e0070 2206
9c9db025 22072004-08-24 Richard Earnshaw <rearnsha@arm.com>
2208
2209 * arm.md: Include predicates.md.
2210 * predicates.md: New file.
2211 * arm.c (s_register_operand, arm_hard_register_operand)
2212 (arm_general_register_operand, f_register_operand, reg_or_int_operand)
2213 (arm_immediate_operand, arm_neg_immediate_operand)
2214 (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
2215 (arm_add_operand, arm_addimm_operand, arm_not_operand)
2216 (offsettable_memory_operand, alignable_memory_operand)
2217 (arm_reload_memory_operand, arm_float_rhs_operand)
2218 (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
2219 (index_operand, shiftable_operator, logical_binary_operator)
2220 (shift_operator, equality_operator, arm_comparison_operator)
2221 (minmax_operator, cc_register, dominant_cc_register)
2222 (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
2223 (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
2224 (const_shift_operand, load_multiple_operation)
2225 (store_multiple_operation, multi_register_push, thumb_cmp_operand)
2226 (thumb_cmpneg_operand, thumb_cbrch_target_operand)
2227 (cirrus_register_operand, cirrus_fp_register)
2228 (cirrus_shift_const): Delete, replaced with equivalents in
2229 predicates.md.
2230 (shift_op): Handle ROTATE.
2231 * arm-protos.h: Delete declarations for above.
2232 * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
2233 * t-arm (MD_INCLUDES): Add predicates.md.
2234 (s-preds): Depends on MD_INCLUDES.
2235
1af661a2 22362004-08-24 Richard Sandiford <rsandifo@redhat.com>
2237
2238 * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
2239 * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
2240 patterns. Redefine using :GPR. Give the match_operator a mode.
2241 Use '%2' rather than '%z2' for operand 2.
2242
23f069b7 22432004-08-24 Richard Sandiford <rsandifo@redhat.com>
2244
2245 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
2246 attribute.
2247
d9c7ac08 22482004-08-24 Richard Sandiford <rsandifo@redhat.com>
2249
2250 * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names
2251 of internal patterns.
2252 (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
2253 Redefine using :P.
2254 (tablejump): Use expand_binop to calculate address. Adjust names
2255 of internal patterns.
2256 (tablejump[sd]i): Renamed from tablejump_internal[12].
2257 Redefine using :P.
2258 (tablejump_mips16[12]): Delete.
2259
96b6c04e 22602004-08-24 Richard Sandiford <rsandifo@redhat.com>
2261
2262 * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
2263 (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
2264 (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
2265 (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
2266 (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
2267
a5901899 22682004-08-24 Richard Sandiford <rsandifo@redhat.com>
2269
2270 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
2271 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
2272 using :GPR.
2273 (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
2274 (*branch_equality[sd]i): Likewise branch_equality{,_di}.
2275 (*branch_equality[sd]i_inverted): Likewise
2276 branch_equality{,_di}_inverted.
2277 (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
2278 Redefine using :GPR.
2279
309d3953 22802004-08-24 Zack Weinberg <zack@codesourcery.com>
2281
2282 * rtl.def: Reorganize, placing all codes used only in machine
2283 descriptions at the end.
2284
12d4f380 2285 * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
2286 * gengtype.c: Don't include rtl.h. Define enum rtx_code and
2287 rtx_name, rtx_format arrays by direct reference to rtl.def,
2288 first undefining GENERATOR_FILE. Define enum insn_note and
2289 note_insn_name array by direct reference to insn-notes.def.
2290 (adjust_field_rtx_def): Remove local definition of rtx_name.
2291 Use symbolic names for insn notes.
2292 * Makefile.in (gengtype.o): Update dependencies.
2293
7562ed74 22942004-08-24 Zack Weinberg <zack@codesourcery.com>
2295
2296 * basic-block.h (struct basic_block_def): Reorder fields to
2297 eliminate interior padding. Remove 'partition' field.
2298 (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
2299 (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
2300 (BB_COPY_PARTITION): New macros.
2301 * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
2302 Replace all references to the 'partition' field of a basic
2303 block with new macros.
2304
2305 * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
2306 * final.c (final_scan_insn): Don't handle it.
2307 * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
2308 instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
2309 * sched-rgn.c (sched_is_disabled_for_current_region_p):
2310 Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
2311
1561d3cd 23122004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2313
2314 * c-decl.c (c_init_decl_processing): Adjust
2315 build_common_tree_nodes call.
2316 * expmed.c (const_mult_add_overflow_p): Use
2317 build_distinct_type_copy.
2318 * stor-layout.c (early_type_list): Remove.
2319 (layout_type): Don't append to early_type_list.
2320 (initialize_sizetypes): Add signed_p argument.
2321 (set_sizetype): Overwrite the stub type nodes directly.
2322 * tree.c (copy_node_stat): Clear a type's value cache here ...
2323 (build_distinct_type): ... not here.
2324 (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
2325 * tree.h (initialize_sizetypes): Add signed_p argument.
2326 (build_common_tree_nodes): Likewise.
2327
2328 * objc/objc-act.c (get_static_reference): Use
2329 build_variant_type_copy.
2330 (get_protocol_reference): Likewise.
2331 * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
2332
52e3087a 23332004-08-24 Richard Henderson <rth@redhat.com>
7562ed74 2334 Andrew Pinski <apinski@apple.com>
52e3087a 2335
2336 * gimplify.c (gimplify_array_ref_to_plus): Delete.
2337 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
2338 for ARRAY_REF.
2339
2340 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
2341 ARRAY_REF also to get to the STRING_CST.
2342
eb03dcf8 23432004-08-24 Paul Brook <paul@codesourcery.com>
2344
2345 * config/arm/arm.c (arm_override_options): Update error message.
2346 * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
2347 TARGET_HARD_FLOAT_ABI.
2348 (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
2349 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
2350
e2f3e7ec 23512004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2352
2353 PR target/17093
2354 * config/m32r.md (movsi_sda): Add SI mode specification to
2355 UNSPEC.
2356
23572004-08-24 Nick Clifton <nickc@redhat.com>
2358
2359 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
2360 of seth_add3_operand.
2361
5edbc38d 23622004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2363
2364 * Makefile.in (PROTO_OBJS): Add errors.o.
2365 * protoize.c (fancy_abort): Remove.
2366 * mips-tfile.c (fancy_abort): Add parameters.
2367
19200cc6 23682004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
2369
2370 * doc/trouble.texi (C++ misunderstandings): Fix example code.
2371
2a4b756a 23722004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
2373
2374 * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
2375 (host-default.o): Add dependency on HOOKS_H.
2376 * config/x-linux: Likewise.
2377 * config/x-solaris: Likewise.
2378 * config/i386/x-mingw32: Likewise.
2379 * config/rs6000/x-darwin: Likewise.
2380
e2bb72c9 23812004-08-23 James E Wilson <wilson@specifixinc.com>
2382
2383 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
2384 DEF_REG_NOTE.
2385
13346250 23862004-08-23 Mark Mitchell <mark@codesourcery.com>
2387
2388 PR c/14492
2389 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
2390
a133d57d 23912004-08-23 Diego Novillo <dnovillo@redhat.com>
2392
2393 * cfg.c (check_bb_profile): Fix typos.
2394 * function.c (assign_parm_is_stack_parm): Likewise.
2395 * tree-nested.c: Likewise.
2396
d69251d0 23972004-08-23 Daniel Jacobowitz <dan@debian.org>
2398
2399 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
2400 Remove TYPECODE.
2401 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
2402
9e7454d0 24032004-08-23 Eric Christopher <echristo@redhat.com>
2404
2405 * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
2406 * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
2407 * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
2408 * target.h: Ditto.
2409 * hooks.h: Include machmode.h.
2410 (hook_bool_mode_false): Declare.
2411 * hooks.c (hook_bool_mode_false): Define.
2412 * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
2413 * stor-layout.c (layout_type): Ditto.
2414 * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
2415 Define to target macro.
2416 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
2417 * config/arm/arm.c: Ditto. Use.
2418 * config/arm/arm.h: Ditto.
2419 * config/arm/arm-protos.h: Ditto.
2420 * config/i386/i386.c: Ditto.
2421 * config/i386/i386.h: Ditto.
2422 * config/rs6000/rs6000.c: Ditto.
2423 * config/rs6000/rs6000.h: Ditto.
2424 * config/sh/sh.c: Ditto.
2425 * config/sh/sh.h: Ditto.
2426 * config/sh/sh-protos.h: Ditto.
2427 * config/sh/sh.md: Use.
2428 * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
2429 to TARGET_VECTOR_MODE_SUPPORTED_P.
2430
e086912e 24312004-08-23 Nathan Sidwell <nathan@codesourcery.com>
2432
117115d0 2433 * Makefile.in (BUILD_ERRORS): Set to build-errors.
2434 (errors.o): New target for host.
2435 (build-errors.o): New target for build.
2436 (genobjs): Replace errors.o with build-errors.
2437 (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
2438 (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
2439 (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
2440 (fix-header.o): Add errors.h
2441 * collect2.c (fancy_abort): Add parameters.
2442 * collect2.h (fancy_abort): Don't declare.
2443 * errors.h (fancy_abort): Don't declare.
2444 * errors.c: Include either bconfig.h or config.h.
2445 (fancy_abort): Trim filename.
2446 * fix-header.c (v_fatal, fatal): Remove.
2447 (progname): Remove definition.
2448 (main): Set progname here.
2449 * gcc.c (fancy_abort): Add parameters.
2450 * gcc.h (fancy_abort): Remove declaration.
2451 * gcov.c (fancy_abort): Remove.
2452 * rtl.h (fancy_abort): Don't declare.
2453 (abort): Don't define.
2454 * tree.h (fancy_abort): Don't declare.
2455 (abort): Don't define.
2456 * system.h (fancy_abort): Declare.
2457 (abort): Define to fancy_abort.
2458 * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
2459
e2134ab3 2460 * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
2461 (usize_type, ubitsizetype): Remove.
2462 * stor-layout.c (set_sizetype): Don't initialize usizetype,
2463 ubitsizetype.
2464 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
2465
e086912e 2466 * tree.h (build_distinct_type_copy): New.
2467 (build_type_copy): ... here. Rename to ...
2468 (build_variant_type_copy): ... here.
2469 * tree.c (build_qualified_type): Rename build_type_copy call.
2470 (build_distinct_type_copy): New, broken out of ...
2471 (build_type_copy): ... here. Rename to ...
2472 (build_variant_type_copy): ... here. Use
2473 build_distinct_type_copy.
2474 (build_common_tree_nodes_2): Rename build_type_copy call.
2475 * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
2476 call.
2477 (handle_packed_attribute, handle_unused_attribute,
2478 handle_transparanet_union_attribute, handle_aligned_attribute,
2479 handle_deprecated_attribute): Likewise.
2480 * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
2481 Likewise.
2482 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
2483 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
2484 build_distinct_type_copy.
2485
e45cb886 24862004-08-23 Richard Sandiford <rsandifo@redhat.com>
2487
2488 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
2489 attribute.
2490
eade3a14 24912004-08-23 Richard Sandiford <rsandifo@redhat.com>
2492
2493 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
2494 loads and stores.
2495 (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
2496 formerly unnamed patterns. Redefine using :P for the address. Remove
2497 explicit length attributes.
2498
69154f26 24992004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2500
2501 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
2502 New functions.
2503 (single_reachable_address): Use them.
2504 (schedule_sm): Add dump.
2505 (is_call_clobbered_ref): New function.
2506 (determine_lsm_reg): Check whether the reference is call clobbered.
2507 Only work for gimple_reg_type values.
2508
2f086a7b 25092004-08-23 Richard Sandiford <rsandifo@redhat.com>
2510
2511 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
2512 $31 store insns. Redefine using :GPR.
2513
3b4b2008 25142004-08-23 Richard Sandiford <rsandifo@redhat.com>
2515
2516 * config/mips/mips.md (P): New mode macro.
2517 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
2518 (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
2519 Add mode attributes.
2520
32718ad3 25212004-08-23 Richard Sandiford <rsandifo@redhat.com>
2522
2523 * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
2524 (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle
2525 later constants to cover the gap.
2526 (load, store): New mode attributes.
2527 (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
2528 Use new unspec constants.
2529
e8c512e0 25302004-08-23 Richard Sandiford <rsandifo@redhat.com>
2531
2532 * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
2533 (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns
2534 to use register_operand rather than uns_arith_operand as the predicate
2535 for operand 1. Remove redundant MIPS16 force_reg() for operand 1.
2536 (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
2537 Redefine using :GPR. Make same predicate change here. Extend the
2538 commutativity of operands 1 and 2 from the SImode version to the
2539 DImode one.
2540 (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
2541 but with no predicate changes.
2542 (*nor[sd]i3): Redefine using :GPR.
2543
760199f8 25442004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2545
2546 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
2547 noreturn functions.
2548
c9da51a5 25492004-08-23 Richard Sandiford <rsandifo@redhat.com>
2550
2551 * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
2552 * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use
2553 branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%."
2554 rather than "%z2" (with a fake const0_rtx for operand 2).
2555 (ffs[sd]i2): Redefine using :GPR.
2556 (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case.
2557
8a7b057f 25582004-08-23 Richard Sandiford <rsandifo@redhat.com>
2559
2560 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
2561
48636c52 25622004-08-23 Richard Sandiford <rsandifo@redhat.com>
2563
2564 * config/mips/mips.md (any_extend): New code macro.
2565 (u, su): New code attributes.
2566 ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
2567 ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
2568 ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
2569 (*{s,u}mul_acc_di): Redefine using any_extend.
2570 (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns
2571 to reflect real insn names.
2572 (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
2573 with an any_extend template.
2574 ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
2575 Add '*' to name.
2576
87974ea2 25772004-08-23 Richard Sandiford <rsandifo@redhat.com>
2578
2579 * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
2580 * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
2581 (mul[sd]i3_r4000): Redefine using :GPR.
2582 (mulsi3_mult3): Don't check TARGET_MAD separately.
2583 (muldi3_mult3): Moved after mulsi_mult3.
2584
b93bf04a 25852004-08-23 Richard Sandiford <rsandifo@redhat.com>
2586
2587 * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
2588 OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld.
2589 * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down.
2590 (TARGET_GAS, TARGET_MIPS_AS): Delete.
2591 (TARGET_GPWORD): Define to true for n32 on IRIX.
2592 (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op.
2593 (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
2594 (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
2595 (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
2596 (MDEBUG_ASM_SPEC): Delete, folding into...
2597 (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
2598 (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches.
2599 (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
2600 subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT
2601 to define asm_abi_default_spec.
2602 (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
2603 (TARGET_ASM_SELECT_SECTION): Delete.
2604 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
2605 for non-mips16 code, removing previous workaround for SGI assemblers.
2606 (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
2607 (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
2608 (override_options): Remove !TARGET_GAS and !have_named_sections code.
2609 (print_operand): Fold TARGET_GAS conditionals into asm strings.
2610 (mips_output_filename): Remove !TARGET_GAS code. Replace use of
2611 ASM_STABS_OP and ASM_STABN_OP.
2612 (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
2613 (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
2614 (mips_output_function_prologue): Remove !TARGET_GAS code.
2615 (mips_select_rtx_section): Remove !have_named_sections code.
2616 (mips_select_section): Delete.
2617 * config/mips/mips.md (trap): Remove !TARGET_GAS check.
2618 * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
2619 * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
2620 (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
2621 * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
2622 * config/mips/windiss.h (ASM_SPEC): Likewise.
2623
4a293229 26242004-08-23 Richard Sandiford <rsandifo@redhat.com>
2625
2626 * read-rtl.c (map_value, mapping, macro_group): New structures.
2627 (BELLWETHER_CODE): New macro.
2628 (modes, codes, bellwether_codes): New variables.
2629 (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
2630 (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
2631 (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
2632 (add_condition_to_rtx, apply_macro_traverse, add_mapping)
2633 (add_map_value, initialize_macros): New functions.
2634 (def_hash, def_hash_eq_p): Generalize to anything that points to,
2635 or starts with, a char * field.
2636 (find_macro, read_mapping, check_code_macro): New functions.
2637 (read_rtx_1): New, split out from read_rtx. Handle the new
2638 define_{mode,code}_{macro,attr} constructs. Use find_macro
2639 to parse the name of a code or mode. Use BELLWETHER_CODE to
2640 extract the format and to choose a suitable code for rtx_alloc.
2641 Modify recursive invocations to use read_rtx_1.
2642 (read_rtx): Call initialize_macros. Apply code and mode macros
2643 to the rtx returned by read_rtx_1. Cache everything after the
2644 first macro expansion for subsequent read_rtx calls.
2645 * doc/md.texi: Document new .md constructs.
2646 * config/mips/mips.md (GPR): New mode macro.
2647 (d, si8_di5): New mode attributes.
2648 (any_cond): New code macro.
2649 (add[sd]i3): Redefine using :GPR.
2650 (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
2651 (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
2652 previously unnamed MIPS16 patterns.
2653 (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long
2654 lines. Don't match (plus (const_int 0) ...).
2655 (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
2656 Use a define_split to generate the addition.
2657 (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn.
2658 (subsi3_internal): Delete.
2659 (*subsi3_extended): Renamed from subsi3_internal_2.
2660 (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
2661 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
2662 using an any_cond template.
2663
6f7111d2 26642004-08-23 Richard Sandiford <rsandifo@redhat.com>
2665
2666 * read-rtl.c (read_rtx): Tidy use of format_ptr.
2667
a50f2245 26682004-08-23 Richard Sandiford <rsandifo@redhat.com>
2669
2670 * read-rtl.c (string_obstack): New file-scope variable.
2671 (read_string, read_quoted_string, read_braced_string)
2672 (read_escape): Remove obstack parameter and use string_obstack instead.
2673 (read_rtx): Remove function-local rtl_obstack and initialize
2674 string_obstack instead. Update call to read_string.
2675
db79c9b4 26762004-08-22 Andrew Pinski <apinski@apple.com>
2677
2678 PR c/15262
2679 * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
2680 expression is not constant.
2681 (c_finish_return): Do not go through INDIRECT_REF when looking
2682 for the inner expression of an ADDR_EXPR for warning about.
2683
c578459e 26842004-08-22 Richard Henderson <rth@redhat.com>
2685
2686 PR 17075
2687 * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
2688 create new blocks and fall through.
2689 (expand_gimple_basic_block): Update to match.
2690
e4542435 26912004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
2692
2693 * reload.c (find_reloads_address): Make return value tri-state.
2694 Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
2695 (find_reloads): Assume that reloaded addresses match 'o' or
2696 EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
2697 returned 1 (not -1). Omit optional reloads for address operands
2698 only if find_reloads_address returned 1 (not -1).
2699
2700 * config/s390/s390.c (legitimize_reload_address): New function.
2701 * config/s390/s390-protos.h (legitimize_reload_address): Declare.
2702 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call
2703 legitimize_reload_address.
2704
0c8fe10f 27052004-08-22 Richard Hendersion <rth@redhat.com>
2706
2707 * tree.h (SAVE_EXPR_RESOLVED_P): New.
2708 * gimplify.c (gimplify_save_expr): Use it.
2709 * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P
2710 on the temporary variable.
2711
63144317 27122004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
2713
2714 * fold-const.c (rtl_expr_nonnegative_p): Delete.
2715 * tree.h (rtl_expr_nonnegative_p): Remove.
2716
51a26f41 27172004-08-22 Steven Bosscher <stevenb@suse.de>
2718
2719 * config/i386/ppro.md (ppro_complex_insn): Add missing check
2720 for cpu==pentiumpro.
2721
2722 * combine.c (struct reg_stat): Fix comment typo.
2723
aa951e73 27242004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
2725
2726 * c-tree.h (c_sizeof_nowarn): Remove.
2727
0a423af5 27282004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
2729
2730 * c-decl.c (set_array_declarator_type): Rename to
2731 set_array_declarator_inner.
2732 (build_c_parm, build_attrs_declarator, build_function_declarator):
2733 New functions.
2734 (make_pointer_declarator): Call build_attrs_declarator.
2735 * c-tree.h (set_array_declarator_type): Rename to
2736 set_array_declarator_inner.
2737 (build_c_parm, build_attrs_declarator, build_function_declarator):
2738 New prototypes.
2739 * c-parse.in (after_type_declarator,
2740 parm_declarator_starttypename, parm_declarator_nostarttypename,
2741 notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
2742 firstparm): Use these functions
2743
4a125bfc 27442004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
2745
2746 * c-decl.c (build_array_declarator, set_array_declarator_type,
2747 start_decl, grokdeclarator, grokparms): Change boolean parameters
2748 to type bool.
2749 * c-tree.h (build_array_declarator, set_array_declarator_type,
2750 start_decl): Update prototypes.
2751 * c-decl.c, c-parse.in: All callers changed.
2752
34d2ae7f 27532004-08-21 Mike Stump <mrs@apple.com>
2754
2755 * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
2756 (darwin_fix_and_continue): Likewise.
2757 (darwin_fix_and_continue_switch): Likewise.
2758 * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
2759 (darwin_fix_and_continue): Likewise.
2760 (darwin_fix_and_continue_switch): Likewise.
2761
7e192c91 27622004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
c00b5645 2763
2764 PR c++/16030
2765 * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
2766 Remove, merging into ...
2767 (gen_stdcall_or_fastcall_suffix): New function, returning tree
2768 rather than const char*, and accepting additional parameter.
2769 Don't add suffix to '*'-prefixed symbols or variadic functions.
2770 (i386_pe_encode_section_info): Adjust for call to new function.
2771 Call change_decl_assembler_name.
2772
329f67ae 27732004-08-20 Mike Stump <mrs@apple.com>
2774
2775 * config/darwin.c (machopic_indirect_data_reference): Mark
2776 stubs as defined.
2777 * config/386/386.c (darwin_local_data_pic): Add.
2778 (legitimate_constant_p): Reorder so that PLUS handling runs
2779 before darwin_local_data_pic to match the ordering in
2780 legitimate_pic_address_disp_p and so that MINUS runs after
2781 darwin_local_data_pic as otherwise the darwin_local_data_pic
2782 logic can be skipped, which would be very bad.
2783 (legitimate_pic_address_disp_p): Move from from here to
2784 darwin_local_data_pic so it can be reused.
2785
66ebfa67 27862004-08-21 Alan Modra <amodra@bigpond.net.au>
2787
2788 * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
2789 (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
2790 (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
2791 (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
2792 (RS6000_ABI_NAME): Define as "linux".
2793 (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
2794 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
2795 ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
2796 * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
2797 * config/rs6000/rs6000.c (dot_symbols): New global var.
2798 (rs6000_output_function_entry): New function, modified for
2799 !DOT_SYMBOLS..
2800 (print_operand <case 'z'>): ..extracted from here.
2801 (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
2802 (rs6000_output_function_epilogue): Likewise.
2803 (rs6000_elf_declare_function_name): Likewise.
2804 * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
2805 (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
2806 * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
2807 * configure: Regenerate.
2808 * config.in: Regenerate.
2809
f25bee5a 28102004-08-20 Mark Mitchell <mark@codesourcery.com>
2811
ee90634d 2812 * reload.c (find_reloads_address): Fix thinko in previous change.
2813
f25bee5a 2814 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
2815 a CONST_INT.
2816
17c7352a 28172004-08-20 Jakub Jelinek <jakub@redhat.com>
2818
2819 PR rtl-optimization/17099
2820 * combine.c (force_to_mode): Check if inner_mask has any bits set
2821 outside of GET_MODE (x) instead of op_mode.
2822
b5888091 28232004-08-20 Mark Mitchell <mark@codesourcery.com>
2824
2825 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
2826 fragment.
2827 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
2828 (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
2829 * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
2830 architecture.
2831 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
2832 configurations.
2833 * config/arm/t-symbian: New file.
2834
90bd6a0a 28352004-08-20 Andrew Pinski <apinski@apple.com>
2836
2837 * regrename.c (kill_value_regno): ANSIfy.
2838
d800e225 28392004-08-20 Dale Johannesen <dalej@apple.com>
2840
51a26f41 2841 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
d800e225 2842
032b6a07 28432004-08-20 Daniel Jacobowitz <dan@debian.org>
2844
2845 * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
2846 (kill_value_regno): New function, derived from kill_value.
2847 (kill_value): Update.
2848 (copyprop_hardreg_forward_1): Update call to kill_value_regno.
2849
8b899191 28502004-08-20 Daniel Berlin <dberlin@dberlin.org>
9e7454d0 2851
8b899191 2852 Fix PR tree-optimization/17111
2853 * tree-ssa-pre.c (create_value_expr_from): Don't change the types
2854 of non-value_handles.
2855 (bitmap_set_contains): All constants are in every set.
2856
cda13ce3 28572004-08-20 Nathan Sidwell <nathan@codesourcery.com>
2858
2859 * fold-const.c (round_up, round_down): Use build_int_cst.
2860 Optimize common case.
2861
99c11254 28622004-08-20 Zack Weinberg <zack@codesourcery.com>
2863 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2864
51a26f41 2865 * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
99c11254 2866 one_only_data_section): Rename to som_readonly_data_section,
2867 som_one_only_readonly_data_section and som_one_only_data_section.
51a26f41 2868 * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
cda13ce3 2869 NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
2870 conditional defines.
99c11254 2871 (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
2872 NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
2873 string values.
2874 (pa_select_section): Use renamed section functions.
2875 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
51a26f41 2876 SOM_READONLY_DATA_SECTION_FUNCTION,
99c11254 2877 SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
51a26f41 2878 SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
2879 Define here ...
2880 * config/pa/som.h: ... not here.
2881 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
99c11254 2882 ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
2883 ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
51a26f41 2884 ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
2885 (READONLY_DATA_SECTION): Use som_readonly_data_section.
99c11254 2886
34399e1a 28872004-08-20 Nathan Sidwell <nathan@codesourcery.com>
2888
c7709b98 2889 * fold-const.c (int_const_binop): Don't generate non-overflowing
2890 size-types specially.
2891 (fold_convert_const): Likewise.
2892
34399e1a 2893 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
2894 clear cache on copied sizetype.
2895
36d91445 28962004-08-20 Ben Elliston <bje@au.ibm.com>
2897
2898 * configure.ac: Don't escape apostrophe in --enable-coverage help.
2899 * configure: Regenerate.
2900
030ec15c 29012004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
2902
2903 PR 5620
2904 * gcc.c (struct stat input_stat): Don't define if
2905 HOST_LACKS_INODE_NUMBERS
2906 (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
2907 than stat to determine if temp file is same as input file.
2908 * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
2909 * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
2910
6e930e6c 29112004-08-20 Richard Sandiford <rsandifo@redhat.com>
2912
2913 * configure.ac (mips*-*-*): Print an error if not using GAS.
2914 * configure: Regenerated.
2915 * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
2916 comments about buggy MIPSpro assemblers.
2917 * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
2918 before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
2919 Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
2920 IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
2921 * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
2922 (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
2923 (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
2924 (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
2925 (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
2926 of more general IRIX 6 definitions.
2927 (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
2928 (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
2929 (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
2930 (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
2931 (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2932 (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
2933 (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
2934 (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
2935 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
2936 (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
2937 (LINK_SPEC): Move most of definition to iris.h.
2938 (SUBTARGET_LINK_SPEC): New macro.
2939 (IRIX_STARTFILE_SPEC): Fold into...
2940 (STARTFILE_SPEC): ...here.
2941 (IRIX_ENDFILE_SPEC): Fold into...
2942 (ENDFILE_SPEC): ...here.
2943 * config/mips/iris6.h (TARGET_IRIX5): Remove override.
2944 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
2945 (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
2946 (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
2947 (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
2948 (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
2949 (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
2950 (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2951 (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
2952 (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
2953 (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
2954 (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
2955 (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
2956 (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
2957 (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
2958 (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
2959 (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
2960 (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
2961 (TARGET_IRIX6): Define to 1.
2962 (DRIVER_SELF_SPECS): Define.
2963 (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
2964 (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
2965 (SUBTARGET_LINK_SPEC): New macro.
2966 (IRIX_STARTFILE_SPEC): Fold into...
2967 (STARTFILE_SPEC): ...here. Remove !mabi=* case.
2968 (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
2969 (LIB_SPEC, LIBGCC_SPEC): Use them.
2970 (LIB_SPEC): Remove !mabi=* case.
2971 (IRIX_ENDFILE_SPEC): Fold into...
2972 (ENDFILE_SPEC): ...here. Remove !mabi=* case.
2973 * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
2974 * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
2975 (TARGET_IRIX6): New macro.
2976 (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
2977 (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
2978 (LABEL_AFTER_LOC): Delete.
2979 * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
2980 (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
2981 (mips_build_builtin_va_list): Check TARGET_IRIX6.
2982 (override_options): Remove TARGET_SGI_O32_AS-related code.
2983 (irix_output_external_libcall): Make static.
2984 (mips_output_filename): Avoid use of SET_FILE_NUMBER and
2985 LABEL_AFTER_LOC.
2986 (mips_file_start): Tidy guard for ABI sections. Remove use of
2987 ABICALLS_ASM_OP; use .abicalls instead.
2988 (mips_output_aligned_decl_common, mips_declare_object_name)
2989 (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
2990 (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
2991 .globl foo .text directives.
2992 (irix_asm_named_section_1, irix_asm_named_section)
2993 (irix_section_align_entry, irix_section_align_htab)
2994 (irix_orig_asm_out_file, irix_section_align_entry_eq)
2995 (irix_section_align_entry_hash, irix_asm_output_align)
2996 (irix_file_start, irix_section_align_1, copy_file_data)
2997 (irix_file_end, irix_section_type_flags): Delete.
2998 * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
2999 Use standard section syntax. Remove protective "jr $31".
3000 (__gcc_fini): Likewise .gcc_fini.
3001 * config/mips/irix-crtn.asm: Adjust sections accordingly.
3002 * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
3003 iris5gas.h.
3004 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
3005 from t-irix-gld.
3006 (EXTRA_MULTILIB_PARTS): Define.
3007 * config/mips/t-iris6: Remove bogus comment.
3008 (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
3009 * config/mips/iris5gas.h, config/mips/iris5gld.h,
3010 config/mips/iris6gas.h, config/mips/iris6gld.h,
3011 config/mips/t-iris5-as, config/mips/t-iris5-gas
3012 config/mips/t-irix-gld: Delete.
3013 * config/mips/iris.h: New file.
3014 * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
3015
f222bc3b 30162004-08-20 Richard Earnshaw <rearnsha@arm.com>
3017
3018 * postreload.c (reload_cse_move2add): Allow any condjump, but check
3019 that the implicit set isn't clobbered in the jump insn.
3020
d6583d40 30212004-08-19 Mark Mitchell <mark@codesourcery.com>
3022
3023 * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
3024 * optabs.c (init_optabs): Don't check it.
3025 * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
3026 * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
3027
cbb300e8 30282004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
3029
3030 * config/s390/s390.md (s390_warn_framesize_string)
3031 (s390_warn_dynamic_string, s390_stack_size_string)
3032 (s390_stack_guard_string): New global string variables.
3033 (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
3034 (s390_stack_guard): New global variables.
3035 (override_options): Added checks for the new options.
3036 (s390_emit_prologue): Emit stack check and trap code and perform
3037 compile time stack size checking.
9e7454d0 3038
3039 * config/s390/s390.h (TARGET_OPTIONS): Added new options
cbb300e8 3040 "warn-framesize", "warn-dynamicstack", "stack-size" and
3041 "stack-guard".
3042
3043 * doc/invoke.texi: Added documentation for the new options.
3044
88cbb18b 30452004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
3046
3047 * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
3048 to eliminate warning.
3049 (linear_search_fdes): Declare p as unsigned.
3050 (binary_search_mixed_encoding_fdes): Likewise.
3051 * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
3052 to eliminate warning.
3053 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
3054 type cast.
3055
c6061690 30562004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
3057
3058 * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
3059 * config/s390/s390.c (preferred_la_operand_p): Accept two operands
3060 instead of one. Check for strictly legitimate address.
3061 * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
3062 to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
3063
ac13e8d9 30642004-08-19 Eric Christopher <echristo@redhat.com>
3065
3066 * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
3067 * langhooks.h (unsave_expr_now): Ditto.
3068 * tree.h (unsave_expr_1): Remove prototype.
3069 (lhd_unsave_expr_now): Rename to unsave_expr_now.
3070 * tree-inline.c (unsave_expr_1): Move here
3071 from tree.c. Make static.
3072 (unsave_expr_now): Rename from lhd_unsave_expr_now.
3073 * tree-sra.c: Fix up for rename.
3074 * tree-ssa-copy.c: Ditto.
3075 * tree-eh.c: Ditto.
3076 * tree.c (unsave_expr_1): Move to tree-inline.c.
3077
644643f6 30782004-08-19 Caroline Tice <ctice@apple.com>
3079
51a26f41 3080 * config/i386/cygming.h (switch_to_section): Fix typo (change
3081 in_unlikely_text_section to in_unlikely_executed_text).
ac13e8d9 3082
145fce5e 30832004-08-19 Daniel Berlin <dberlin@dberlin.org>
3084
3085 * vec.h (VEC_lower_bound): New macro.
ac13e8d9 3086
9d91edf8 30872004-08-19 Richard Sandiford <rsandifo@redhat.com>
3088
3089 PR target/16446
3090 * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
3091 (mips_arg_info): Update accordingly. Remove common treatment of fpr_p;
3092 treat each ABI separately. Deal with n32/n64 complex float arguments.
3093 (function_arg): Add associated complex handling here.
3094
9580c25f 30952004-08-19 Richard Henderson <rth@redhat.com>
3096
3097 * config/arm/arm.c (arm_gen_load_multiple): Use
3098 adjust_automodify_address. Take base memory and offset instead
3099 of unchanging/struct/scalar bits.
3100 (arm_gen_store_multiple): Likewise.
3101 (arm_gen_movmemqi): Use adjust_automodify_address.
3102 * config/arm/arm-protos.h: Update decls.
3103 * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
3104 (store_multiple): Similarly.
3105
170e5ff4 31062004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
3107
3108 * regclass.c (globalize_reg): Update call_really_used_regs.
3109
00b76131 31102004-08-19 Nathan Sidwell <nathan@codesourcery.com>
3111
2e99b20c 3112 * doc/invoke.texi (integer-share-limit): Document.
3113
00b76131 3114 * tree.h (TYPE_CACHED_VALUES_P): New.
3115 (TYPE_CACHED_VALUES): New.
3116 (TYPE_ORIG_SIZE_TYPE): Adjust.
3117 * tree.def (INTEGER_CST): Update documentation.
3118 * tree.c: Inlcude params.h.
3119 (build_int_cst): Cache small values.
3120 (build_type_copy): Do not copy the value cache.
3121 * c-common.c (c_common_nodes_and_builtins): Add comment, remove
3122 unneeded zeroing.
3123 * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
3124 * expmed.c (const_mult_add_overflow_p): Clear type copy's value
3125 cache.
3126 * fold-const.c (force_fit_type): Copy value when setting
3127 overflows.
3128 (int_const_binop): Likewise.
3129 * stor-layout.c: Include params.h
3130 (set_sizetype): Create values cache.
3131 (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
3132 * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
3133 * params.h (INTEGER_SHARE_LIMIT): New.
3134 * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
ac13e8d9 3135
3fc22b45 31362004-08-19 Paolo Bonzini <bonzini@gnu.org>
3137
3138 * gimplify.c (gimplify_minimax_expr): Remove.
3139 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
3140
b2eb8213 31412004-08-19 Dorit Naishlos <dorit@il.ibm.com>
3142
ac13e8d9 3143 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
b2eb8213 3144 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
3145
c580a12c 31462004-08-19 Mark Mitchell <mark@codesourcery.com>
3147
3148 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
3149
88ed7273 31502004-08-18 Andrew Pinski <apinski@apple.com>
3151
3152 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
3153
a1f25bea 31542004-08-18 Mark Mitchell <mark@codesourcery.com>
3155
3156 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
3157 (__aeabi_ul2f): Likewise.
3158
986ef67a 31592004-08-18 Richard Henderson <rth@redhat.com>
3160
3161 * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
3162 move to rtl completely.
3163 (struct meminsnbuf, xtensa_emit_block_move): Remove.
3164 (xtensa_find_mode_for_size): Remove.
3165 * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
3166 * config/xtensa/xtensa.md (movmemsi_internal): Remove.
3167
51b742cc 31682004-08-18 Richard Henderson <rth@redhat.com>
3169
3170 * config/mcore/mcore.c (mode_from_align): Remove DImode.
3171 (block_move_sequence): Rewrite to use adjust_address.
3172 (mcore_expand_block_move): Cleanup logic. Accept only operands.
3173 Return boolean indicating success/failure.
3174 * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
3175 * config/mcore/mcore.md (movmemsi): Update to match.
3176
f0ed0e8a 31772004-08-18 Mike Stump <mrs@apple.com>
3178
3179 * doc/invoke.texi (-mfix-and-continue): Add support for
3180 fast turn around debugging.
3181 (-ffix-and-continue): Likewise.
3182 (-mindirect-data): Likewise.
3183 (-findirect-data): Likewise.
3184 * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
3185 (indirect_data): Likewise.
3186 (machopic_data_defined_p): Likewise.
3187 (machopic_output_indirection): Likewise.
3188 (darwin_encode_section_info): Likewise.
3189 (darwin_fix_and_continue): Likewise.
3190 (darwin_fix_and_continue_switch): Likewise.
3191 * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
3192 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
3193 (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
3194 (SUBTARGET_OPTIONS): Likewise.
3195 (darwin_fix_and_continue): Likewise.
3196 (darwin_fix_and_continue_switch): Likewise.
3197 (TARGET_FIX_AND_CONTINUE): Likewise.
3198 * config/rs6000.c (rs6000_emit_prologue): Likewise.
3199
32002004-08-19 Steven Bosscher <stevenb@suse.de>
9858d888 3201
3202 * basic-block.h (struct edge_def): Remove crossing_edge.
3203 (EDGE_CROSSING): New define.
3204 (EDGE_ALL_FLAGS): Update.
3205 * bb-reorder.c (find_traces_1_round, better_edge_p,
3206 find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
3207 find_jump_block, fix_crossing_conditional_branches,
3208 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
3209 Replace all occurences of crossing_edge with an edge flag check
3210 or set/reset.
3211 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3212 try_crossjump_bb): Likewise.
3213 * cfglayout.c (fixup_reorder_chain): Likewise.
3214 * cfgrtl.c (force_nonfallthru_and_redirect,
3215 commit_one_edge_insertion): Likewise.
3216
3217 * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
3218 * tree-flow.h (compute_dominance_frontiers): Move prototype...
3219 * basic-block.h: ...here.
3220 * tree-cfg.c (compute_dominance_frontiers_1,
3221 compute_dominance_frontiers): Move from here...
3222 * cfganal.c: ...to here. Include timevar.h.
3223
20b43878 32242004-08-18 James E Wilson <wilson@specifixinc.com>
3225
e8ce43d4 3226 * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
4606bff7 3227 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
3228
20b43878 3229 * config/mips/mips.md (type): Add frdiv.
3230 (divsf3+1, divsf3+2): Change type to frdiv.
3231 * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
3232 ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
ac13e8d9 3233
20b43878 3234 * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
3235 * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
3236 * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
3237 * config/mips/5000.md (r5k_fdiv_single): Likewise.
3238 * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
3239 * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
3240 * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
3241 * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
3242 * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
3243 * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
3244 Likewise.
3245 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
3246
f02cd7ab 32472004-08-18 Robert Bowdidge <bowdidge@apple.com>
3248
3249 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
51a26f41 3250 get regression tester working again.
f02cd7ab 3251
30f4db0d 32522004-08-18 Zack Weinberg <zack@codesourcery.com>
3253
3254 * insn-notes.def, reg-notes.def: New files.
3255 * rtl.h: Use them to define enum insn_note and enum reg_note.
3256 * rtl.c: Use them to define note_insn_name and reg_note_name.
a99cb217 3257 * Makefile.in (RTL_BASE_H): Update.
30f4db0d 3258
3259 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
3260 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
3261
c1877da8 32622004-08-18 Richard Earnshaw <rearnsha@arm.com>
3263
3264 * arm.c (arm_size_rtx_costs): New function.
3265 (arm_override_options): Use it if optimizing for space.
3266
e265a6da 32672004-08-18 Richard Henderson <rth@redhat.com>
3268
3269 * emit-rtl.c (gen_const_mem): New.
3270 * rtl.h (gen_const_mem): Declare.
3271 * expr.c (do_tablejump): Use it.
3272 * varasm.c (force_const_mem): Likewise.
3273 * config/darwin.c (machopic_indirect_data_reference): Likewise.
3274 (machopic_legitimize_pic_address): Likewise.
3275 * config/arm/arm.c (legitimize_pic_address): Likewise.
3276 * config/i386/i386.c (legitimize_pic_address): Likewise.
3277 (legitimize_tls_address): Likewise.
3278 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
3279 * config/ia64/ia64.md (load_fptr): Likewise.
3280 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
3281 * config/pa/pa.c (legitimize_pic_address): Likewise.
3282 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
3283 (rs6000_emit_move): Likewise.
3284 * config/s390/s390.c (legitimize_pic_address): Likewise.
3285 (legitimize_tls_address): Likewise.
3286 * config/s390/s390.md (casesi): Likewise.
3287 * config/sh/sh.c (sh_reorg): Likewise.
3288 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
3289 * config/v850/v850.md (casesi): Likewise.
3290
3291 * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
3292 * config/sh/sh.c (prepare_move_operands): Remove incorrect
3293 use of MEM_READONLY_P.
3294
78d140c9 32952004-08-18 Steven Bosscher <stevenb@suse.de>
3296
3297 * Makefile.in (OBJS-common): Add postreload-gcse.c.
3298 Add new postreload-gcse.o.
3299 * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
3300 (lookup_as_function, insert, rehash_using_reg, use_related_value,
3301 equiv_constant): Use SAFE_HASH instead of safe_hash.
3302 (exp_equiv_p): Export. Add for_gcse argument when comparing
3303 for GCSE.
3304 (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
3305 find_comparison_args, fold_rtx, cse_insn): Update callers.
3306 (hash_rtx): New function derived from old canon_hash and bits
3307 from gcse.c hash_expr_1.
3308 (canon_hash_string): Rename to hash_rtx_string.
3309 (canon_hash, safe_hash): Make static inline. Call hash_rtx.
3310 * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
3311 (cselib_lookup): Update this caller.
3312 * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
3313 Make static.
3314 (hash_expr): Call hash_rtx.
3315 (ldst_entry): Likewise.
3316 (expr_equiv_p): Call exp_equiv_p.
3317 (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
3318 reg_used_on_edge, reg_set_between_after_reload_p,
3319 reg_used_between_after_reload_p, get_avail_load_store_reg,
3320 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
3321 get_bb_avail_insn, hash_scan_set_after_reload,
3322 compute_hash_table_after_reload,
3323 eliminate_partially_redundant_loads, gcse_after_reload,
3324 get_bb_avail_insn, gcse_after_reload_main): Remove.
3325 * postreload-gcse.c: New file, reincarnating most of the above.
3326 * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
3327 (gcse_after_reload_main): Update prototype.
3328 * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
3329 * passes.c (rest_of_handle_gcse2): Use it.
3330
1c46afb0 33312004-08-18 Diego Novillo <dnovillo@redhat.com>
3332
3333 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
3334 (pass_loop_done): Likewise.
3335
cc1f5a5f 33362004-08-18 Andrew Pinski <apinski@apple.com>
3337
30f4db0d 3338 * config/rs6000/darwin.md: Delete the altivec patterns which are
cc1f5a5f 3339 handled differently now.
3340 (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
3341 (macho_correct_pic_di): Likewise.
3342 (call_indirect_nonlocal_darwin64): Likewise.
3343 Delete the save world/saveFP/saveVec patterns.
30f4db0d 3344
cc1f5a5f 3345 Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com>
30f4db0d 3346 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
3347 * config/rs6000/rs6000.md: Include darwin.md.
3348 (builtin_setjmp_receiver): Add DImode case.
3349 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
3350 Darwin bits.
cc1f5a5f 3351
9e96724e 33522004-08-18 Matt Austern <austern@apple.com>
3353
3354 Dead code stripping
3355 * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
3356 * darwin.c (darwin_file_end): Mark file as potentially strippable.
30f4db0d 3357
f6a162af 33582004-08-18 Richard Henderson <rth@redhat.com>
3359
3360 * alias.c (readonly_fields_p): Remove.
3361 (objects_must_conflict_p): Don't call it.
3362 * tree.h (readonly_fields_p): Remove.
3363 * langhooks.h (struct lang_hooks): Remove honor_readonly.
3364 * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
3365
76b88338 33662004-08-18 Diego Novillo <dnovillo@redhat.com>
3367
3368 * tree-dfa.c (add_referenced_var): Only global variables are
3369 call-clobbered.
3370 * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
3371 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
3372 all pointers dereferenced if the statement dereferences them.
3373 (create_name_tags): Do not create memory tags for pointers
3374 that have PT_ANYTHING set.
3375 Also check if PT_VARS is not empty before creating a name tag.
3376 (compute_flow_sensitive_aliasing): Don't mark call-clobbered
3377 variables that share the same alias set with a pointer that
3378 may point anywhere.
3379 (add_may_alias): Add FIXME comment to remove clobbering
3380 aliased variables and tags.
3381 (replace_may_alias): Likewise.
3382 (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
3383 (merge_pointed_to_info): If the original variable has not
3384 points-to information, call set_pt_anything.
3385 (add_pointed_to_var): Do not prevent adding a pointed-to
3386 variable if the pointers is PT_ANYTHING.
3387 If the variable is a global, set PT_GLOBAL_MEM.
3388 (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
3389 pointer type only come in PTR+OFFSET flavours.
3390 Always call merge_pointed_to_info on PHI arguments that are
3391 SSA_NAMEs.
3392 (get_nmt_for): Mark call-clobbered tags whose pointer points
3393 to global memory.
3394 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
3395 values.
3396 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
3397 FLAGS.
3398 (add_stmt_operand): Abort if the caller tried to add a killing
3399 definition for a memory tag.
3400 * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
3401 unnecessary checks.
3402
956dd562 34032004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
3404
3405 * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
3406 from call_used_regs. Update call_really_used_regs.
3407 (CALL_REALLY_USED_REGISTERS): Define.
3408 * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
3409 Replace call_used_regs with call_really_used_regs.
3410 (calc_live_regs, sh_media_register_for_return): Likewise.
3411 (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
3412 * sh.md (return_media): Likewise.
3413
7ba97778 34142004-08-18 Andrew Pinski <apinski@apple.com>
3415
30f4db0d 3416 * config/darwin.c (machopic_legitimize_pic_address): Only set
cc1f5a5f 3417 MEM_READONLY_P in the non TARGET_TOC case.
7ba97778 3418
21f1e711 34192004-08-18 Zack Weinberg <zack@codesourcery.com>
3420
3421 * rtl.def (NIL): Delete.
3422 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
3423 Tighten the syntax a little.
3424
3425 * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
3426 * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
3427 * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
3428 * config/i386/predicates.md, config/m32r/m32r.h
3429 * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
3430 * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
3431 * config/sparc/sparc.h, doc/tm.texi:
3432 Replace all occurrences of NIL with UNKNOWN.
3433
15d981b1 34342004-08-18 Zack Weinberg <zack@codesourcery.com>
3435
3436 * dojump.c (do_jump <unordered_bcc>): Do not recursively call
3437 self with a TRUTH_ORIF_EXPR; generate the appropriate jump
3438 sequence inline. Move drop_through_label code into this
3439 block, being the only place it is used. Adjust comments.
3440
b3a89f06 34412004-08-18 Fariborz Jahanian <fjahanian@apple.com>
3442
15d981b1 3443 * config/rs6000/altivec.md: Add new patterns for calls to
3444 save_world/rest_world functions.
3445
3446 * config/rs6000/rs6000-protos.h: (save_world_operation,
3447 restore_world_operation) new declarations.
3448
3449 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
3450 field added.
3451 (rs6000_stack_info): Set world_save_p field.
3452 (save_world_operation): New function.
3453 (restore_world_operation): New function.
3454 (compute_save_world_info): New function.
3455 (rs6000_stack_info): Call compute_save_world_info.
3456 (rs6000_emit_prologue): Check for world_save_p and generate
3457 pattern to call save_world for saving all non-volatile and
3458 special registers.
3459 (rs6000_emit_epilogue): Check for world_save_p and generate
3460 pattern to call rest_world to restore saved registers.
3461
3462 config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
3463 FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
3464 (rs6000_reg_names): New entries added for save_world_operation and
3465 restore_world_operation.
b3a89f06 3466
7150d702 34672004-08-18 Caroline Tice <ctice@apple.com>
3468
15d981b1 3469 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
7150d702 3470 "-freorder-blocks-and-partition" to the flags used in second
3471 stage of profiledbootstrap.
3472 * bb-reorder.c (push_to_next_round_p): Add new variable,
3473 next_round_is_last; set and use variable to make sure, when
3474 partitioning, that the last trace construction round consists
3475 of all (and only) cold basic blocks.
3476 (rotate_loop): Don't copy blocks that end in a section
3477 crossing jump.
3478 (copy_bb): Correctly initialize "partition" of duplicated bb.
3479 (add_unlikely_executed_notes): Add a comment.
3480 (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
3481 to make sure, if function contains hot blocks, that the
3482 successors of ENTRY_BLOCK_PTR are hot; also, only look for
3483 crossing edges if the architecture supports named sections.
3484 (mark_bb_for_unlikely_executed_section): Modify to always
3485 insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
3486 the basic block note insn.
3487 (fix_crossing_unconditional_branches): Remove extra space.
3488 (fix_edges_for_rarely_executed_code): Modify to only do
3489 partitioning work if the architecture supports named sections.
3490 (reorder_basic_blocks): Modify to only add
3491 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
3492 supports named sections.
3493 * c-common.c (handle_section_attribute): Initialize new global
3494 variable, user_defined_section_attribute, to true if user has
3495 specified one.
3496 * cfgcleanup.c (try_forward_edges): Modify to not attempt to
3497 forward edges that cross section boundaries.
3498 * cfglayout.c (fixup_reorder_chain): Modify to only fix up
3499 partitioning information if the architecture supports named
3500 sections.
3501 * cfgrtl.c (target.h): Add statement to include this.
3502 (rtl_split_block): Make sure newly created bb gets correct
3503 partition.
3504 (try_redirect_by_replacing_jump): Make sure redirection isn't
3505 attempting to cross section boundaries.
3506 (force_nonfallthru_and_redirect): Only do partition fix up if
3507 architecture supports named sections.
3508 (rtl_split_edge): Make sure newly created bb ends up in
3509 correct partition.
3510 (commit_one_edge_insertion): Remove code that incorrectly
3511 updated basic block partition; Make sure partition fix up only
3512 happens if architecture supports named sections and it's not
3513 already done.
3514 (rtl_verify_flow_info_1): Fix if-condition on test/error
3515 condition that fallthru edges are not allowed to cross section
3516 boundaries.
3517 * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
3518 * final.c (final_scan_insn): Remove redundant test from if-statement;
3519 change calls to text_section into calls to function_section; add code
3520 to only to partitioning fix up if architecture supports named
3521 sections.
3522 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
3523 partition.
3524 (if_convert): Add targetm.have_named_sections to test.
3525 * output.h (unlikely_section_label): Extern declaration for new global
3526 variable.
3527 (unlikely_text_section_name): Likewise.
3528 * opts.c (decode_options): If both partitioning and DWARF debugging
3529 are turned on, issue a warning that this doesn't work, and change
3530 partitiong to basic block reordering (without hot/cold partitions).
15d981b1 3531 * passes.c (rest_of_handle_final): Re-set new global variable,
7150d702 3532 user_defined_section_attribute, to false.
3533 (rest_of_compilation): Change options for calling partitioning
3534 function: Don't call if the user defined the section attribute, and
3535 don't call if DECL_ONE_ONLY is true for the current function.
3536 * predict.c (choose_function_section): Return immediately if we
3537 are doing hot/cold partitioning (i.e. let the basic block partitioning
3538 determine where the function belongs).
3539 * reg-stack.c (emit_swap_insn): Add condition to step over
3540 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
3541 * toplev.c (user_defined_section_attribute): New global variable.
00b76131 3542 * toplev.h (user_defined_section_attribute): Extern declaration
3543 for new global variable.
7150d702 3544 * varasm.c (unlikely_section_label): New global variable.
3545 (unlikely_text_section_name): New global variable.
00b76131 3546 (unlikely_text_section): Add code to initialize
3547 unlikely_text_section_name if necessary; modify to use
3548 unlikely_text_section_name and unlikely_section_label; also to use
3549 named_section properly.
3550 (in_unlikely_text_section): Modify to work correctly with
3551 named_section and to use unlikely_text_section_name.
7150d702 3552 (named_section): Add code to work properly with cold section.
3553 (function_section): Clean up if-statement.
00b76131 3554 * config/darwin.c (darwin_asm_named_section): Return to original
3555 code, removing use of SECTION_FORMAT_STRING.
15d981b1 3556 * config/arm/pe.h (switch_to_section): Add case for
7150d702 3557 in_unlikely_executed_text to switch statement.
3558 * config/i386/cygming.h (switch_to_section): Likewise.
3559 * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
3560 (SECTION_FORMAT_STRING): Likewise.
3561 * config/mcore/mcore.h (switch_to_section): Likewise.
3562 * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
3563 (SECTION_FORMAT_STRING): Remove.
3564
78d46568 35652004-08-18 Roger Sayle <roger@eyesopen.com>
3566
3567 * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
3568 -ffixed-reg safe, by preserving the meanings of zero and one.
3569 (CALL_USED_REGISTERS): Likewise.
3570 (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
3571
ee617972 35722004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
3573
3574 * config/sh/sh.c (split_branches): Check the result of
3575 next_active_insn.
3576 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
3577 Call rtl_register_cfg_hooks.
3578
b04fab2a 35792004-08-18 Richard Henderson <rth@redhat.com>
3580
3581 * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
3582 * alias.c (true_dependence): Update to match new semantics.
3583 (canon_true_dependence, write_dependence_p): Likewise.
3584 (anti_dependence, output_dependence): Update write_dependence_p args.
3585 (unchanging_anti_dependence): Remove.
3586 * calls.c (purge_mem_unchanging_flag): Remove.
3587 (fixup_tail_calls): Don't call it.
3588 (expand_call): Don't add unchanging memory to function usage.
3589 * expr.c (emit_block_move_via_libcall): Likewise.
3590 (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
3591 (get_subtarget): Don't use RTX_UNCHANGING_P.
3592 (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
3593 (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
3594 * combine.c (get_last_value_validate): Use MEM_READONLY_P.
3595 * cse.c (insert): Don't use RTX_UNCHANGING_P.
3596 (cse_insn, canon_hash): Use MEM_READONLY_P.
3597 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
3598 instead of RTX_UNCHANGING_P.
3599 * explow.c (maybe_set_unchanging): Remove.
3600 * expr.h (maybe_set_unchanging): Remove.
3601 * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
3602 * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
3603 (assign_parm_setup_reg, expand_function_start): Likewise.
3604 * integrate.c (copy_rtx_and_substitute): Likewise.
3605 * ra-rewrite.c (emit_colors): Likewise.
3606 * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
3607 (fixup_match_1): Likewise.
3608 * reload1.c (reload, alter_reg): Likewise.
3609 * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
3610 not RTX_UNCHANGING_P.
3611 (equiv_init_varies_p): Likewise.
3612 * loop-invariant.c (check_maybe_invariant): Likewise.
3613 * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
3614 * loop.c (note_addr_stored): Likewise.
3615 (prescan_loop): Likewise. Don't check function usage for clobbered
3616 unchanging memory.
3617 * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
15d981b1 3618 not RTX_UNCHANGING_P.
b04fab2a 3619 (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
3620 * varasm.c (force_const_mem): Likewise.
3621 * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
3622 * web.c (entry_register): Likewise.
3623 * tree-gimple.h (get_base_address): Move decl ...
3624 * tree.h: ... here.
3625 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
3626
3627 * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
3628 called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
3629 (alpha_set_memflags): Update to match.
3630
3631 * config/darwin.c (machopic_indirect_data_reference): Set
3632 MEM_READONLY_P instead of RTX_UNCHANGING_P.
3633 (machopic_indirect_call_target): Likewise.
3634 (machopic_legitimize_pic_address): Likewise.
15d981b1 3635 * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
b04fab2a 3636 arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
3637 * config/arm/arm.md (load_multiple, store_multiple): Likewise.
3638 * config/frv/frv.md (symGOT2reg): Likewise.
3639 * config/i386/i386.c (legitimize_pic_address,
3640 legitimize_tls_address, ix86_split_to_parts): Likewise.
3641 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
3642 * config/ia64/ia64.md (load_fptr): Likewise.
3643 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
3644 * config/m68k/m68k.c (legitimize_pic_address): Likewise.
3645 * config/mcore/mcore.c (block_move_sequence): Likewise.
3646 * config/mn10300/mn10300.md (symGOT2reg): Likewise.
3647 * config/pa/pa.c (legitimize_pic_address): Likewise.
3648 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
3649 (rs6000_emit_move): Likewise.
3650 * config/s390/s390.c (legitimize_pic_address): Likewise.
3651 (legitimize_tls_address): Likewise.
3652 * config/s390/s390.md (casesi): Likewise.
3653 * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
3654 * config/sh/sh.md (symGOT2reg): Likewise.
3655 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
3656 * config/v850/v850.md (casesi): Likewise.
3657
3658 * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
3659 * config/iq2000/iq2000.c (save_restore_insns): Likewise.
3660 * config/mips/mips.c (mips_restore_gp): Likewise.
3661 (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
3662 * config/sh/sh.c (sh_reorg): Likewise.
3663
d471893d 36642004-08-18 Richard Henderson <rth@redhat.com>
3665
3666 * tree.h (struct tree_decl): Add gimple_formal_temp.
3667 (DECL_GIMPLE_FORMAL_TEMP_P): New.
3668 * gimplify.c (pop_gimplify_context): Clear it.
3669 (lookup_tmp_var): Set it, if is_formal.
3670 (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
3671 Use is_gimple_val for VECTOR. Simplify return value.
3672 (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
3673 (gimplify_expr): Likewise.
3674 * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
3675 is_gimple_tmp_rhs for clarity. Update all callers.
3676 (is_gimple_reg_rhs): Simplify logic.
3677 (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
3678 clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
3679 (is_gimple_formal_tmp_reg): Similarly.
3680 * tree-gimple.h: Update decls.
3681 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
3682 DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting.
3683 * tree-ssa-live.c (var_union, type_var_init): Likewise.
3684
b4a82ea7 36852004-08-18 Paolo Bonzini <bonzini@gnu.org>
3686
3687 * c4x.c (legitimize_operands): Remove calls to
3688 preserve_subexpressions_p.
3689
2ca6f7cc 36902004-08-18 David Edelsohn <edelsohn@gnu.org>
3691
3692 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
3693 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
3694
9728bde3 36952004-08-18 Ziemowit Laski <zlaski@apple.com>
3696
3697 * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
3698 Objective-C++ extensions.
3699 * gengtype.c (get_file_basename): Match entire subdirectory name
3700 ('cp', 'objc', 'objcp') rather than just its suffix.
3701 (get_base_file_bitmap): Allow for files to belong to more than one
3702 language.
3703 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
3704 used by more than one front-end.
3705
615caa51 37062004-08-18 Richard Earnshaw <rearnsha@arm.com>
3707
3708 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
3709 avoid use of preserve_subexpressions_p.
3710
0c46459a 37112004-08-17 Richard Henderson <rth@redhat.com>
3712
3713 PR 17051
3714 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
3715
3c1df5aa 37162004-08-17 DJ Delorie <dj@redhat.com>
3717
3718 * doc/extend.texi: Document new xstormy16 attribute.
3719
3720 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
3721 (xstormy16_splittable_below100_or_register): New.
3722 (combine_bnp): New.
3723 (xstormy16_reorg): New.
3724 (TARGET_MACHINE_DEPENDENT_REORG): Define.
3725
3c1df5aa 3726 * config/stormy16/stormy16.md (movqi_internal): Make name public.
3727 (movhi_internal): Likewise.
3728 (cbhranchhi): Likewise.
3729 (cbhranchhi_neg): Likewise.
3730 (andhi3): Only allow splittable below100 operands.
3731 (iorhi3): Likewise.
3732 (peephole2): New and/zero_extend->and peephole.
3733 (peephole2): New load/ior/save->set1 peephole.
3734 (peephole2): New load/and/save->clr1 peephole.
3735 (bclrx, bclrx2, bclr7, bclr15): New.
3736 (bsetx, bsetx2, bset7, bset15): New.
3737
3738 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
3739 liberal about acceptable 'B' masks.
3740
3741 * config/stormy16/stormy16-protos.h
3742 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
3743 xstormy16_below100_operand, xstormy16_below100_or_register,
3744 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
3745 (PREDICATE_CODES): Add new predicates.
15d981b1 3746
3c1df5aa 3747 * config/stormy16/stormy16.c
3748 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
3749 xstormy16_below100_operand, xstormy16_below100_or_register,
3750 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
3751 (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
3752 (xstormy16_legitimate_address_p): Allow below100 symbols.
3753 (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
3754 (xstormy16_expand_move): Leave below100 operands as-is.
3755 (xstormy16_encode_section_info): Encode below100 symbols.
3756 (xstormy16_strip_name_encoding): New.
3757 (xstormy16_print_operand): Print 'b' as shift mask.
3758 (xstormy16_attribute_table): Add below100 attributes.
3759 (xstormy16_handle_below100_attribute): New.
3760
3761 * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
3762 (XSTORMY16_SECTION_FUNCTION): New.
3763 (EXTRA_SECTION_FUNCTIONS): Define using the above.
3764 (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
3765 (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
3766 (ASM_OUTPUT_LABELREF): Define.
3767
3768 * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
3769 (movhi_internal): Add below100 support.
3770 (andhi3): Add below100 support.
3771 (iorhi3): Add below100 support.
3772 (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
3773
de5b8bfb 37742004-08-17 James E Wilson <wilson@specifixinc.com>
3775
3776 * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
3777 of VOIDmode for comparison code mode.
3778 * config/mips/mips.md: For conditional move patterns, use mode of
3779 first compare operand for comparison mode, instead of VOIDmode.
e375923d 3780
3781 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
3782 normal and -ffast-math code.
3783
aa255322 37842004-08-17 Mark Mitchell <mark@codesourcery.com>
3785
3786 PR c++/15871
3787 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
3788
b530556f 37892004-08-17 Robert Bowdidge <bowdidge@apple.com>
15d981b1 3790
3791 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
b530556f 3792
956c084d 37932004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
3794
3795 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
3796 for non Darwin targets.
3797 (*call_value_nonlocal_darwin64): Likewise.
3798
70a45a14 37992004-08-17 Fariborz Jahanian <fjahanian@apple.com>
3800
3801 * config/rs6000/rs6000.c (rs6000_function_value): Check for
3802 altivec mode for altivec return register.
3803
29b8e4ab 38042004-08-17 David Edelsohn <edelsohn@gnu.org>
3805
3806 Revert 2004-08-16 Stan Shebs <shebs@apple.com>
7c90073a 3807 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
29b8e4ab 3808 * config/rs6000/rs6000.md: Include darwin.md.
3809 (builtin_setjmp_receiver): Add DImode case.
3810 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
3811 Darwin bits.
3812
c91e8223 38132004-08-17 Dorit Naishlos <dorit@il.ibm.com>
3814
00b76131 3815 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
3816 trees.
c91e8223 3817 * tree-vectorizer.h: New File: Same.
3818 * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
3819 * common.opt (ftree-vectorize): New flag to enable vectorization.
00b76131 3820 * timevar.def (TV_TREE_VECTORIZATION): New dump file for
3821 vectorization pass.
c91e8223 3822 * tree-data-ref.h (init_data_ref): Additional argument.
3823 (array_base_name_differ_p): Moved to tree-data-ref.c.
3824 * tree-data-ref.c (array_base_name_differ_p): Revised.
3825 (initialize_data_dependence_relation): Call array_base_name_differ_p
3826 with an extra argument.
3827 (analyze_all_data_dependences): Same.
3828 (init_data_ref): Additional argument is_read to set DR_IS_READ.
00b76131 3829 * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
3830 file.
c91e8223 3831 * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
3832 * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
15d981b1 3833 * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
c91e8223 3834 vectorization pass.
3835 * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
3836 (tree_ssa_loop_done): Call scev_finalize.
3837 (tree_vectorize): Define the new vectorization pass.
00b76131 3838 * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
3839 size of the vector they support (until support for multiple vector
3840 sizes is added to the vectorizer).
c91e8223 3841 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
3842 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
3843 * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
3844 documentation.
3845
62b40493 38462004-08-17 Nathan Sidwell <nathan@codesourcery.com>
3847
3848 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
3849 usage.
3850 (generate_protocol_list, handle_impent): Likewise.
3851
579bc712 38522004-08-17 Roger Sayle <roger@eyesopen.com>
3853
3854 * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
3855 ensure that call_used_regs is a superset of both fixed_regs and
3856 call_really_used_regs.
3857
0f5e9701 38582004-08-17 Daniel Bornstein <danfuzz@milk.com>
3859
3860 PR target/17019
3861 * arm.md (addsi3_cbranch_scratch): Correct case labels.
3862
c738d48d 38632004-08-17 Paolo Bonzini <bonzini@gnu.org>
3864
3865 PR middle-end/17036
3866 * fold-const.c (fold): Check for integer operand when
3867 folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew
3868 Pinski <pinskia@physics.uc.edu>.
3869
a1ad7483 38702004-08-17 Paolo Bonzini <bonzini@gnu.org>
3871
3872 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
3873 No need to check if in a cross configuration.
3874 * configure: Regenerate.
3875
3876 * calls.c (precompute_register_parameters):
3877 Inline preserve_subexpressions_p ().
3878 * expmed.c (expand_mult_const, emit_store_flag): Likewise.
3879 * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
3880 Likewise.
3881 * expr.c (get_subtarget): Likewise.
3882 * rtl.h (preserve_subexpressions_p): Remove.
3883 * stmt.c (preserve_subexpressions_p): Remove.
3884
3885 * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
3886 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
3887 Abort on gimplified cases.
3888
4c779744 38892004-08-16 James E Wilson <wilson@specifixinc.com>
3890
3891 * tree.h (VECTOR_FLOAT_TYPE_P): New.
3892 (FLOAT_TYPE_P): Use it.
3893 * c-typeck.c (build_binary_op): After convert calls, check for
3894 check for ERROR_MARK operands.
3895
690ff52f 38962004-08-16 Zack Weinberg <zack@codesourcery.com>
3897
3898 * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
3899 (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
3900 (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
3901 (genobjs static pattern rule): Remove %.c dependency.
3902 ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
3903 Rename rules; delete commands; fix dependencies.
3904 (mostlyclean): Do not delete temporary source copies.
3905 * configure.ac: Delete all references to BUILD_PREFIX and
3906 BUILD_PREFIX_1.
3907 * configure: Regenerate.
3908
3909 * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
3910 Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
3911 basic-block.h #ifdef GENERATOR_FILE. Surround some more code
3912 with #ifndef GENERATOR_FILE so that nothing from those headers
3913 is used.
3914
3915 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
3916
bcefa890 39172004-08-16 Adam Nemet <anemet@lnxw.com>
3918
3919 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
15d981b1 3920
be6bbbd8 39212004-08-16 Andrew Pinski <apinski@apple.com>
3922
3923 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
3924 extraneous semicolon.
3925
9423c9b7 39262004-08-16 Devang Patel <dpatel@apple.com>
3927
3928 * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
3929 * print-tree.c (print_node): Print DECL_PRESERVE_P.
3930 * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
3931 (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
3932 * target.h (struct gcc_target): New member, mark_decl_preserved.
690ff52f 3933 * hooks.c (hook_void_charptr): Rename to ...
3934 (hook_void_constcharptr): ... new name.
3935 * hooks.h (hook_void_charptr): Rename to ..
3936 (hook_void_constcharptr): ... new name.
9423c9b7 3937 * tree.h (DECL_PRESERVE_P): New #define.
3938 (struct tree_decl): New member, preserve_flag.
3939 * varasm.c (assemble_start_function): Mark decl preserved.
3940 (assemble_variable): Same.
3941 * darwin.c (darwin_mark_decl_preserved): New function.
3942 * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
3943 * darwin-protos.h (darwin_mark_decl_preserved): New decl.
3944 * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
3945
a021a5a6 39462004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
3947
3948 * c-decl.c (grokdeclarator): Allow for function definition where
3949 innermost declarator has attributes.
3950
95215948 39512004-08-16 Fariborz Jahanian <fjahanian@apple.com>
3952
3953 * except.c (get_exception_filter, build_post_landing_pads,
3954 dw2_build_landing_pads): Use target-specific mode for 'filter'.
3955 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
3956 * target.h (eh_return_filter_mode): New field added.
3957 * targhooks.c (default_eh_return_filter_mode): Defined.
3958 * targhooks.h (default_eh_return_filter_mode): Declared.
3959 * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
3960
dabbc00f 39612004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
3962
3963 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
3964 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
3965 * configure: Regenerate.
3966
09c6aad0 39672004-08-16 Stan Shebs <shebs@apple.com>
3968
3969 Basic support for 64-bit Darwin.
3970 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
3971 (machopic_legitimize_pic_address): Similarly, plus use Pmode
3972 instead of SImode.
3973 * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
3974 (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
3975 (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
3976 (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
3977 (PROCESSOR_DEFAULT64): Define.
3978 * config/rs6000/darwin.md: New file, patterns specific to 64-bit
3979 Darwin.
3980 * config/rs6000/rs6000.md: Include darwin.md.
3981 (builtin_setjmp_receiver): Add DImode case.
3982 * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
3983 Darwin.
3984 (TARGET_ASM_ALIGNED_DI_OP): Ditto.
3985 (rs6000_emit_move): Add DImode case to Darwin bits.
3986 (machopic_output_stub): Use .quad if 64-bit.
3987 * invoke.texi: Document -m32 and -m64.
3988
f67199e1 39892004-08-16 Janis Johnson <janis187@us.ibm.com>
3990
3991 * doc/extend.texi (AltiVec builtins): Document additional differences
3992 from the Motorola AltiVec PIM.
3993
dde877a7 39942004-08-16 Nathan Sidwell <nathan@codesourcery.com>
3995
3996 * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
3997 * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
3998 (struct tree_common): Update public_flag documentation.
3999
311eb7b3 40002004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
4001
4002 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
c738d48d 4003 Check for artificial variables, not is_gimple_tmp_var.
311eb7b3 4004 * tree-ssa-live.c (var_union): Likewise.
4005
af16d794 40062004-08-16 Nathan Sidwell <nathan@codesourcery.com>
4007
4008 * calls.c (load_register_parameters): Remove spurious FIXME token.
4009
800b56f2 40102004-08-15 Ziemowit Laski <zlaski@apple.com>
4011
4012 * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
4013 (c-lang.o): Depend on c-objc-common.h.
690ff52f 4014 (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
800b56f2 4015 c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
4016 * c-lang.c: Include c-objc-common.h.
4017 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
4018 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
4019 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
690ff52f 4020 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
4021 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
800b56f2 4022 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
4023 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
690ff52f 4024 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
800b56f2 4025 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
4026 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
4027 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
4028 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4029 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
4030 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
4031 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
4032 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
4033 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
4034 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
4035 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
4036 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
4037 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
4038 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
4039 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
4040 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
4041 Move to c-objc-common.h.
4042 * c-objc-common.c: Include c-objc-common.h.
4043 * c-objc-common.h: New file.
4044
5348b17f 40452004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
4046 Andrew Pinski <pinskia@physics.uc.edu>
4047
4048 PR target/14931
4049 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
4050 style.
4051
7c446c95 40522004-08-15 Nathan Sidwell <nathan@codesourcery.com>
4053
4054 * tree.h (build_int_cst): New.
4055 (build_int_2): Remove.
4056 * tree.c (build_int_2): Remove.
4057 (build_int_cst): New.
4058 (make_vector_type, build_common_tree_nodes,
4059 build_common_tree_nodes_2): Use build_int_cst.
4060 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
4061 expand_builtin_strpbrk, expand_builtin_fputs,
4062 build_string_literal, expand_builtin_printf,
4063 expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
4064 fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
4065 fold_builtin_isdigit, simplify_builtin_strstr,
4066 simplify_builtin_strpbrk, fold_builtin_fputs,
4067 simplify_builtin_sprintf): Use build_int_cst.
4068 * c-common.c (start_fname_decls, fix_string_type,
4069 c_common_nodes_and_builtins, c_init_attributes,
4070 shorten_compare): Likewise.
4071 * c-decl.c (complete_array_type,
4072 check_bitfield_type_and_width): Likewise.
4073 * c-lex.c (interpret_integer, lex_charconst): Likewise.
4074 * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
4075 * c-pretty-print.c (pp_c_integer_constant): Likewise.
4076 * c-typeck.c (really_start_incremental_init, push_init_level,
4077 set_nonincremental_init_from_string): Likewise.
4078 * calls.c (load_register_parameters): Likewise.
4079 * convert.c (convert_to_pointer): Likewise.
4080 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
4081 build_fn_info_type, build_ctr_info_value, build_gcov_info):
4082 Likewise.
4083 * except.c (init_eh, assign_filter_values, assign_filter_values):
4084 Likewise.
4085 * expmed.c (store_fixed_bit_field, extract_bit_field,
4086 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
4087 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
4088 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
4089 * expr.c (convert_move, emit_group_load, emit_group_store,
4090 expand_assignment, store_constructor, store_field,
4091 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
4092 * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
4093 invert_truthvalue, optimize_bit_field_compare,
4094 decode_field_reference, all_ones_mask_p, constant_boolean_node,
4095 fold_div_compare, fold, fold_read_from_constant_string,
4096 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
4097 * function.c (assign_parm_setup_block): Likewise.
4098 * stmt.c (shift_return_value, expand_end_case_type,
4099 estimate_case_costs): Likewise.
4100 * stor-layout.c (layout_type, initialize_sizetypes,
4101 set_min_and_max_values_for_integral_type): Likewise.
4102 * tree-chrec.c (chrec_fold_multiply_poly_poly,
4103 reset_evolution_in_loop): Likewise.
4104 * tree-chrec.h (build_polynomial_chrec): Likewise.
4105 * tree-complex.c (build_replicated_const): Likewise.
4106 * tree-eh.c (honor_protect_cleanup_actions,
4107 lower_try_finally_onedest, lower_try_finally_copy,
4108 lower_try_finally_switch): Likewise.
4109 * tree-mudflap.c (mf_build_string, mx_register_decls,
4110 mudflap_register_call, mudflap_enqueue_constant): Likewise.
4111 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
4112 * tree-pretty-print.c (dump_generic_node): Likewise.
4113 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
4114 Likewise.
4115 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
4116 * tree-ssa-loop-niter.c (number_of_iterations_cond,
4117 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
4118 Likewise.
690ff52f 4119
7c446c95 4120 * config/alpha/alpha.c (alpha_initialize_trampoline,
4121 alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
4122 * config/arm/arm.c (arm_get_cookie_size): Likewise.
4123 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
4124 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
4125 * config/i860/i860.c (i860_va_start): Likewise.
4126 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
4127 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
4128 mips_gimplify_va_arg_expr): Likewise.
4129 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
4130 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
4131 add_compiler_branch_island): Likewise.
4132 * config/s390/s390.c (s390_va_start): Likewise.
4133 * config/sh/sh.c (sh_va_start): Likewise.
4134 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
4135 Likewise.
4136 * config/xtensa/xtensa.c (xtensa_va_start,
4137 xtensa_gimplify_va_arg_expr): Likewise.
690ff52f 4138
7c446c95 4139 * objc/objc-act.c (build_objc_string_object,
4140 build_objc_symtab_template, init_def_list, init_objc_symtab,
4141 init_module_descriptor, generate_static_references,
4142 build_selector_translation_table, get_proto_encoding,
4143 build_typed_selector_reference, build_selector_reference,
4144 build_next_objc_exception_stuff,
4145 build_method_prototype_list_template, generate_descriptor_table,
4146 generate_protocols, build_protocol_initializer,
4147 build_ivar_list_template, build_method_list_template,
4148 build_ivar_list_initializer, generate_ivars_list,
4149 generate_dispatch_table, generate_protocol_list,
4150 build_category_initializer, build_shared_structure_initializer,
4151 generate_shared_structures, handle_impent,
4152 generate_objc_image_info): Use build_int_cst.
4153
6c798041 41542004-08-15 Ben Elliston <bje@au.ibm.com>
4155
4156 * vec.h: Comment improvements.
4157
14ae0310 41582004-08-14 Roger Sayle <roger@eyesopen.com>
4159
4160 * c-common.c (shorten_compare, pointer_int_sum,
4161 c_common_truthvalue_conversion, boolean_increment): Replace calls
4162 to build with calls to buildN.
4163 * c-decl.c (complete_array_type, grokdeclarator): Likewise.
4164 * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
4165 gimplify_switch_stmt): Likewise.
4166 * c-typeck.c (default_function_array_conversion,
4167 build_component_ref, build_array_ref, build_function_call,
4168 pointer_diff, build_unary_op, build_conditional_expr,
4169 build_compound_expr, build_modify_expr, c_finish_goto_label,
4170 c_finish_goto_ptr, c_finish_return, c_finish_loop,
4171 c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
4172 build_binary_op): Likewise.
4173
50721aa0 41742004-08-15 Steven Bosscher <stevenb@suse.de>
4175
4176 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
4177
65dc6e0c 41782004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4179
4180 * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
4181 curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
4182 * fixinc/fixincl.x: Rebuilt.
4183
2fbff099 41842004-08-14 Richard Sandiford <rsandifo@redhat.com>
4185
4186 * config/mips/mips-protos.h (mips_symbolic_constant_p)
4187 (mips_atomic_symbolic_constant_p, mips_stack_address_p)
4188 (mips_small_data_pattern_p): Declare.
4189 * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
4190 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
4191 * config/mips/mips.c (mips_symbolic_constant_p): Make global.
4192 (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
4193 (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
4194 (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
4195 (reg_or_const_float_1_operand, hilo_operand, extend_operator)
4196 (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
4197 (pc_or_label_operand, call_insn_operand, move_operand)
4198 (consttable_operand, symbolic_operand, general_symbolic_operand)
4199 (global_got_operand, local_got_operand, stack_operand)
4200 (fp_register_operand, lo_operand, fcc_register_operand): Delete.
4201 (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
4202 (mips_small_data_pattern_p): Replace previous small_data_pattern
4203 predicate. Turn into a bool () (rtx) function.
4204 * config/mips/predicates.md: New file.
4205 * config/mips/mips.md: Include it. Use the target-independent
4206 comparison_operator instead of cmp_op. Rename trap_cmp_op to
4207 trap_comparison_operator and equality_op to equality_operator.
4208 Replace uses of small_int with the equivalent const_arith_operand.
4209 Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename
4210 const_float_1_operand to const_1_operand. Rename fcc_register_operand
4211 to fcc_reload_operand.
4212 * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
4213
656689ee 42142004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4215
4216 PR libstdc++/17005 partial fix.
4217 * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
4218 except when generating ANSI/C89 code.
4219
9a5e8086 42202004-08-14 Nathan Sidwell <nathan@codesourcery.com>
4221
4222 * c-common.c (shorten_compare): Use force_fit_type directly.
4223
85624669 42242004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
4225 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
4226 Dave Korn <dk@artimi.com>
4227
4228 * doc/install.texi (Building): Avoid duplicate reference to GNU
4229 make requirement.
4230 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
4231
79db42ad 42322004-08-14 Richard Henderson <rth@redhat.com>
4233
4234 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
4235 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
4236
e086f07a 42372004-08-13 Richard Henderson <rth@redhat.com>
4238
4239 * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
4240 for constant_call_address_operand.
4241 (call_value_pop_1, call_value_1): Likewise.
4242 (sibcall_value_1, call_value_1_rex64): Likewise.
4243
4aae77fb 42442004-08-13 James E Wilson <wilson@specifixinc.com>
4245
4246 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
4247 Correct mode from SFmode to DFmode.
4248
1cf478aa 42492004-08-13 Ziemowit Laski <zlaski@apple.com>
4250
4251 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
4252 __cstring_object and __image_info sections with the no_dead_strip
4253 attribute.
4254
248b5b6c 42552004-08-13 Roger Sayle <roger@eyesopen.com>
4256 David Billinghurst <David.Billinghurst@riotinto.com>
4257
4258 PR libgfortran/15930
4259 * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
4260 * fixinc/fixincl.x: Regenerate.
4261 * fixinc/tests/base/internal/math_core.h: New file.
4262
a3407969 42632004-08-13 Richard Henderson <rth@redhat.com>
4264
4265 * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
4266 (dbxout_function_end): Remove ifdefs for it.
4267 (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
4268
41421c64 42692004-08-13 Richard Henderson <rth@redhat.com>
4270
4271 * Makefile.in (insn-preds.o): Depend on TREE_H.
4272 * genpreds.c (write_insn_preds_c): Include tree.h.
4273 * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
4274 reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
4275 const48_operand, and_operand, or_operand, mode_width_operand,
4276 mode_mask_operand, mul8_operand, const0_operand,
4277 hard_fp_register_operand, hard_int_register_operand,
4278 reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
4279 samegp_function_operand, direct_call_operand, small_symbolic_operand,
690ff52f 4280 global_symbolic_operand, call_operand, symbolic_operand,
41421c64 4281 dtp16_symbolic_operand, dtp32_symbolic_operand,
4282 gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
4283 gottp_symbolic_operand, alpha_comparison_operator,
4284 alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
4285 signed_comparison_operator, alpha_fp_comparison_operator,
4286 divmod_operator, fix_operator, aligned_memory_operand,
4287 unaligned_memory_operand, reg_or_unaligned_mem_operand,
4288 any_memory_operand, reg_not_elim_operand, normal_memory_operand,
4289 reg_no_subreg_operand, addition_operation): Move to predicates.md.
4290 (reg_or_const_int_operand): Remove. Replace all users with
4291 reg_or_cint_operand.
4292 (tls_symbolic_operand_1): Export. Don't check mode or for CONST.
4293 (resolve_reload_operand): Split out of aligned_memory_operand.
4294 * config/alpha/alpha-protos.h: Update for exports.
4295 * config/alpha/alpha.h (PREDICATE_CODES): Remove.
4296 * config/alpha/alpha.md: Include predicates.md.
4297 * config/alpha/predicates.md: New file.
4298
c192dab3 42992004-08-13 Richard Sandiford <rsandifo@redhat.com>
4300
4301 * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
4302 fields with a pointer to the instruction definition.
4303 (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
4304 (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
4305 (write_attr_case, write_const_num_delay_slots): Update accordingly.
4306 (write_attr_case, write_const_num_delay_slots): Write the name of
4307 an insn next to its case statement.
4308 * genoutput.c (data): Add a filename field.
4309 (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
4310 (output_insn_data): Print the location of each insn definition.
4311 * genrecog.c (write_action): Print the name of an insn above
4312 the statement that returns its code.
4313
33f88b1c 43142004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
4315
4316 * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
4317 * config/libgloss.h: Likewise.
4318 * config/arm/arm.c (arm_gen_load_multiple): Likewise.
4319 * c4x/c4x-modes.def: Likewise.
4320 * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
4321 (c4x_rptb_nop_p): Likewise.
4322 (c4x_rptb_valid_p): Likewise.
4323 (c4x_rptb_insert): Likewise.
4324 (c4x_address_conflict): Likewise.
4325 * config/c4x/c4x.md: Likewise.
4326 * config/frv/frv.md: Likewise.
4327 * config/i386/athlon.md: Likewise.
4328 * config/i386/i386.md: Likewise.
4329 * config/i386/predicates.md: Likewise.
4330 * config/ia64/ia64.c: Likewise.
4331 * config/ia64/itanium1.md: Likewise.
4332 * config/ia64/itanium2.md: Likewise.
4333 * config/iq2000/iq2000.md: Likewise.
4334 * config/mcore/mcore.c: Likewise.
4335 * config/mips/mips.c: Likewise.
4336 * config/mips/r3900.h: Likewise.
4337 * config/mips/sb1.md: Likewise.
4338 * config/pa/milli64.S: Likewise.
4339 * config/pa/pa.c: Likewise.
4340 * config/pa/pa.h: Likewise.
4341 * config/rs6000/8540.md: Likewise.
4342
8833a11b 43432004-08-13 Daniel Berlin <dberlin@dberlin.org>
4344
4345 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
4346
d9c7d5f7 43472004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
4348
4349 * sh.md (cbranch define_delay) Use cond_delay_slot for
4350 non-anulled condition too.
4351
1893f356 43522004-08-12 David Edelsohn <edelsohn@gnu.org>
4353
4354 * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
4355 * config/rs6000/rs6000.h (PREDICATE_CODES): Add
4356 any_parallel_operand, lmw_operation, stmw_operation,
2d2562dc 4357 mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand.
1893f356 4358 * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
4359 any_parallel_operand.
4360 (return_and_restore_fpregs_{si,di}): Same.
4361
d7bdd8d3 43622004-08-12 Zack Weinberg <zack@codesourcery.com>
4363
4364 * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
4365 if pred->singleton != PARALLEL, issue a warning and pretend it was.
4366 Also issue a warning for any predicate we don't know about.
4367
c629a39a 43682004-08-12 Richard Henderson <rth@redhat.com>
4369
4370 * config/i386/i386.c (internal_label_prefix): Export.
4371 (internal_label_prefix_len, struct ix86_address,
4372 ix86_decompose_address, maybe_get_pool_constant,
4373 ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
4374 memory_address_length): Export.
d7bdd8d3 4375 (any_fp_register_operand, fp_register_operand,
c629a39a 4376 register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
d7bdd8d3 4377 x86_64_general_operand, x86_64_szext_general_operand,
c629a39a 4378 x86_64_nonmemory_operand, x86_64_movabs_operand,
4379 x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
4380 x86_64_zext_immediate_operand, const_int_1_31_operand,
4381 symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
4382 tls_symbolic_operand, global_dynamic_symbolic_operand,
4383 local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
4384 local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
4385 constant_call_address_operand, const0_operand, const1_operand,
4386 const248_operand, const_0_to_3_operand, const_0_to_7_operand,
4387 const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
4388 shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
4389 general_no_elim_operand, nonmemory_no_elim_operand,
4390 index_register_operand, q_regs_operand, flags_reg_operand,
4391 non_q_regs_operand, zero_extended_scalar_load_operand,
4392 vector_move_operand, no_seg_address_operand, sse_comparison_operator,
d7bdd8d3 4393 ix86_comparison_operator, ix86_carry_flag_operator,
c629a39a 4394 fcmov_comparison_operator, promotable_binary_operator,
4395 cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
d7bdd8d3 4396 mult_operator, div_operator, arith_or_logical_operator,
c629a39a 4397 memory_displacement_operand, cmpsi_operand, long_memory_operand,
4398 aligned_operand): Move to predicates.md as define_predicates.
4399 (tls_symbolic_operand_1): Remove.
4400 (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
4401 (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
4402 (legitimize_address): Merge tls_symbolic_operand contents.
4403 (ix86_expand_move): Likewise.
4404 * config/i386/i386-protos.h: Update for exports.
4405 * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
4406 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
4407 * config/i386/i386.md: Include predicates.md.
4408 * config/i386/predicates.md: New file.
4409
17e1177e 44102004-08-13 Mark Mitchell <mark@codesourcery.com>
4411
4412 PR c++/16924
4413 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
4414 SYMBOL_REF_DECL.
4415 (i386_pe_mark_dllimport): Likewise.
4416 (i386_pe_encode_section_info): Likewise, when overriding
4417 dllimport attribute.
4418
28c79bfe 44192004-08-12 Geoffrey Keating <geoffk@apple.com>
4420
4421 * configure.ac: When testing for flex, nm, ar, and bison, check
4422 that they will actually be built.
4423 * configure: Regenerate.
4424
363f612f 44252004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
4426
4427 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
4428 (MOVE_MAX_PIECES): Define.
4429
4ec92916 44302004-08-12 Devang patel <dpatel@apple.com>
4431
4432 * dbxout.c (dbxout_begin_prologue): New function.
4433 (dbx_debug_hooks): Use new begin prologue hook.
4434 (dbxout_function_end): Emit N_ENSYM.
4435 * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
d7bdd8d3 4436
2b9c51df 44372004-08-12 Janis Johnson <janis187@us.ibm.com>
4438
32cbbf3a 4439 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
4440 argument is float*.
4441
6530117e 4442 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
4443 for vec_dss.
4444
2b9c51df 4445 * doc/extend.texi (AltiVec builtins): Fix description for recent
4446 changes. Update operation list to match current support.
4447
67928721 44482004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
4449
4450 * config/s390/s390.c (struct s390_frame_layout): New struct as element
4451 of struct machine_function.
4452 (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
4453 changed all uses.
4454 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
4455 changed all uses.
4456 (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
4457 (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
4458 (s390_frame_area, s390_register_info): New functions.
4459 (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
4460 for base register.
4461 (s390_return_addr_rtx, s390_return_address_offset)
4462 (s390_va_start, s390_gimplify_va_arg)
4463 (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
4464 layouts.
4465 (s390_frame_info): Functionality partly moved to s390_register_info.
4466 Made adaptions for new stack layout.
4467 (save_gprs, restore_gprs): Changed meaning of second parameter and
4468 adapted all callers.
4469
4470 * config/s390/s390.h (s390_backchain_string): New global variable.
4471 (MASK_BACKCHAIN): Removed definition.
4472 (TARGET_BACKCHAIN): Changed check.
4473 (TARGET_KERNEL_BACKCHAIN): New macro.
4474 (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
4475 (TARGET_OPTIONS): Added "backchain", "no-backchain" and
4476 "kernel-backchain".
4477 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
4478
4479 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
4480 as condition. Adjusted for new stack layout.
4481
4482 * doc/invoke.texi: Added documentation for new option
4483 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
4484 "-mno-backchain".
4485
cac7aa19 44862004-08-12 Paul Brook <paul@codesourcery.com>
4487
4488 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
4489 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
4490
bc98573c 44912004-08-12 David Daney <ddaney@avtrex.com>
4492
cac7aa19 4493 * java/gcj.texi: Add subsection on signal usage.
bc98573c 4494
8b5c4aa4 44952004-08-12 David Edelsohn <edelsohn@gnu.org>
4496
4497 * expr.c (move_by_pieces): Set alignment for move to minimum of
4498 MOVE_MAX_PIECES mode alignment and the largest non-slow mode
4499 alignment, but not less than the original alignment.
4500 (move_by_pieces_ninsns): Same.
4501 (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
4502 (store_by_pieces_1): Same.
4503
2ce91ad7 45042004-08-12 Diego Novillo <dnovillo@redhat.com>
4505
4506 PR tree-optimization/16867
4507 * tree.c (is_global_var): New function.
4508 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
4509 Call is_global_var.
4510 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
4511 Update all users.
4512 (is_global_var): Declare.
4513 * tree-dfa.c (dump_variable): Display global and addressable
4514 attributes.
4515 (add_referenced_var): Clarify documentation when marking
4516 variables call-clobbered.
4517 * tree-flow-inline.h (is_call_clobbered): Call is_global_var
4518 instead of needs_to_live_in_memory.
4519 (mark_call_clobbered): If the variable is a tag, mark it
4520 DECL_EXTERNAL.
4521 * tree-gimple.c (is_gimple_reg): Don't check for
4522 TREE_ADDRESSABLE.
4523 (is_gimple_non_addressable): Likewise.
4524 * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
4525 needs to be marked call-clobbered.
4526 (setup_pointers_and_addressables): Call is_global_var instead
4527 of needs_to_live_in_memory.
4528 * tree-ssa-dce.c (need_to_preserve_store): Remove.
4529 Update all users with is_global_var.
4530 (mark_stmt_if_obviously_necessary): Fix processing of aliased
4531 stores. Don't check the virtual definitions. Rather, check
4532 whether the store is going into global memory.
4533 (find_obviously_necessary_stmts): Get the symbol from the PHI
4534 result.
4535 * tree-ssa-operands.c (get_call_expr_operands): Do not add
4536 clobbering may-defs if the call does not have side effects.
4537
76aec42f 45382004-08-12 Jakub Jelinek <jakub@redhat.com>
4539
4540 PR c++/16276
4541 * output.h (default_function_rodata_section,
4542 default_no_function_rodata_section): New prototypes.
4543 * target.h (struct gcc_target): Add asm_out.function_rodata_section.
4544 * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
4545 (TARGET_ASM_OUT): Add it.
4546 * varasm.c (default_function_rodata_section,
4547 default_no_function_rodata_section): New functions.
4548 * final.c (final_scan_insn): Call
4549 targetm.asm_out.function_rodata_section instead of
4550 readonly_data_section.
4551 * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
4552 * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
4553 * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
4554 * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
4555 Likewise.
4556 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
4557 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
4558 Likewise.
4559 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
4560 Likewise.
4561 * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
4562 * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
4563 * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
4564
a28008f5 45652004-08-12 Paul Brook <paul@codesourcery.com>
4566
4567 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
4568 frame info.
4569 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
4570 DWARF2_UNWIND_INFO.
4571
3e15fa92 45722004-08-12 Ben Elliston <bje@au.ibm.com>
4573
4574 PR target/16286
4575 * config/rs6000/altivec.h: Change vector to __vector throughout.
4576 (Except for the `vector' macro itself).
4577
cbf464bd 45782004-08-12 Zack Weinberg <zack@codesourcery.com>
4579
4580 * genpreds.c: Add capability to generate predicate bodies as
4581 well as function prototypes. Write function prototypes for
4582 the generic predicates too.
4583 (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
4584 (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
4585 (write_match_code, write_predicate_expr, write_one_predicate_function)
4586 (parse_option): New functions.
4587 (output_predicate_decls): Delete.
4588 (main): Read the machine description, process DEFINE_PREDICATE or
4589 DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
4590 as appropriate.
4591
4592 * genrecog.c (struct decision_test): Replace index with
4593 struct pred_data pointer.
4594 (next_index): Remove, unused.
4595 (pred_table, preds, special_mode_pred_table): Delete.
4596 (compute_predicate_codes, process_define_predicate): New functions.
4597 (validate_pattern, add_to_sequence, write_switch): Update for
4598 new data structures.
4599 (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
4600 Check both error_count and have_error.
4601
4602 * gensupport.c (in_fname, first_predicate): New globals.
4603 (define_pred_queue, define_pred_tail): New RTL-pattern queue.
4604 (predicate_table, last_predicate, old_pred_table)
4605 (old_special_pred_table): New statics.
4606 (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
4607 (add_predicate, init_predicate_table): New functions.
4608 (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
4609 (init_md_reader_args_cb): Use the global in_fname. No need to zero
4610 it or max_include_len. Call init_predicate_table.
4611 (read_rtx): Run the predicate queue after the attribute queue
4612 but before all the others.
4613 * gensupport.h (in_fname, struct pred_data, first_predicate)
4614 (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
4615 * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
4616 (DEFINE_SPECIAL_PREDICATE): New RTL codes.
4617 * dummy-conditions.c: Don't include bconfig.h, system.h,
4618 coretypes.h, tm.h, or system.h. Do include stddef.h.
4619 Duplicate declaration of struct c_test from gensupport.h.
4620
4621 * Makefile.in (OBJS-common): Add insn-preds.o.
4622 (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
4623 (insn-preds.c, insn-preds.o): New rules.
4624 (s-preds): Also generate insn-preds.c.
4625 (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
4626 Update dependencies.
4627 (print-rtl.o, print-rtl1.o): Correct dependencies.
4628
4629 * recog.h: Delete prototypes of predicate functions.
4630
4631 * doc/md.texi (Predicates): New section with complete
4632 documentation of operand/operator predicates. Remove some
4633 incomplete documentation of predicates from other places.
4634 * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
4635 PREDICATE_CODES; indicate that both are deprecated in favor
4636 of define_predicate/define_special_predicate.
4637
4638 * config/ia64/ia64.c: All predicate function definitions moved
4639 to ia64.md, except
4640 (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
4641 (ia64_expand_load_address, ia64_expand_move):
4642 Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
4643
4644 * config/ia64/ia64.md: All predicates now defined here.
4645 (symbolic_operand): Is now a special predicate.
4646
4647 * config/ia64/ia64.h: Declare ia64_section_threshold.
4648 (PREDICATE_CODES): Delete.
4649
2e3f4877 46502004-08-12 Richard Henderson <rth@redhat.com>
4651
4652 * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
4653 * c-semantics.c (add_stmt): Set it.
4654 * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
4655 before instantiating a variable sized type.
4656
59ff7b6e 46572004-08-12 Richard Henderson <rth@redhat.com>
4658
4659 * stor-layout.c (round_up, round_down): Move ...
cbf464bd 4660 * fold-const.c (round_up, round_down): ... here. Use
59ff7b6e 4661 multiple_of_p to avoid any arithmetic at all.
4662
d38cff30 46632004-08-12 Richard Henderson <rth@redhat.com>
4664
4665 * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
4666 (gimplify_init_ctor_preeval_1): New.
4667 (gimplify_init_ctor_preeval): New.
4668 (gimplify_init_ctor_eval): New.
4669 (gimplify_init_constructor): Use them. Always gimplify the LHS
4670 object first.
4671
749e254d 46722004-08-12 Ziemowit Laski <zlaski@apple.com>
4673
4674 (This patch is part of merge of objc-improvements-branch
4675 into mainline.)
4676
4677 * doc/frontends.texi: Mention Objective-C++ in addition to
4678 Objective-C.
4679 * doc/install.texi: Add 'obj-c++' to list of configurable
4680 languages.
4681 * doc/invoke.texi: Rename Objective-C option headings to
4682 indicate they also apply to Objective-C++. List file
4683 extensions for Objective-C++ sources. Mention that
4684 ObjC and ObjC++ compilations may also use C and C++ options,
4685 respectively. Point users to doc/standards.texi for
4686 further info on ObjC and ObjC++.
4687 * doc/sourcebuild.texi: Mention the objcp/ directory and
4688 the Objective-C++ sources it contains.
4689 * doc/standards.texi: Update link to Apple ObjC site;
4690 add link to gcc readings.html WWW doc.
4691
da6755bf 46922004-08-12 Alan Modra <amodra@bigpond.net.au>
4693
4694 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
4695 and 2004-07-14 changes.
4696
692e2bb8 46972004-08-12 Paul Brook <paul@codesourcery.com>
4698
4699 * doc/invoke.texi: Fix typo.
4700
b7d25287 47012004-08-11 Devang Patel <dpatel@apple.com>
4702
4703 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
4704 and -no_dead_strip_inits_and_terms.
4705 (LINK_SPEC): Same.
4706 * doc/invoke.texi (Darwin Options): Document -dead_strip and
4707 -no_dead_strip_inits_and_terms.
cbf464bd 4708
ea32a06e 47092004-08-11 Paul Brook <paul@codesourcery.com>
4710
4711 * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
4712 (arm_load_pic_register): ... to this.
4713 * config/arm/arm.c (arm_finalize_pic): Rename ...
4714 (arm_load_pic_register): ... to this. Always output insns at the
4715 current location. Load via low reg in thumb mode.
4716 (arm_expand_prologue): Call arm_load_pic_register.
4717 (thumb_expand_prologue): Ditto.
4718 * config/arm/arm.h (FINALIZE_PIC): Remove.
4719 * config/arm/arm.md (builtin_setjmp_receiver): Call
4720 arm_load_pic_register.
4721
237533cc 47222004-08-11 Paul Brook <paul@codesourcery.com>
4723
4724 * arm.c (thumb_force_lr_save): Add prototype.
4725 (thumb_compute_save_reg_mask): New function.
4726 (thumb_find_work_register): New function.
4727 (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
4728 (thumb_unexpanded_epilogue): Ditto. Remove redundant code.
4729 Don't clobber r3 when removing pretend args.
4730 (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
4731 (thumb_output_function_prologue): Use new functions.
4732 (thumb_set_return_address): Use thumb_compute_save_reg_mask.
4733 * arm.h (THUMB_REG_PUSHED_P): Remove.
4734
99bc9eb7 47352004-08-11 James E Wilson <wilson@specifixinc.com>
4736
4737 PR rtl-optimization/16490
4738 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
4739 global_live_at_end for new basic block if already set for other blocks.
4740
e84a95ef 47412004-08-11 David Edelsohn <edelsohn@gnu.org>
4742
4743 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
4744
4745 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
4746 (mfcr rlwinm rlwinm patterns): Set length to 12.
4747
5b110d39 47482004-08-11 Andrew MacLeod <amacleod@redhat.com>
4749
4750 * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
4751 get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
4752 (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
4753 (start_ssa_stmt_operands): Delete.
cbf464bd 4754 * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
5b110d39 4755 struct stmt_operands_d.
4756 (build_ssa_operands): New extern entry point.
cbf464bd 4757 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
5b110d39 4758 building code, replace with create_ssa_artficial_load_stmt().
4759 * tree-ssa-operands.c (struct voperands_d): Delete.
4760 (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
4761 (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
cbf464bd 4762 (free_uses, free_defs, free_vuses, free_v_may_defs,
5b110d39 4763 free_v_must_defs): Remove dealloc parameter.
4764 (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
4765 (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
4766 finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
4767 vector comparisons, ssa_name reuse, and allocations here.
4768 (verify_start_operands): Delete.
4769 (finalize_ssa_stmt_operands): Set new operands by calling finalize
4770 routines.
4771 (start_ssa_stmt_operands): Move from tree-flow-inline.h.
4772 (append_def, append_usei): Simplify to simple accumulation.
4773 (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
4774 duplicates and simple accumulation.
4775 (free_ssa_operands): Free vectors in a stmt_operand structure.
4776 (build_ssa_operands): New. Create a new stmt_operand structure from
cbf464bd 4777 a stmt and an old set of stmt_operands.
5b110d39 4778 (get_stmt_operands): Simplify and call build_ssa_operands.
4779 (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
4780 get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
4781 add_call_read_ops): Don't pass prev_vops around anymore.
4782 (note_addressable): Return if no stmt annotation.
4783 (copy_virtual_operands): Access v_may_def operands through a struct.
4784 (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
4785 hash tables without treating the stmt as a real stmt.
4786 * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
4787 v_may_def def and use through a struct instead of 2 array elements.
4788 (struct v_may_def_optype_d): Use v_may_def_operand_type.
4789 (struct stmt_operands_d): New. Struct for storing all operand vectors.
4790
a2f6cf84 47912004-08-11 Nick Clifton <nickc@redhat.com>
4792
4793 * config/arm/arm.c (arm_is_longcall_p): Update comment describing
4794 this funciton's behaviour. Return true when the current function
4795 has a section attribute and -mlong-calls is in effect.
4796 * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
4797 short-call marker when -mlong-calls is in effect and the function
4798 has a section attribute.
4799
6f4df69d 48002004-08-10 Zack Weinberg <zack@codesourcery.com>
4801
4802 * stmt.c (expand_return): If asked to return the RESULT_DECL,
4803 just call expand_value_return on result_rtl.
4804
afcf285e 48052004-08-10 Richard Henderson <rth@redhat.com>
4806
4807 * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
4808 * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
4809 * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
4810 (add_location_or_const_value_attribute): ... not here. Use
4811 loc_descriptor_from_tree if possible.
4812 (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
4813 Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
4814 values specially.
4815 (loc_descriptor_from_tree): New. Update callers.
4816 * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
4817 * gimplify.c (gimplify_decl_expr): Lower variable sized types to
4818 pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
4819 (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
4820 and BUILT_IN_STACK_RESTORE.
4821 (gimplify_expr): Lower DECL_VALUE_EXPR decls.
4822 * stmt.c (expand_stack_alloc): Remove.
4823 * tree-mudflap.c (mx_register_decls): Don't look for
4824 BUILT_IN_STACK_ALLOC.
4825 * tree-nested.c (convert_local_reference): Likewise.
4826 * tree.h (DECL_VALUE_EXPR): New.
4827
2a7b0524 48282004-08-10 Richard Henderson <rth@redhat.com>
4829
d69167ce 4830 * stor-layout.c (round_up): Check for 0/1 before dividing.
4831 (round_down): Likewise.
4832
2a7b0524 4833 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
4834
30e9913f 48352004-08-09 Mark Mitchell <mark@codesourcery.com>
4836
4837 * config.gcc (arm*-*-eabi*): New target.
4838 * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
4839 (TARGET_LIB_INT_CMP_BIASED): Likewise.
4840 * expmed.c (expand_divmod): Try a two-valued divmod function as a
4841 last resort.
4842 * gthr.h: Remove bogus tokens at end of #pragma.
4843 * optabs.c (expand_twoval_binop_libfunc): New function.
4844 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
4845 (prepare_float_lib_cmp): Try reversing the condition.
4846 (debug_optab_libfuncs): New function.
4847 * optabs.h (expand_twoval_binop_libfunc): Declare.
4848 * config/arm/arm.c (arm_init_libfuncs): New function.
4849 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
4850 (TARGET_INIT_LIBFUNCS): Define it.
4851 * config/arm/arm.h (TARGET_BPABI): New macro.
4852 * config/arm/arm-protos.h
4853 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
4854 * config/arm/bpabi.S: New file.
4855 * config/arm/bpabi.c: Likewise.
4856 * config/arm/bpabi.h: Likewise.
4857 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
4858 (__aeabi_drsub): Likewise.
4859 (__aeabi_dsub): Likewise.
4860 (__aeabi_dadd): Likewise.
4861 (__aeabi_ui2d): Likewise.
4862 (__aeabi_i2d): Likewise.
4863 (__aeabi_f2d): Likewise.
4864 (__aeabi_dmul): Likewise.
4865 (__aeabi_ddiv): Likewise.
4866 (__aeabi_cdrcmple): Likewise.
4867 (__aeabi_cdcmpeq): Likewise.
4868 (__aeabi_cdcmple): Likewise.
4869 (__aeabi_dcmpeq): Likewise.
4870 (__aeabi_dcmplt): Likewise.
4871 (__aeabi_dcmple): Likewise.
4872 (__aeabi_dcmpge): Likewise.
4873 (__aeabi_dcmpgt): Likewise.
4874 (__aeabi_dcmpun): Likewise.
4875 (__aeabi_d2iz): Likewise.
4876 (__aeabi_d2uiz): Likewise.
4877 (__aeabi_d2f): Likewise.
4878 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
4879 (__aeabi_frsub): Likewise.
4880 (__aeabi_fsub): Likewise.
4881 (__aeabi_fadd): Likewise.
4882 (__aeabi_ui2f): Likewise.
4883 (__aeabi_i2f): Likewise.
4884 (__aeabi_fmul): Likewise.
4885 (__aeabi_fdiv): Likewise.
4886 (__aeabi_cfrcmple): Likewise.
4887 (__aeabi_cfcmpeq): Likewise.
4888 (__aeabi_cfcmple): Likewise.
4889 (__aeabi_fcmpeq): Likewise.
4890 (__aeabi_fcmplt): Likewise.
4891 (__aeabi_fcmple): Likewise.
4892 (__aeabi_fcmpge): Likewise.
4893 (__aeabi_fcmpgt): Likewise.
4894 (__aeabi_fcmpun): Likewise.
4895 (__aeabi_f2iz): Likewise.
4896 (__aeabi_f2uiz): Likewise.
4897 * config/arm/lib1funcs.asm (ARM_CALL): New macro.
4898 (__aeabi_uidivmod): New function or alias.
4899 (__aeabi_idivmod): Likewise.
4900 (__aeabi_idiv0): Likewise.
4901 (__aeabi_ldiv0): Likewise.
4902 (__aeabi_llsr): Likewise.
4903 (__aeabi_lasr): Likewise.
4904 (__aeabi_llsl): Likewise.
4905 (bpabi.S): Include it.
4906 * config/arm/libgcc-bpabi.ver: New file.
4907 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
4908 (LINK_SPEC): Remove.
4909 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
4910 __aeabi_ulcmp.
4911 * config/arm/t-bpabi: New file.
4912 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
4913 (TARGET_LIB_INT_CMP_BIASED): Likewise.
6f4df69d 4914
e042bf99 49152004-08-10 David Edelsohn <edelsohn@gnu.org>
4916
4917 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
4918 * config/rs6000/rs6000.md (clrmemsi): New pattern.
4919 * config/rs6000/rs6000.c (expand_block_clear): New function.
4920 (expand_block_move): Convert alignment to bits. Use SImode and
4921 HImode for unaligned addresses if not STRICT_ALIGNMENT.
4922
49232004-08-10 Caroline Tice <ctice@apple.com>
480c55ab 4924
4925 * varasm.c (unlikely_section_label): New global variable.
4926 (unlikely_text_section_name): New global variable.
4927 (text_section): Remove alignment statement.
6f4df69d 4928 (unlikely_text_section): Remove alignment statement; use
480c55ab 4929 unlikely_section_label rather than hard-coded string.
4930 (assemble_start_function): Initialize unlikely_section_label and
4931 unlikely_text_section_name; make sure cold section is properly
4932 aligned at start of function; output unlikely_section_label if
4933 appropriate.
4934
ebe32bb0 49352004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
4936
4937 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
4938 * config/s390/s390.c (s390_canonicalize_comparison): New function.
4939 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
4940 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
4941 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
4942 ("*tmqi_mem"): Remove SUBREG from pattern.
4943 ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
4944 ("*andsi3_cconly"): Likewise.
6f4df69d 4945
72fefdc7 49462004-08-10 H.J. Lu <hongjiu.lu@intel.com>
4947
4948 PR target/16909
4949 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
4950
1081262a 49512004-08-10 Janis Johnson <janis187@us.ibm.com>
4952
4953 * doc/sourcebuild.texi (compat testing): Document available test
4954 framework commands. Use the preferred spelling of DejaGnu.
4955
bfc1f9c1 49562004-08-10 Daniel Berlin <dberlin@dberlin.org>
4957
4958 * lambda.h: Add matrix type, and prototypes for remainder of
4959 matrix and vector functions.
4960 (lambda_vector_mult_const): New function.
4961 (lambda_vector_negate): Ditto.
4962 (lambda_vector_add): Ditto.
4963 (lambda_vector_add_mc): Ditto.
4964 (lambda_vector_copy): Ditto.
4965 (lambda_vector_zerop): Ditto.
4966 (lambda_vector_equal): Ditto.
4967 (lambda_vector_min_nz): Ditto.
4968 (lambda_vector_first_nz): Ditto.
4969 (lambda_vector_matrix_mult): Ditto.
4970 * lambda-mat.c: New file.
4971 * Makefile.in (lambda-mat.o): New.
4972
ac4bd4cc 49732004-08-10 Andrew MacLeod <amacleod@redhat.com>
4974
4975 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
4976 after linking stmt into the program.
4977 (bsi_remove): Don't call modify_stmt.
6f4df69d 4978 * tree-complex.c (update_complex_assignment,
ac4bd4cc 4979 expand_complex_comparison): Call modify_stmt after changing the stmt.
6f4df69d 4980 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
ac4bd4cc 4981 removing the stmt.
4982 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
4983 the stmt, and only if needed.
4984 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
4985 expression.
4986 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
4987 (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
4988 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
6f4df69d 4989 (eliminate_redundant_computations): Don't pass an annotation. Call
ac4bd4cc 4990 modify_stmt rather than setting the annotation directly.
4991 (record_equivalences_from_stmt): Remove unused local 'j'.
4992 (cprop_operand): Take a stmt rather than an annotation as a parameter.
4993 Call modify_stmt.
4994 (cprop_into_stmt): Pass stmt rather than annotation.
4995 (update_rhs_and_lookup_avail_expr): Call modify_stmt.
6f4df69d 4996 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
ac4bd4cc 4997 modify_stmt.
4998 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
4999
648c102e 50002004-08-10 Jason Merrill <jason@redhat.com>
5001
624318a9 5002 PR middle-end/16948
648c102e 5003 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
5004 the RESULT_DECL.
5005
589975b5 50062004-08-10 Geoffrey Keating <geoffk@apple.com>
5007
5008 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
5009 hash function.
5010
10d0c4c6 50112004-08-10 Roger Sayle <roger@eyesopen.com>
5012
5013 * config/mips/mips.md: New reciprocal square root patterns that
5014 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
5015
4c44712e 50162004-08-10 Paul Brook <paul@codesourcery.com>
5017
5018 * config/arm/arm-protos.h (arm_set_return_address,
5019 thumb_set_return_address): Add prototypes.
5020 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
5021 * config/arm/arm.c (arm_compute_func_type,
5022 use_return_insn, arm_compute_save_reg0_reg12_mask,
5023 arm_compute_save_reg_mask, arm_output_function_prologue,
5024 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
5025 current_function_calls_eh_return.
5026 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
5027 old eh code.
5028 (arm_set_return_address, thumb_set_return_address): New functions.
5029 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
5030 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
5031 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
5032 (epilogue): Use the stackadj register.
5033 (eh_return, arm_eh_return, thumb_eh_return): New pattern.
5034
025d4f81 50352004-08-10 Jakub Jelinek <jakub@redhat.com>
5036
5037 PR target/3144
5038 * expr.c (move_by_pieces_ninsns): Add max_size argument.
5039 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
5040 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
5041 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
5042 but using MOVE_RATIO.
5043 (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
5044 (can_store_by_pieces): Change max_size type to unsigned int.
5045 (store_by_pieces_1): Likewise. Pass max_size to
5046 move_by_pieces_ninsns.
5047 * config/s390/s390.h (STORE_BY_PIECES_P): Define.
5048 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
5049 to move_by_pieces_ninsns.
5050 (STORE_BY_PIECES_P): Define.
5051 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
5052 to move_by_pieces_ninsns.
5053 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
5054
5055 * config/i386/i386.h (CLEAR_RATIO): Define.
5056
47954a5b 50572004-08-09 Paolo Bonzini <bonzini@gnu.org>
5058
5059 * expr.c (expand_expr_real_1): Add back code that was not dead.
5060
ad16cb2c 50612004-08-09 Andrew Pinski <apinski@apple.com>
5062
5063 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
5064 which is found to be compatible before returning the aliasing set.
5065
191fb66c 50662004-08-09 Daniel Jacobowitz <dan@debian.org>
5067
5068 * ggc-zone.c (struct alloc_zone): Add statistics counters.
5069 (always_collect): New flag.
5070 (ggc_alloc_zone_1): Update statistics support. Don't include
5071 overhead in allocated counter.
5072 (sweep_pages): Update allocated counter for large pages. Don'y
5073 include overhead.
5074 (ggc_collect_1): Always collect.
5075 (ggc_collect): Honor always_collect flag. Sum all zones to decide
5076 whether to collect.
5077 (SCALE, LABEL): New macros.
5078 (ggc_print_statistics): Add statistics support.
5079
7f4f7064 50802004-08-09 Roger Sayle <roger@eyesopen.com>
5081
5082 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
5083 (init_expmed): Fix potential overrun problem with "all.reg".
5084 (expand_sdiv2_pow2): Add an alternate implementation for signed
5085 division, if the target provides a suitable conditional move insn.
5086
34b963d5 50872004-08-09 Paul Brook <paul@codesourcery.com>
5088 Richard Henderson <rth@redhat.com>
5089
5090 * unwind-dw2.c (uw_install_context_1): Update target saved stack
5091 pointer.
5092
4cb2b0dd 50932004-08-09 Geoffrey Keating <geoffk@apple.com>
5094
5095 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
5096 Check DATA limit only if there's no AS limit. Ignore insanely
5097 low DATA limits.
5098 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
5099 but take care that the AS limit isn't overrun.
5100 * doc/invoke.texi: Update documentation of min-heapsize parameter.
5101
a8046f60 51022004-08-09 Jeff Law <law@redhat.com>
5103
5104 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
5105 (tree-ssa-threadupdate.o): Add dependencies.
5106 * tree-ssa-threadupdate.c: New file.
5107 * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
5108 (rewrite_vars_out_of_ssa): Remove prototype.
5109 (cleanup_tree_cfg): Returns a bool.
5110 * tree.h (thread_through_all_blocks): Prototype.
5111 * tree-outof-ssa.c (SSANORM_*): Move into here.
5112 (remove_ssa_form): Now static.
5113 (rewrite_vars_out_of_ssa): Kill.
5114 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
5115 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
5116 (remove_ssa_form, register_partitions_for_vars): Kill declarations.
5117 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
5118 anything was changed.
5119 * tree-phinodes.c (add_phi_arg): Get the block for the PHI
5120 from the PHI's annotation rather than the edge associated with
5121 the new argument.
5122 * tree-ssa-dom.c (redirection_edges): Kill.
5123 (redirect_edges_and_update_ssa_graph): Kill.
5124 (tree_ssa_dominator_optimize): Do not reset forwardable flag
5125 for blocks anymore. Do not initialize redirection_edges.
5126 Call thread_through_all_blocks. Simplify code for cleanup
5127 of the CFG and iterating. No longer call cleanup_tree_cfg
5128 outside the iteration loop.
5129 (thread_across_edge): No longer mess with forwardable blocks.
5130
d7ecac2e 51312004-08-09 Zack Weinberg <zack@codesourcery.com>
5132
5133 * explow.c (memory_address): Use memory_address_p.
5134 * recog.c (general_operand): Likewise.
5135 * regrename.c: No need to define REG_OK_STRICT.
5136
6416ac03 51372004-08-09 Steven Bosscher <stevenb@suse.de>
5138
5139 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
5140 New timers.
5141 * gcse.c: Include timevar.h.
5142 (const_prop_count, copy_prop_count): Rename to global_const_prop_count
5143 and global_copy_prop_count.
5144 (local_const_prop_count, local_copy_prop_count): New static globals.
5145 (gcse_main): Set the right timevar for each pass.
5146 (cprop_jump): Increment global_const_prop_count when a constant is
5147 propagated. Add "GLOBAL" to dump output.
5148 (cprop_insn): Increment global_const_prop_count when a constant is
5149 propagated, or global_copy_prop_count when a copy is propagated.
5150 (do_local_cprop): Likewise for local_const_prop_count and
5151 local_copy_prop_count.
5152 (one_cprop_pass): Initialize const/cprop counters to zero.
5153 Print out results of local and global const/cprop separately.
5154 (bypass_block): Break over-length line.
44bb68b4 5155 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
5156 for bb-reorder.o and tracer.o.
6416ac03 5157
fcb807f8 51582004-08-09 Paolo Bonzini <bonzini@gnu.org>
5159
5160 * Makefile.in (GTFILES): Remove stmt.c
5161 (stmt.o): Do not depend on gt-stmt.h.
5162 * emit-rtl.c (emit_line_note): Do not call
5163 set_file_and_line_for_stmt.
5164 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
5165 do everything.
5166 * function.c (free_after_parsing): Do not free STMT field.
5167 (allocate_struct_function): Do not call init_stmt_for_function.
5168 (assign_stack_temp_for_type): Do not accept values of keep
5169 other than 0 or 1.
5170 (init_temp_slots): Do not initialize removed variables.
5171 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
5172 and X_VAR_TEMP_SLOT_LEVEL fields.
5173 * rtl.h (set_file_and_line_for_stmt): Remove.
5174 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
5175 struct stmt_status, cond_stack, case_stack, nesting_stack,
5176 nesting_depth, emit_locus, set_file_and_line_for_stmt,
5177 same_case_target_p, init_stmt_for_function, emit_nop,
5178 expand_start_cond, expand_start_elseif, expand_start_else,
5179 expand_elseif, expand_end_cond): Remove.
5180 (preserve_subexpressions_p): Remove references to CFUN->STMT.
5181 (expand_start_case, expand_end_case_type): Remove, merge into...
5182 (expand_case): ... this one, including other bits from
5183 expand_expr_real_1. Inline same_case_target_p. Turn members
5184 of CASE_STACK into local variables.
5185 (emit_case_bit_tests): Inline same_case_target_p.
5186 (add_case_node): Add HEAD argument, return new head of the list,
5187 do not handle default label here.
5188 * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
5189 expand_start_elseif, current_nesting_level, expand_start_case,
5190 expand_end_case_type, expand_end_case, add_case_node,
5191 init_stmt_for_function, expand_elseif): Remove prototypes.
5192 (expand_case): Add prototype.
5193
75420fa3 51942004-08-09 Paolo Bonzini <bonzini@gnu.org>
5195
5196 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
5197
51982004-08-09 Paolo Bonzini <bonzini@gnu.org>
e3ee6a3e 5199
5200 * expr.c (var_rtx): Remove.
5201 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
5202 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
5203 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
5204 Abort.
5205 (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
5206 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
5207 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
5208
f045d41d 52092004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
5210 Ayal Zaks <zaks@il.ibm.com>
5211
5212 * common.opt (freschedule-modulo-scheduled-loops): New flag.
5213 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
5214 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
5215 when -freschedule-modulo-scheduled-loops flag is not specified.
5216 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
5217 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
5218 More accurate placing of insn in row of partial schedule.
5219 (ps_insn_find_column): New function.
5220 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
5221 * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
5222 (schedule_region): Use sched_is_disabled_for_current_region_p.
5223 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
5224
8223629e 52252004-08-07 H.J. Lu <hongjiu.lu@intel.com>
5226
5227 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
5228 change.
5229
d6a7d5f6 52302004-08-07 H.J. Lu <hongjiu.lu@intel.com>
5231
5232 * config/i386/i386.c (ix86_expand_clrmem): Properly call
5233 gen_strset for 64bit target.
5234
154754a8 52352004-08-07 Olivier Hainque <hainque@act-europe.fr>
5236
5237 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
5238
0e364d12 52392004-08-07 Jason Merrill <jason@redhat.com>
5240
806e4c12 5241 Make return in memory explicit.
5242 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
5243 (assign_parm_find_data_types): Remove code for old front end
5244 invisible reference handling.
5245 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
5246 (expand_function_end): Likewise.
5247 * gimplify.c (gimplify_return_expr): Handle a dereferenced
5248 RESULT_DECL.
5249 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
5250 (declare_return_variable): Handle DECL_BY_REFERENCE.
5251 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
5252 (cp_genericize_r): Use convert_from_reference.
5253 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
5254 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
5255
0e364d12 5256 * c-common.c (c_warn_unused_result): Check TREE_USED before
5257 warning about a CALL_EXPR with an unused value.
5258
b08de606 52592004-08-06 Mark Mitchell <mark@codesourcery.com>
5260
5261 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
5262 to the compiler. Use -fshort-wchar by default.
5263
43341e2f 52642004-08-06 Pat Haugen <pthaugen@us.ibm.com>
5265
5266 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
5267 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
5268 threshhold.
5269 * doc/invoke.texi (param): Document min-crossjump-insns.
5270
3304fb1c 52712004-08-06 Richard Sandiford <rsandifo@redhat.com>
5272
5273 PR c/13282
5274 * c.opt (Wmissing-field-initializers): New option.
5275 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
5276 * c-typeck.c (pop_init_level): Guard the missing field warning with
5277 warn_missing_field_initializers rather than extra_warnings.
5278 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
5279 some of the explanation from...
5280 (-Wextra): ...here. Say that the missing field warning can be
5281 seperately controlled by -Wmissing-field-initializers.
5282
7d4e610d 52832004-08-06 Paolo Bonzini <bonzini@gnu.org>
5284
5285 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
5286 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
5287 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
5288 * tree.def (ENTRY_VALUE_EXPR): Remove.
5289
217b6f49 52902004-08-06 Jakub Jelinek <jakub@redhat.com>
5291
5292 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
5293 the places where it is actually needed. Don't use repz; stosb
5294 for -Os with sufficiently small constant sizes.
5295 For sufficiently small repz; stos{l,q} repeat counts use a sequence
5296 of stos{l,q} instructions instead.
5297
bf9fa951 52982004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5299
5300 PR tree-optimization/16807
5301 * loop-iv.c (dump_iv_info): Dump invariants correctly.
5302 (iv_subreg, iv_extend): Express value of invariant purely in
5303 base field.
5304
15f1f1a4 53052004-08-06 Mark Mitchell <mark@codesourcery.com>
5306
5307 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
5308 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
5309
e2eeb731 53102004-08-06 Roman Zippel <zippel@linux-m68k.org>
d7ecac2e 5311
6416ac03 5312 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
5313 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
5314 pre_dec_operand.
5315 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
5316 pattern until reload is finished to allow better code generation
5317 and split them completely into separate instrunctions.
5318 (*andsi3_split): New pattern.
e2eeb731 5319
3aa0c315 53202004-08-05 Mark Mitchell <mark@codesourcery.com>
5321
5322 * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
5323 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
5324 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
5325 * tree.h (handle_dll_attribute): Declare. Test
5326 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
5327 * c-common.h (c_determine_visibility): Declare.
5328 * c-common.c (c_determine_visibility): New function.
5329 * c-decl.c (finish_decl): Use it.
5330 (finish_function): Likewise.
5331 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
5332 zero, by default. Use #if, not #ifdef, to test it.
5333 * config/arm/arm.c (arm_attribute_table): Use
5334 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
5335 #if.
5336 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
5337 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
5338 to 1.
5339 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
5340 * config/i386/i386.c (ix86_attribute_table): Use
5341 handle_dll_attribute for dllimport/dllexport. Test
5342 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
5343 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
5344 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
5345 it to 1.
5346 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
5347 with #if.
5348 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
5349 it to 1.
5350 * doc/extend.texi (dllexport): Clarify and correct documentation.
5351 (dllimport): Likewise.
5352 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
5353 handle_dll_attribute.
d7ecac2e 5354
06598532 53552004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5356
5357 * tree-ssa-loop-manip.c: New file.
5358 * Makefile.in (tree-ssa-loop-manip.o): Add.
5359 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
5360 Declare.
5361 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
5362 form.
5363 (tree_ssa_loop_done): Verify loop closed ssa form.
5364 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
5365
ff59d376 53662004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5367
5368 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
5369 pa_asm_output_aligned_local): New functions.
5370 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
5371 pa_asm_output_aligned_common and pa_asm_output_aligned_local.
5372 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
5373 pa_asm_output_aligned_common.
5374 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
5375 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
5376 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
5377 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
5378 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
5379 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
5380 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
5381 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
5382 common data.
5383
03dc92db 53842004-08-05 Andrew Pinski <apinski@apple.com>
5385
5386 * objc/objc-act.c (build_objc_string_object): Mark the address
5387 expression as constant.
5388
04561dfd 53892004-08-05 David Edelsohn <edelsohn@gnu.org>
5390
5391 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
5392 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
5393 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
5394
15f72519 53952004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
5396
5397 * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
5398 Remove definitions conditioned on USE_GNULIBC_1 or conditioned
5399 out, and associated obsolete comments.
5400
4d28c5d1 54012004-08-05 Nathan Sidwell <nathan@codesourcery.com>
5402
5403 * tree.h (force_fit_type): Return a tree, take three flags.
5404 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
5405 TREE_CONSTANT_OVERFLOW here.
5406 (int_const_binop, const_binop): Adjust.
5407 (size_int_type): Do sign extension here.
5408 (fold_convert_const, optimize_bit_field_compare,
5409 decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
5410 fold_negate_const, fold_abs_const, fold_not_const): Adjust.
5411 * tree.c (size_in_bytes, int_fits_type_p): Adjust.
5412
8bf71901 54132004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5414
5415 PR tree-optimization/16864
5416 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
5417 for ssa names without default_def.
5418
b17e4230 54192004-08-05 Richard Sandiford <rsandifo@redhat.com>
5420
5421 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
5422 frame pointer, restore eax with an ebp-relative address.
5423
b2c4af5e 54242004-08-04 Geoffrey Keating <geoffk@apple.com>
5425
5426 PR 14516
5427 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
5428 * c-common.h (make_rtl_for_local_static): Delete.
5429 * c-decl.c (shadow_tag_warned): Clean up comment.
5430 (finish_decl): Clean up spacing. Use set_user_assembler_name when
5431 appropriate. Don't pass asmspec to rest_of_decl_compilation.
5432 * c-semantics.c (make_rtl_for_local_static): Delete.
5433 * expr.c (init_block_move_fn): Use set_user_assembler_name.
5434 (init_block_clear_fn): Likewise.
5435 * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
5436 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
5437 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
5438 * tree.h (make_decl_rtl): Remove second parameter.
5439 (set_user_assembler_name): New.
5440 * varasm.c (set_user_assembler_name): New.
5441 (make_decl_rtl): Remove second parameter. Update callers in many
5442 files.
5443
d895dbf9 54442004-08-05 Adam Nemet <anemet@lnxw.com>
5445
5446 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
5447 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
5448 to LynxOS 4.0.
5449 * gthr-lynx.h: New file.
5450 * config/lynx-ng.h: Remove file.
5451 * config/lynx.h: Update to LynxOS 4.0.
5452 * config/t-lynx: New file.
5453 * config/i386/lynx-ng.h: Remove file.
5454 * config/i386/lynx.h: Update to LynxOS 4.0.
5455 * config/rs6000/lynxbase.h: Remove file.
5456 * config/rs6000/lynx.h: Update to LynxOS 4.0.
5457 * config/rs6000/t-lynx: New file.
5458 * doc/install.texi (Options specification): Remove reference to
5459 LynxOS from systems where --with-gnu-as makes a difference.
5460
36bccbfc 54612004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
5462
5463 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
5464 __UINTMAX_TYPE__.
5465 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
5466 __INTMAX_MAX__.
5467 (c_cpp_builtins): Call it.
5468 * doc/cpp.texi: Update.
5469
b87cee5c 54702004-08-04 David Edelsohn <edelsohn@gnu.org>
5471
5472 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
5473 cost.
5474
020c749b 54752004-08-04 Jan Hubicka <jh@suse.cz>
5476
5477 * basic-block.h (profile_staus): New global variable.
5478 * cfg.c (profile_status): Declare.
5479 (check_bb_profile): Break out from ....; use profile_status
5480 (dump_flow_info): ... here.
5481 * cfgbuild.c (find_basic_blocks): Set profile_status.
5482 * cfgexpand.c (tree_expand_cfg): Likewise.
5483 * predict.c (estimate_probability): Likewise.
5484 * profile.c (branch_prob): Likewise.
5485 * tree-cfg.c (build_tree_cfg): Likewise.
5486 (dump_function_to_file): Use check_bb_profile.
5487 * tree-pretty-print (dump_bb_header): Likewise.
5488 * tree-profile.c (do_tree_profiling): Cleanup.
5489
fdef3332 54902004-08-04 Zack Weinberg <zack@codesourcery.com>
5491
5492 * Makefile.in (RTL_BASE_H, RTL_H): Correct.
5493 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
5494 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
5495 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
5496 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
5497 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
5498 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
5499 (ggc-none.o, errors.o): Move rule to generators section;
5500 correct dependencies.
5501 (min-insn-modes.o): Move rule to generators section; remove
5502 unnecessary explicit command; correct dependencies.
5503 (print-rtl.o, print-rtl1.o): Correct dependencies.
5504 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
5505 (mostlyclean): Update.
5506
5507 * errors.c: Include bconfig.h not config.h. Correct comment.
5508 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
5509 * ggc-none.c: Include bconfig.h; not config.h or tm.h.
5510 * print-rtl.c: Don't include tm_p.h.
5511
5512 * rtl.h: Move forward-decl of struct function down where it's
5513 needed. Include genrtl.h #ifndef GENERATOR_FILE, not
5514 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
5515
deb78f9e 55162004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5517 Jeff Law <law@redhat.com>
5518
5519 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
5520 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
5521 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
5522 manipulate the duplicated ssa names.
5523 * tree-ssanames.c (ssa_names_to_rewrite): New variable.
5524 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
5525 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
5526 New functions.
5527 (release_ssa_name): Do not release ssa names that may have multiple
5528 definitions.
5529 * tree.h (release_ssa_name_force, mark_for_rewrite,
5530 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
5531 marked_ssa_names): Declare.
5532 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
5533 (duplicate_blocks): Remove call to mark_defs_for_rewrite.
5534 Update call to rewrite_ssa_into_ssa.
5535
3c5c992f 55362004-08-04 Mark Mitchell <mark@codesourcery.com>
5537
5538 * defaults.h (TARGET_DECLSPEC): New macro.
5539 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
5540 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
3aa0c315 5541 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
3c5c992f 5542 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
5543 __declspec support.
5544 (TARGET_DECLSPEC): Define.
5545 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
5546 __declspec support.
5547 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
5548 __declspec support.
5549 (TARGET_DECLSPEC): Define.
5550 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
5551 __declspec support.
5552 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
5553 support.
5554 * doc/tm.texi (TARGET_DECLSPEC): Document.
5555
5556 * doc/extend.texi: Fix typo in comment.
5557
853b7640 55582004-08-04 Paul Brook <paul@codesourcery.com>
5559
5560 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
5561 (TARGET_CXX): Use it.
5562 * target.h (struct gcc_target): Add cdtor_returns_this.
5563 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
5564 (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
5565 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
5566
2364e487 55672004-08-03 Nathan Sidwell <nathan@codesourcery.com>
5568
5569 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
5570 low/high pair. Do range checking directly.
5571 (interpret_integer): Adjust.
5572
90b0414c 55732004-08-04 Nick Clifton <nickc@redhat.com>
5574
5575 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
5576 GCC ABI.
5577 * doc/invoke.texi: Document this new switch and also the -mrenesas
5578 switch.
5579
5bafb95e 55802004-08-04 Nathan Sidwell <nathan@codesourcery.com>
5581
5582 * cfglayout.c (insn_locators_initialize): Update the current
5583 location before initializing a location.
5584
7850c77b 55852004-08-03 Zack Weinberg <zack@codesourcery.com>
5586
28a5f832 5587 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
5588 (dbxout_function_end): Return after emitting the "Lscope" symbol
5589 under the same conditions that this function formerly wasn't called.
5590 Add explanatory comments.
5591
2970bccb 5592 PR 14860
f62468fc 5593 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
5594 on the new decl.
5595
2970bccb 5596 PR 13956
7850c77b 5597 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
5598 functions, broken out of dbxout_block.
5599 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
5600 stabs too, if it contains symbols. Use the begin_label and
5601 the Lscope label (emitted by dbxout_function_end) for the
5602 range of this block.
5603
2eeb7d59 56042004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
5605
5606 * doc/install.texi: Update autoconf version requirements.
5607
7151fd0e 56082004-08-03 Zack Weinberg <zack@codesourcery.com>
5609
5610 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
5611 * recog.c (general_operand, immediate_operand, nonmemory_operand)
5612 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
5613 * regclass.c (record_reg_classes): Likewise.
5614 * reload.c (find_reloads): Likewise.
5615 * reload1.c (reload): Likewise.
5616
ba08da2c 56172004-08-03 Zack Weinberg <zack@codesourcery.com>
5618
5619 * gensupport.c (init_md_reader_args_cb): Renamed from
5620 init_md_reader_args. Add third option, callback function for
5621 parsing program-specific options. Add diagnosis of incorrect
5622 number of input files.
5623 (init_md_reader): Fold into init_md_reader_args_cb.
5624 (init_md_reader_args): Now a thin wrapper around
5625 init_md_reader_args_cb.
5626 * gensupport.h: Update prototypes.
5627
5628 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
5629 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
5630 * genrecog.c: No need to diagnose lack of an input file;
5631 init_md_reader_args will handle it.
5632 * genconditions.c: Likewise, and use init_md_reader_args.
5633 * genconstants.c: Likewise, and no need to call read_md_rtx.
5634
0568d4ea 56352004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
5636
5637 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
5638 declarations.
5639
493d71ef 56402004-08-03 Mike Stump <mrs@apple.com>
5641
5642 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
5643 for frameworks.
5644 * doc/invoke.texi (Darwin Options): Update to reflect above.
5645
40309554 56462004-08-03 Roger Sayle <roger@eyesopen.com>
5647
5648 PR middle-end/16790
5649 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
5650 truncations, not just global truncations.
5651
1b425b8e 56522004-08-03 Andrew Pinski <apinski@apple.com>
5653
5654 PR bootstrap/16865
5655 * loop-iv.c (simplify_using_assignment): Initialize lhs.
5656
5ca838b8 56572004-08-03 Paul Brook <paul@codesourcery.com>
5658
5659 * gcc/doc/install.texi: Document MPFR requirement.
5660
1b425b8e 56612004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
b0b8d180 5662
ba08da2c 5663 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
5664 and mmap() explicitly instead of relying on preset autoconf cache
b0b8d180 5665 variables.
5666 * configure: Regenerate.
5667
561866ed 56682004-08-03 H.J. Lu <hongjiu.lu@intel.com>
5669
5670 PR target/16570
5671 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
5672 to tmake_file.
5673 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
5674 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
5675 to tmake_file.
5676
5677 * config/i386/t-gmm_malloc: New file.
5678 * config/i386/t-pmm_malloc: Likewise.
ba08da2c 5679
561866ed 5680 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
5681
56822004-08-03 H.J. Lu <hongjiu.lu@intel.com>
5edbc38d 5683