]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
configure.ac: Add --enable-secureplt.
[gcc.git] / gcc / ChangeLog
CommitLineData
7f970b70
AM
12005-06-01 Alan Modra <amodra@bigpond.net.au>
2
3 * configure.ac: Add --enable-secureplt.
4 (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
5 * config.in: Regenerate.
6 * configure: Regenerate.
7 * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
8 rs6000/secureplt.h to tm_file when enable_secureplt.
9 * doc/invoke.texi (msecure-plt, mbss-plt): Document.
10 * doc/install.texi: Document --enable-targets and --enable-secureplt.
11 Correct xrefs to "Using the GNU Compiler Collection (GCC)".
12 * config/rs6000/secureplt.h: New file.
13 * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
14 (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
15 assembler support.
16 (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
17 (CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default.
18 (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
19 * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
20 * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
21 * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
22 TARGET_SECURE_PLT got register load sequence.
23 (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
24 TARGET_SECURE_PLT.
25 (rs6000_elf_declare_function_name): Don't emit toc address offset
26 word when TARGET_SECURE_PLT.
27 * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
28 (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
29 (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
30 (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
31 TARGET_SECURE_PLT.
32 (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
33 sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
34 and -fPIC.
35 * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
36 (__trampoline_setup): Likewise. Init r30 before plt call.
37
d2348bd5
DD
382005-05-31 DJ Delorie <dj@redhat.com>
39
40 * expr.c (convert_move): When a partial_int requires multiple
41 conversion steps, make sure successive steps convert the
42 intermediate value, not the original value.
43
44 * expmed.c (expand_mult): Convert partial_int multiplies to
45 shift/add combinations too.
46
47 * genmodes.c (mode_data): Add wider_2x.
48 (calc_wider_mode): Calculate twice-wider mode too.
49 (emit_mode_wider): Emit twice-wider mode too.
50 * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
51 * expr.c (expand_expr_real_1): Use it for expanding
52 multiplies.
53
60407f7a
ZD
542005-05-31 Zdenek Dvorak <dvorakz@suse.cz>
55
56 PR tree-optimization/21817
57 * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
58
ec22e73b
PH
592005-05-31 Pat Haugen <pthaugen@us.ibm.com>
60
61 * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
62 change.
63
d763bb10
AP
642005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
65
66 PR middle-end/20931
67 PR middle-end/20946
68 * fold-const.c (fold_checksum_tree): Copy types also if
69 TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
70 Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
71 first.
72 Tail recurse TREE_LIST's TREE_CHAIN.
73
fb03baf2
AP
742005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
75
76 PR tree-opt/21732
77 * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
78 SSA_NAME twice and cause the loop to become finite. Remove the test
79 for val.
80
9c691961
AP
812005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
82
83 * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
84 expression.
85
8d932be3
RS
862005-05-31 Richard Sandiford <rsandifo@redhat.com>
87
88 * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
89 the documentation to make it more future-proof.
90 (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
91 * target.h (gcc_target): Add check_pch_target_flags.
92 * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
93 (TARGET_INITIALIZER): Include it.
94 * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
95 * config/sh/sh.h (sh_pch_valid_p): Delete.
96 * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
97 (sh_check_pch_target_flags): New function.
98 (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
99
4ea73bfa
JL
1002005-05-31 Richard Guenther <rguenth@gcc.gnu.org>
101
102 * fold-const.c (extract_array_ref): Handle more cases,
103 do some useful canonicalization of the base.
104 (fold_binary): Explicitly deal with arrays of zero-sized
105 structures during folding of &a[i] == &a[j].
106
661f4f90
EB
1072005-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
108
dd48afcd
EB
109 * doc/install.texi (sparc-sun-solaris2*): Update note
110 about Sun bug 4910101.
111 (sparc-sun-solaris2.7): Document bootstrap
661f4f90
EB
112 failure with Sun WorkShop 6 99/08/18 as.
113
3c6fcc10
PH
1142005-05-30 Pat Haugen <pthaugen@us.ibm.com>
115
116 * loop.c (loop_invariant_p, valid_initial_value_p): Use
117 regs_invalidated_by_call instead of call_used_regs.
118
c3887ef2
PC
1192005-05-30 Paolo Carlini <pcarlini@suse.de>
120
121 PR middle-end/21743
122 * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
123 Enable.
124 * doc/extend.texi: Add clog, clogf, clogl.
125
be1b1c9b
L
1262005-05-30 H.J. Lu <hongjiu.lu@intel.com>
127
128 PR middle-end/20303
129 * c-pragma.c: Include "vec.h".
130 (handle_pragma_visibility): Use VEC.
131
132 * doc/invoke.texi: Remove the nested visibility push limit.
133
385e0e08
RS
1342005-05-30 Roger Sayle <roger@eyesopen.com>
135
136 PR rtl-optimization/15422
137 * reg-stack.c (starting_stack_p): New static global.
138 (straighten_stack): Delete prototype. Change to update the stack
139 before the current insn.
140 (subst_stack_regs): Update call to straighten stack.
141 (emit_swap_insn): Delete prototype. For the first insn in a
142 basic block, update stack_in instead of emitting a real swap.
143 (change_stack): When changing the stack before the first insn
144 in a basic block, update stack_in instead of emitting real code.
145 (compensate_edges): Clear starting_stack_p during compensation.
146 (convert_regs_1): Keep track of starting_stack_p whilst processing
147 a basic block.
148
404f4351
KH
1492005-05-30 Kazu Hirata <kazu@cs.umass.edu>
150
151 * tree-ssa-ccp.c (const_val): Make it static.
152
47b528da
GK
1532005-05-29 Geoffrey Keating <geoffk@apple.com>
154
66859ace
GK
155 PR target/21761
156 * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
157 pattern involving `:P'.
158
47b528da
GK
159 * Makefile.in (install-cpp): Depend on installdirs.
160
a9b31c40
KH
1612005-05-30 Kazu Hirata <kazu@cs.umass.edu>
162
163 * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
164 to VEC(int,heap)*.
165 (new_elim_graph, clear_elim_graph, delete_elim_graph,
166 elim_graph_add_edge, elim_graph_remove_succ_edge,
167 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
168 instead of VARRAY.
169
cc9795d4
KH
1702005-05-29 Kazu Hirata <kazu@cs.umass.edu>
171
172 * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
173 opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
174 tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
175 follow spelling conventions in error/dump messages.
176
cb275d32
RS
1772005-05-29 Roger Sayle <roger@eyesopen.com>
178 Richard Henderson <rth@redhat.com>
179
180 * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
181 if the RHS isn't suitable for calling emit_move_insn.
182
615bc06a
KH
1832005-05-29 Kazu Hirata <kazu@cs.umass.edu>
184
185 * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
186 fold_unary and fold_binary.
187
0ac2a27a
RS
1882005-05-29 Roger Sayle <roger@eyesopen.com>
189
190 * reg-stack.c (propagate_stack): Always copy the source stack to
191 the destination. This routine is now only called when this is safe.
192 (better_edge): New function split out from convert_regs_1 to
193 determine which of two edges is better to propagate across.
194 (convert_regs_1): We need only search for a best edge if the
195 stack layout hasn't been defined yet. Use better_edge to help
196 find beste. No longer traverse unnecessary edges.
197
9cf5a7e3
KB
1982005-05-29 Keith Besaw <kbesaw@us.ibm.com>
199
200 * tree-ssa-alias.c (new_type_alias): New procedure to
201 create a type memory tag for a pointer with a may-alias
202 set determined from a variable declaration.
203 * tree-flow.h: export declaration of new_type_alias
204 * tree-optimize.c (init_tree_optimization_passes): document
205 that pass_may_alias cannot be called after pass_vectorize.
206 * tree-vect-transform (vect_create_data_ref_ptr): Call
207 new_type_alias when an type memory tag isn't available
208 for a reference.
209 (vectorizable_store): Use copy_virtual_operands to update
210 virtual defs in place (so that loop_version can be called).
211 Call mark_for_renaming for the virtual defs in case peeling
212 is done and virtual uses outside the loop need to be updated.
213
12bcc2c1
DN
2142005-05-29 Dorit Naishlos <dorit@il.ibm.com>
215
216 PR tree-optimization/21639
217 * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
218
fd44f634
JH
2192005-05-29 Jan Hubicka <jh@suse.cz>
220
221 PR tree-optimization/21562
222 * cfgexpand.c (construct_init_block): Deal properly with the case
223 of entry edge not pointing to very first basic block.
224
79547995
KH
2252005-05-28 Kazu Hirata <kazu@cs.umass.edu>
226
227 * tree-ssa-ccp.c (ccp_fold): Remove code that produces
c9784e6d
KH
228 non-gimple min invariant.
229
230 * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
231 * tree-flow.h: Add prototypes for start_recording_case_labels
232 and end_recording_case_labels.
233 * tree-cfg.c (start_recording_case_labels,
234 end_recording_case_labels): Export.
235 (cleanup_tree_cfg_loop, modified_noreturn_calls,
236 cleanup_control_flow, cleanup_control_expr_graph,
237 remove_fallthru_edge, phi_alternatives_equal,
238 tree_forwarder_block_p, has_abnormal_incoming_edge_p,
239 remove_forwarder_block, cleanup_forwarder_blocks,
240 remove_forwarder_block_with_phi, merge_phi_nodes,
241 gate_merge_phi, pass_merge_phi): Move to ...
242 * tree-cfgcleanup.c: ... here.
79547995 243
76b8a7a1
KH
244 * basic-block.h: Remove forward declaration of bb_ann_d.
245
d416304e
JH
2462005-05-28 Jan Hubicka <jh@suse.cz>
247
248 * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
249 Update profile.
250 * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
251 debug output.
252 (tree_mod_subtract): Fix profile updating code.
253 (tree_divmod_values_to_profile): Do not produce useless value profilers
254 for divisions.
255
8184759d
KH
2562005-05-28 Kazu Hirata <kazu@cs.umass.edu>
257
258 * tree-ssa-dom.c (vrp_element_p): Define.
259 (vrp_hash_elt): Change the type of records to
260 VEC(vrp_element_p,heap).
261 (vrp_free): New.
262 (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
263 Update uses of VRP records.
264 (simplify_cond_and_lookup_avail_expr, record_range): Update
265 uses of VRP records.
266
426357ea
KH
267 * tree-inline.c (cfun_stack): Change the type to
268 VEC(function_p,heap).
269 (push_cfun, pop_cfun): Use VEC instead of VARRAY.
270
ed3d0b14
ILT
2712005-05-27 Ian Lance Taylor <ian@airs.com>
272
273 * c-decl.c (add_stmt): Add C frontend specific version.
274 (stmts_are_full_exprs_p): Remove.
275 * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
276 (stmts_are_full_exprs_p): Don't declare.
277 * c-semantics.c (add_stmt): Remove.
278
99a3237a
KG
2792005-05-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
280
281 * config/mips/mips-protos.h (mips_declare_object): Add printf
282 attribute.
283 * config/mips/mips.c (mips_declare_object_name): Fix format
284 argument.
285
1c320f82
RS
2862005-05-27 Roger Sayle <roger@eyesopen.com>
287
288 * reg-stack.c (compensate_edge): Remove original prototype.
289 (propagate_stack): New function to copy the stack layout
290 at the start of a basic block from the layout at the end of
291 one of its predecessors.
292 (compensate_edge): Assume that both source and destination
293 blocks have already had their stack layouts defined.
294 (compensate_edges): Traverse all non-entry edges in the CFG
295 and call compensate_edge on each in turn.
296 (convert_regs_1): Change return type to void. Call
297 propagate_stack instead of compensate_edge.
298 (convert_regs_2): Change return type to void. Update call
299 to convert_regs_1 to ignore the (now void) return value.
300 (convert_regs): Update calls to convert_regs_2 to ignore
301 the (now void) return value. After all the basic blocks have
302 been processed, call compensate_edges to actually emit new
303 insns.
304 (reg_to_stack): Initialize the aux info for each basic block
305 with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
306
b59fa6cf
JH
3072005-05-28 Jan Hubicka <jh@suse.cz>
308
309 * except.c (can_throw_internal_1, can_throw_external_1): Add
310 "is_resx" argument.
311 (can_throw_external, can_throw_internal): Bring into sync wrt
312 dealing resx.
313 * except.h (can_throw_internal_1, can_throw_external_1): Update
314 prototype.
315 * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
316 Deal properly with resx.
317
4aab792d
KH
3182005-05-27 Kazu Hirata <kazu@cs.umass.edu>
319
320 * basic-block.h (basic_block_def): Add phi_nodes and
321 predictions. Remove tree_annotations.
322 * predict.c (tree_predicted_by_p, tree_predict_edge,
323 combine_predictions_for_bb): Adjust references to predictions.
324 * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
325 create_block_annotation.
326 (create_block_annotation, free_blocks_annotatios,
327 clear_blocks_annotations): Remove.
328 (dump_cfg_stats): Don't print out the memory spent on
329 bb_ann_d.
330 (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
331 * tree-flow-inline.h (bb_ann): Remove.
332 (phi_nodes, set_phi_nodes): Update references to phi_nodes.
333 * tree-flow.h (bb_ann_d): Remove.
334 * tree-if-conv.c (process_phi_nodes): Update a reference to
335 phi_nodes.
336 * tree-phinodes.c (reserve_phi_args_for_new_edge,
337 create_phi_node, remove_phi_node): Likewise.
338 * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
339 * tree-ssa-dom.c (threaded_blocks): New.
340 (tree_ssa_dominator_optimize): Initialize, clear, and free
341 threaded_blocks. Update a call to thread_through_all_blocks.
342 (thread_across_edge): Use threaded_blocks instead of setting
343 incoming_edge_threaded.
344 * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
345 a bitmap of blocks that are threaded through.
346 * tree.h: Move the prototype of threaded_through_blocks to
347 tree-flow.h.
348
ea497bb8
KH
349 * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
350 fini_walk_dominator_tree): Use VEC instead of VARRAY.
351 * domwalk.h (dom_walk_data): Change the type of
352 block_data_stack and free_block_data to VEC(void_p,heap)*.
353 * tree-ssa-dse.c (dse_initialize_block_local_data,
354 dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
355 VEC instead of VARRAY.
356
e0704a46
JH
3572005-05-27 Jan Hubicka <jh@suse.cz>
358
359 * cgraph.c: Include tree-gimple.h
360 (cgraph_edge): Rename expr to stmt.
361 (cgraph_create_edge): Likewise.
362 (cgraph_clone_node): Likewise.
363 * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
364 * cgraphunit.c (record_call_1): Rename to ...
365 (record_reference): ... this one; do not build edges.
366 (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
367 (current_basic_block): Kill.
368 (cgraph_create_edges): Rewrite to work on gimple statements nicely.
369 (verify_cgraph_node): Likewise.
370 * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
371 (copy_bb): Mess up with cgraph edges here; simplify EH handling.
372 (copy_edges_for_bb): Simplify EH handling.
373 (expand_call_inline): Pass statement to cgraph_edge and
374 cgraph_create_edge.
375
30d2e943
RG
3762005-05-27 Richard Guenther <rguenth@gcc.gnu.org>
377
378 * tree-inline.c (copy_body_r): Manually fold *& to deal
379 with ADDR_EXPRs with mismatched types for now.
380
381 * gimplify.c (fold_indirect_ref_rhs): New function.
382 (gimplify_modify_expr_rhs): Use it instead of pessimistic
383 fold_indirect_ref.
384
385 * fold-const.c (fold_indirect_ref_1): Add type argument;
386 make sure the resulting expression is of this type.
387 (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
388
46aad78f
KH
3892005-05-27 Kazu Hirata <kazu@cs.umass.edu>
390
391 PR tree-optimization/21658
392 * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
393 fold_binary_to_constant. Likewise, call fold_unary instead of
394 fold_unary_to_constant.
395
a0ef884f
NS
3962005-05-27 Nathan Sidwell <nathan@codesourcery.com>
397
398 * vec.h: Implement integral type vector specialization.
399 (VEC_T): Define a non-GTY structure.
400 (VEC_T_GTY): Define a GTY structure.
401 (VEC_TA): Rename to ...
402 (VEC_TA_GTY): ... here.
403 (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
404 (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
405 (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
406 DEF_VEC_P and DEF_VEC_ALLOC_P.
407 (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
408 (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
409 DEF_VEC_O and DEF_VEC_ALLOC_O.
410 * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
411 * lambda-code.c: Likewise.
412 * tree-into-ssa.c: Likewise.
413 * tree-ssa-live.c: Likewise.
414
6e3b9e27
KH
4152005-05-27 Kazu Hirata <kazu@cs.umass.edu>
416
417 * tree-into-ssa.c (update_ssa): Ensure that the operand cache
418 is up-to-date.
419 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
420 update_stmt_if_modified before calling update_ssa.
421
fb617f00
RC
4222005-05-27 Ralf Corsepius <ralf.corsepius@rtems.org>
423
424 * config/rs6000/t-rtems: Remove roe multilib variant.
425
1acdf11b
RS
4262005-05-26 Roger Sayle <roger@eyesopen.com>
427
428 PR tree-optimization/9814
429 * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
430 instruction, add the necessary clobbers by re-expanding the RTL
431 for arithmetic operations via optab.c's expand_unop/expand_binop.
432 (noce_try_bitop): New function to optimize bit manipulation idioms
433 of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
434 (noce_process_if_block): Call noce_try_bitop.
435
00b9ce5c
RS
4362005-05-26 Roger Sayle <roger@eyesopen.com>
437
438 * reg-stack.c (convert_regs_entry, convert_regs_exit,
439 convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
440 (reg_to_stack): Move to end of the file. Initialize the per
441 basic block information here, instead of...
442 (convert_regs_entry): Here.
443 (convert_regs): Change unused return type to void.
444
3a674ab9
KH
4452005-05-27 Kazu Hirata <kazu@cs.umass.edu>
446
447 * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
448 unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
449 config/rs6000/eabispe.h, config/rs6000/lynx.h,
450 config/sh/elf.h, config/sh/symbian-pre.h,
451 config/sparc/sparc-protos.h: Update copyright.
452
2f7bb89d
MS
4532005-05-26 Mike Stump <mrs@apple.com>
454
455 * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
456 for Objective-C++.
457
450c3007
RG
4582005-05-26 Richard Guenther <rguenth@gcc.gnu.org>
459
460 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
461 See through ADDR_EXPR in finding place to propagate into.
462
0fa2e4df
KH
4632005-05-26 Kazu Hirata <kazu@cs.umass.edu>
464
465 * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
466 cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
467 ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
468 tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
469 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
470 tree-ssa-operands.c, tree-vect-analyze.c,
471 tree-vect-transform.c, tree-vectorizer.c, tree.c,
472 config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
473 config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
474 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
475 config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
476 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
477 config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
478 config/sh/ushmedia.h, config/sparc/sparc.c,
479 config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
480 typos. Follow spelling conventions.
481 * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
482 Follow spelling conventions.
483
e689b870
DU
4842005-05-26 David Ung <davidu@mips.com>
485
486 * config/mips/mips.c (mips_use_ins_ext_p): New helper function
487 that determines whether the MIPS32/64 R2 ext/ins should be used.
488 * config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
489 * config/mips/mips.md (extzv): Changed predicate for operand to
490 nonimmediate_operand. Add code to generate insn patterns for
491 extzvsi and extzvdi.
492 (extzv<mode>): New pattern to match mips32/64 r2 ext insn.
493 (insv): Similarly for insertion.
494 (insv<mode>): Similarly.
495
bdb82177
PB
4962005-05-26 Paolo Bonzini <bonzini@gnu.org>
497
498 * simplify-rtx.c (avoid_constant_pool_reference): Support
499 offsetted addresses in the constant pool.
500
57a95bc4
PB
5012005-05-26 Paolo Bonzini <bonzini@gnu.org>
502
503 * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
504 * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
505
383898f7
JJ
5062005-05-26 Jakub Jelinek <jakub@redhat.com>
507
508 PR target/21716
509 * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
510 found in the basic block and last insn in the basic block is not
511 INSN_P. Remove explicit unspec numbers that are no longer valid
512 from comments.
513
598b2024
PB
5142005-05-26 Paolo Bonzini <bonzini@gnu.org>
515
516 * tree-vect-transform.c (vectorizable_operation): Try word_mode
517 vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
518 if a vector mode is available.
519
c10166c4
RS
5202005-05-25 Roger Sayle <roger@eyesopen.com>
521
522 PR middle-end/21709
523 * fold-const.c (const_binop): Check for division by zero during
524 complex division.
525
67730e23
ILT
5262005-05-26 Ian Lance Taylor <ian@airs.com>
527
528 * reload1.c (verify_initial_elim_offsets): Add braces to avoid
529 having a declaration after a statement.
530
55bea00a
RS
5312005-05-26 Richard Sandiford <rsandifo@redhat.com>
532
533 * opt-functions.awk (var_type): New function.
534 (var_set): Use CLVC_STRING if var_type returns "const char *".
535 * opth-gen.awk: Use var_type to find out the types of variables.
536 Don't print comments above each "extern" definition.
537 * optc-gen.awk: Use var_type in the same way.
538 * opts.h (cl_var_cond): Rename to...
539 (cl_var_type): ...this. Add CLVC_STRING.
540 (cl_option): Make "flag_var" a "void *" pointer. Replace "var_cond"
541 with "var_type".
542 * opts.c (handle_option, option_enabled): Update after above name
543 change. Cast flag_var before using it. Handle CLVC_STRING.
544
545 * config/alpha/alpha.h (alpha_tls_size): Delete.
546 * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
547 (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
548 (alpha_fptm_string, alpha_mlat_string): Delete.
549 (alpha_handle_option): Don't set the above variables here. Use the
550 integer argument to check the validity of -mtls-size=.
551 * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
552 (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
553 (mtls-size=): Likewise. Convert to a UInteger and initialize the
554 variable to 32.
555
556 * config/arc/arc.c (arc_cpu_string, arc_text_string)
557 (arc_data_string, arc_rodata_string): Delete.
558 (arc_handle_option): Don't set the above variables here.
559 * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
560 and initialize them.
561
562 * config/arm/arm.c (target_fpu_name, target_fpe_name)
563 (target_float_abi_name, target_abi_name, structure_size_string)
564 (arm_pic_register_string): Delete.
565 (arm_handle_option): Don't set the above variables here, except
566 in the handling of -mhard-float and -msoft-float.
567 * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
568 (mpic-register=, mstructure-size-boundary=): Add Var()s.
569
570 * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
571 (avr_handle_option): Delete.
572 * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
573 them.
574
575 * config/bfin/bfin.c (bfin_library_id): Delete.
576 (bfin_handle_option): Don't set it.
577 * config/bfin/bfin.opt (mshared-library-id=): Add Var().
578
579 * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
580 * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
581 (c4x_handle_option): Don't set c4x_rpts_cycles here.
582 * config/c4x/c4x.opt (mrpts=): Add Var().
583
584 * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
585 cris_elinux_stacksize_str here.
586 * config/cris/aout.opt (melinux-stacksize=): Add Var().
587 * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
588 (cris_tune_str, cris_elinux_stacksize_str): Delete.
589 * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
590 (cris_tune_str, cris_elinux_stacksize_str): Delete.
591 (cris_handle_option): Don't set the above variables here.
592 * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
593 (max-stackframe=): Add Var()s.
594
595 * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
596 * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
597 (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
598 (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
599 (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
600 (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
601 (ix86_handle_option): Don't set the above variables here.
602 * config/i386/i386.opt (malign-functions=, malign-jumps=)
603 (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
604 (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
605 Var()s.
606
607 * config/ia64/ia64.h (ia64_tls_size): Delete.
608 * config/ia64/ia64.c (ia64_tls_size): Delete.
609 (ia64_handle_option): Treat -mtls-size= as a UInteger option,
610 reading the integer argument from the "value" parameter. Don't
611 set ia64_tls_size here.
612 * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
613 Add Var() and Init().
614
615 * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
616 (m32r_cache_flush_trap): Delete.
617 * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
618 (m32r_cache_flush_trap): Delete.
619 (m32r_handle_option): Don't set the above variables when handling
620 -mflush-func= and -mflush-trap=.
621 * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
622 and Init()s.
623
624 * config/mips/mips.h (mips_cache_flush_func): Delete.
625 * config/mips/mips.c (mips_arch_string, mips_tune_string)
626 (mips_cache_flush_func): Delete.
627 (mips_handle_option): Don't set the above variables when handling
628 -march=, -mtune= and -mflush-func=.
629 * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
630
631 * config/s390/s390.c (s390_arch_string): Delete.
632 (s390_handle_option): Don't set it here.
633 * config/s390/s390.opt (march=): Add Var().
634
635 * config/sparc/sparc.h (sparc_cmodel_string): Delete.
636 * config/sparc/sparc.c (sparc_cmodel_string): Delete.
637 (sparc_handle_option): Don't set it here.
638 * config/sparc/sparc.opt (mcmodel=): Add Var().
639
97471d8f
RS
6402005-05-25 Roger Sayle <roger@eyesopen.com>
641
642 * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
643 call to convert_to_integer by building the NOP_EXPR directly.
644
2f828272
RS
6452005-05-25 Richard Sandiford <rsandifo@redhat.com>
646
647 * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
648
81fc3052
DB
6492005-05-25 Daniel Berlin <dberlin@dberlin.org>
650 Jeff Law <law@redhat.com>
651
652 * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
653 constant and side_effects of the ADDR_EXPR are consistent.
654
655 * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
656 appropriately around calls to recompute_tree_invarant_for_addr_expr.
657
29a79fcf
UW
6582005-05-25 Ulrich Weigand <uweigand@de.ibm.com>
659
660 * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
661 (s390_function_arg, s390_gimplify_va_arg): Use them.
662 (s390_register_info): Save only required subset of argument
663 registers into save area for va_list.
664 (s390_va_start): Initialize only required elements of va_list struct.
665 (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
666
9f938de1
UW
6672005-05-25 Ulrich Weigand <uweigand@de.ibm.com>
668
669 * reload1.c (verify_initial_elim_offsets): Return boolean status
670 instead of aborting.
671 (reload): Adapt verify_initial_elim_offsets call site. Restart
672 main loop if some initial elimination offsets changed.
673
0fd7e0f8
AN
6742005-05-25 Adam Nemet <anemet@lnxw.com>
675
676 * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
677 of -mno-svr4-struct-return.
678
81def1b7
DB
6792005-05-25 Daniel Berlin <dberlin@dberlin.org>
680
681 Fix PR tree-optimization/21705
682
683 * tree-ssa-pre.c (in_fre): New static variable.
684 (create_value_expr_from): Recursively value number reference ops
685 in argument lists.
686 (can_value_number_call): Temporary restrict only exists for
687 PRE, not FRE.
688
56c0cf75
KH
6892005-05-25 Kazu Hirata <kazu@cs.umass.edu>
690
691 * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
692 sizeof (bitmap *) with sizeof (bitmap).
693
14ac4d91
DB
6942005-05-25 Daniel Berlin <dberlin@dberlin.org>
695
696 * lambda-code.c (perfect_nestify): Call update_stmt on the exit
697 condition.
698
c08b81aa
AS
6992005-05-25 Adrian Straetling <straetling@de.ibm.com>
700
701 * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
702 hook_bool_rtx_true.
703
670cd5c5
JH
7042005-05-25 Jan Hubicka <jh@suse.cz>
705
706 * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
707 * cgraph.c (cgraph_create_node): Reset estimated_growth.
708 * cgraph.h (cgraph_global_info): Add estimated_growth.
709 * ipa-inline.c: Include coverage.h
710 (max_insns, max_count): New static variables.
711 (cgraph_estimate_size_after_inlining): Cache the result.
712 (cgraph_estimate_growth):
713 * passes.c (rest_of_clean_state): Kill coverage_end_function.
714 * timevar.def (TV_INLINE_HEURISTICS): New timevar.
715 * tree-optimize.c (init_tree_optimization_passes): Move profiling before
716 inlining.
717 (ipa_passes): Initialize bitmaps.
718
a71a498d
AS
7192005-05-25 Adrian Straetling <straetling@de.ibm.com>
720
721 * loop-doloop.c: Include "target.h".
722 (doloop_valid_p): Move tests to function in targhooks.c.
723 * target.h (struct gcc_target): New target hook
724 "insn_valid_within_doloop".
725 * target-def.h: Define default value for "insn_valid_within_doloop".
726 (TARGET_INITIALIZER): Insert new target hook into initializer.
727 * targhooks.c (default_insn_valid_within_doloop): New function.
728 * targhooks.h (default_insn_valid_within_doloop): Declare.
729 * hooks.c (hook_bool_rtx_true): New function.
730 * hooks.h (hook_bool_rtx_true): Declare.
731 * doc/tm.texi: Add documentation for new target hook.
732
38fc66ba
EB
7332005-05-25 Eric Botcazou <ebotcazou@libertysurf.fr>
734
735 PR target/21412
736 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
737 * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
738 (sparc_tls_referenced_p): New prototype.
739 * config/sparc/sparc.c (tls_symbolic_operand): Delete.
740 (sparc_expand_move): Look for TLS addresses with constant offsets.
741 (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
742 tls_symbolic_operand.
743 (legitimate_pic_operand_p): Likewise.
744 (legitimate_address_p): Likewise.
745 (legitimize_address): Likewise.
746 (sparc_tls_symbol_ref_1): New function.
747 (sparc_tls_referenced_p): New function.
748 * config/sparc/predicates.md (tgd_symbolic_operand): Use
749 SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
750 (tld_symbolic_operand): Likewise.
751 (tie_symbolic_operand): Likewise.
752 (tle_symbolic_operand): Likewise.
753
44c21c7f 7542005-05-24 DJ Delorie <dj@redhat.com>
5c498b10
DD
755
756 * common.opt (-Wattributes): New. Default true.
757 * doc/invoke.texi (-Wno-attributes): Document.
758
759 * attribs.c (decl_attributes): Move warning control from if() to
760 warning(OPT_*).
761 * c-common.c (handle_packed_attribute): Likewise.
762 (handle_nocommon_attribute): Likewise.
763 (handle_common_attribute): Likewise.
764 (handle_noreturn_attribute): Likewise.
765 (handle_noinline_attribute): Likewise.
766 (handle_always_inline_attribute): Likewise.
767 (handle_used_attribute): Likewise.
768 (handle_unused_attribute): Likewise.
769 (handle_const_attribute): Likewise.
770 (handle_transparent_union_attribute): Likewise.
771 (handle_constructor_attribute): Likewise.
772 (handle_destructor_attribute): Likewise.
773 (handle_mode_attribute): Likewise.
774 (handle_alias_attribute): Likewise.
775 (handle_visibility_attribute): Likewise.
776 (handle_tls_model_attribute): Likewise.
777 (handle_malloc_attribute): Likewise.
778 (handle_returns_twice_attribute): Likewise.
779 (handle_pure_attribute): Likewise.
780 (handle_deprecated_attribute): Likewise.
781 (handle_vector_size_attribute): Likewise.
782 (handle_nothrow_attribute): Likewise.
783 (handle_cleanup_attribute): Likewise.
784 (handle_warn_unused_result_attribute): Likewise.
785 (handle_sentinel_attribute): Likewise.
786 * c-decl.c (diagnose_mismatched_decls): Likewise.
787 (start_decl): Likewise.
788 (grokdeclarator): Likewise.
789 (start_function): Likewise.
790 * c-format.c (check_function_format): Likewise.
791 * stor-layout.c (place_field): Likewise.
792 (finalize_record_size): Likewise.
793 * tree.c (handle_dll_attribute)): Likewise.
794 * varasm.c (default_assemble_visibility): Likewise.
795 * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
796 (darwin_assemble_visibility): Likewise.
797 * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
798 * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
799 (arm_handle_isr_attribute): Likewise.
800 * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
801 (avr_handle_fndecl_attribute): Likewise.
802 * config/bfin/bfin.c (handle_int_attribute): Likewise.
803 * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
804 * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
805 (h8300_handle_eightbit_data_attribute): Likewise.
806 (h8300_handle_tiny_data_attribute): Likewise.
807 * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
808 (ix86_handle_regparm_attribute): Likewise.
809 (ix86_handle_struct_attribute): Likewise.
810 * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
811 (i386_pe_encode_section_info): Likewise.
812 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
813 * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
814 (ip2k_handle_fndecl_attribute): Likewise.
815 * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
816 * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
817 (m68hc11_handle_fntype_attribute): Likewise.
818 (m68hc11_encode_section_info): Likewise.
819 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
820 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
821 * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
822 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
823 * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
824 (sh_handle_sp_switch_attribute): Likewise.
825 (sh_handle_trap_exit_attribute): Likewise.
826 * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
827 (sh_symbian_handle_dll_attribute): Likewise.
828 * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
829 (xstormy16_handle_below100_attribute): Likewise.
830 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
44c21c7f
DD
831
832 * c-common.c (unsigned_conversion_warning): Move warning control
833 from if() to warning(OPT_*).
834 (c_common_truthvalue_conversion): Likewise.
835 (c_do_switch_warnings): Likewise.
836 * c-decl.c (diagnose_mismatched_decls): Likewise.
837 (diagnose_mismatched_decls): Likewise.
838 (define_label): Likewise.
839 (grokdeclarator): Likewise.
840 * c-format.c (check_format_info): Likewise.
841 * c-lex.c (interpret_integer): Likwise.
842 (lex_string): Likewise.
843 * c-opts.c (c_common_post_options): Likewise.
844 * c-parser.c (c_parser_unary_expression): Likewise.
845 * c-pragma.c (handle_pragma_redefine_extname): Likewise.
846 (handle_pragma_extern_prefix): Likewise.
847 * c-typeck.c (build_binary_op): Likewise.
848 * gcse.c (is_too_expensive): Likewise.
849 * opts.c (decode_options): Likewise.
850 * stor-layout.c (place_field): Likewise.
851 * tree-cfg.c (remove_bb): Likewise.
852
853 * c.opt (-Wreturn-type): Add Var(warn_return_type).
854 * flags.h (warn_return_type): Remove.
855 * toplev.c (warn_return_type): Likewise.
856
5ec1c5e6
KC
8572005-05-24 Kelley Cook <kcook@gcc.gnu.org>
858
859 * configure.ac: Don't use gcc_AC_C_LONG_LONG. Check for
860 existence of long long and __int64 before determining their size.
861 * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
862 * configure, config.h.in: Regenerate.
863
d7974fe6
KC
8642005-05-24 Kelley Cook <kcook@gcc.gnu.org>
865
866 * configure: Regenerate.
867
58393038
ZL
8682005-05-24 Ziemowit Laski <zlaski@apple.com>
869
870 * c-common.h (objc_comptypes): Remove prototype.
871 (objc_compare_types): New prototype.
872 (objc_volatilized_decl): Likewise.
873 (objc_type_quals_match): Likewise.
874 * c-decl.c (objc_mark_locals_volatile): Streamline by calling
875 objc_volatilize_decl().
876 * c-typeck.c (comp_target_types): Remove third parameter; do
877 not call objc_comptypes().
878 (comptypes): Remove calls to objc_comptypes().
879 (build_function_call): Extend compatible prototype check to ObjC.
880 (build_conditional_expr): Adjust call to comp_target_types().
881 (convert_for_assignment): Call objc_compare_types() instead of
882 objc_comptypes(); adjust calls to comp_target_types(); call
883 objc_type_quals_match() before issuing qualifier mismatch
884 warnings.
885 (build_binary_op): Call objc_compare_types() before issuing
886 pointer mismatch warnings; adjust calls to
887 comp_target_types().
888 * stub-objc.c (objc_comptypes): Remove stub.
889 (objc_compare_types): New stub.
890 (objc_volatilized_decl): Likewise.
891 (objc_type_quals_match): Likewise.
892
b95f6a09
PC
8932005-05-24 Paolo Carlini <pcarlini@suse.de>
894
895 * config/ia64/ia64intrin.h: Define nothing for C++:
896 overloaded builtins have been ported to C++.
897
bde6c65d
JL
8982005-05-24 Jeff Law <law@redhat.com>
899
900 * tree-nested.c (build_addr): New "context" argument. Temporarily
901 set current_function_decl around the call to build the ADDR_EXPR.
902 (get_static_chain): Pass proper context to build_addr.
903 (convert_nl_goto_reference): Likewise.
904 (convert_tramp_reference): Likewise.
905 (final_nesting_tree_1): Likewise.
906 * tree-profile.c (tree_gen_interval_profiler): Likewise.
907 (tree_gen_pow2_profiler): Likewise.
908 (tree_gen_one_value_profiler): Likewise.
909 * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
910 * tree.h (build_addr): Update prototype.
911
04d0d750
KH
9122005-05-24 Kazu Hirata <kazu@cs.umass.edu>
913
914 * tree-flow.h (bb_ann_d): Remove has_escape_site.
915 * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
916 write to has_escape_site.
917
9af0df6b
JL
9182005-05-24 Jeff Law <law@redhat.com>
919
920 * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
921 * tree-cfg.c: Include tree-ssa-propagate.h.
922 (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
923 needed.
924
89f9fe50
NC
9252005-05-24 Nick Clifton <nickc@redhat.com>
926
927 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
928 __NO_FPRS__ when 'f' class registers will not be available.
929
0be4693a
KI
9302005-05-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
931
932 * config/m32r/m32r.c (m32r_expand_block_move): Return 0 if
933 nothing was done.
934 * config/m32r/m32r.md (movmemsi): If m32r_expand_block_move did
935 nothing then FAIL.
936 * config/m32r/m32r/m32r-protos.h (m32r_expand_block_move): Update
937 prototype.
938
6cedb4ac
JL
9392005-05-23 Jeff Law <law@redhat.com>
940
941 * tree-ssa-dom.c (cprop_into_stmt): Do not call
942 recompute_tree_invariant_for_addr_expr here.
943 (optimize_stmt): Call it here instead and do so if anything
944 at all has changed in the statement and the RHS is an ADDR_EXPR.
945 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
946 needed, call recompute_tree_invariant_for_addr_expr.
947 * tree-ssa-propagate.c (substitute_and_fold): Call
948 recompute_tree_invariant_for_addr_expr as needed.
949
22a707a4
AK
9502005-05-23 Andreas Krebbel <krebbel1@de.ibm.com>
951
952 * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
953 saving less registers than the replacement.
954
52f6de6c
JH
9552005-05-23 Jan Hubicka <jh@suse.cz>
956
957 * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
958
bea5071f
EB
9592005-05-23 Eric Botcazou <ebotcazou@libertysurf.fr>
960
961 * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
962 * config/sparc/sparc.c (sparc_expand_move): New function.
963 (sparc_emit_set_const64): Rewrite assert condition on entry.
964 (legitimate_constant_p) <CONST_VECTOR>: New case.
965 (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
966 * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
967 movV64, movtf): Use nonimmediate_operand for the first operand.
968 Rewrite. Only invoke sparc_expand_move.
969 * config/sparc/predicates.md (input_operand): Reorder tests.
970
7c68fabb
JB
9712005-05-23 Jan Beulich <jbeulich@novell.com>
972
973 * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
974 missing return statement.
975
c5d74498
EB
9762005-05-22 Eric Botcazou <ebotcazou@libertysurf.fr>
977
978 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
979 emit_move_insn for moves to TFmode stack slots.
980
bb673b41
RG
9812005-05-21 Richard Guenther <rguenth@gcc.gnu.org>
982
983 * tree-stdarg.c (execute_optimize_stdarg): Handle references
984 to va_list of the form &va[0].
985
c15fed76
JH
9862005-05-20 Jan Hubicka <jh@suse.cz>
987
988 * Makefile.in (insn-emit.o): Add basic-block.h dependency.
989 * genemit.c (main): Make insn-emit to include basic-block.h too.
990
776b966e
JH
9912005-05-20 Jan Hubicka <jh@suse.cz>
992
993 * cgraphunit.c (cgraph_expand_function): Force function being lowered.
994
b686c48c
RH
9952005-05-19 Richard Henderson <rth@redhat.com>
996
997 * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
998 emit_store_conditional): Split out from ...
999 (alpha_split_atomic_op): ... here.
1000 (alpha_split_compare_and_swap): New; extract from .md file.
1001 (alpha_split_lock_test_and_set): Likewise.
1002 * config/alpha/alpha-protos.h: Update.
1003 * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
1004 split code into alpha.c.
1005 (sync_lock_test_and_set<I48MODE>): Likewise.
1006
e4d0c41c
RH
10072005-05-19 Richard Henderson <rth@redhat.com>
1008
1009 * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
1010
9f3ea395
RH
10112005-05-19 Richard Henderson <rth@redhat.com>
1012
1013 * config/i386/sse.md (mulv4si3): Use all register inputs.
1014 (mulv2di3): Likewise.
1015
62b37d91
RG
10162005-05-19 Richard Guenther <rguenth@gcc.gnu.org>
1017
1018 * tree-ssa-loop-ivopts.c (determine_base_object): Use
1019 build_fold_addr_expr to generate trees of correct type.
1020 Use fold_buildN if possible.
1021
e42922b1
JH
10222005-05-19 Jan Hubicka <jh@suse.cz>
1023
1024 * basic-block.h (REG_BR_PROB_BASE): Define.
1025 * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
1026 (dump_cgraph_node): Dump count.
1027 (cgraph_clone_edge): Rescale counts.
1028 (cgraph_clone_node): Likewise.
1029 * cgraph.h: Include basic-block.h
1030 (cgraph_node): Add count.
1031 (cgraph_edge): Add count and loop_nest.
1032 (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
1033 Update prototypes.
1034 * cgraphunit.c: Kill now redundant inlining comment.
1035 (cgraph_create_edges): Make static, maintain current basic block;
1036 fix pasto.
1037 (record_call_1): Fill in new fields.
1038 * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
1039 cgraph_clone_node.
1040 (cgraph_decide_recursive_inlining): Likewise.
1041 * rtl.h (REG_BR_PROB_BASE): Kill.
1042 * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
1043 (expand_call_inline): Update call of cgraph_create_edge.
1044 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1045
eef16504
NC
10462005-05-19 Nick Clifton <nickc@redhat.com>
1047
1048 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
1049 new rs6000_explicit_options structure.
1050
0da4e73a
RH
10512005-05-19 Richard Henderson <rth@redhat.com>
1052
1053 PR target/21390
1054 * config/alpha/alpha.c (alpha_emit_conditional_branch): Move
1055 TFmode code swapping ...
1056 (alpha_emit_xfloating_compare): ... here.
1057 (alpha_emit_setcc): Update to match.
1058 (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
1059
9a7e4ed6
RH
10602005-05-19 Richard Henderson <rth@redhat.com>
1061
1062 PR target/21657
1063 * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
1064 memory indirection in local-dynamic case.
1065
a2391c6a 10662005-05-18 Jie Zhang <jie.zhang@analog.com>
9a7e4ed6 1067 Bernd Schmidt <bernd.schmidt@analog.com>
a2391c6a
JZ
1068
1069 * config/bfin/bfin.c (branch_dest): Add comment why it's
1070 necessary.
1071 * config/bfin/bfin.md (attr "length" default): Change the offset of
1072 forward conditional branch of length 4 from 4096 to 4092.
1073
7a774cac
JB
10742005-05-19 Jan Beulich <jbeulich@novell.com>
1075
1076 * unwind-compat.c: Include tconfig.h and tsystem.h.
1077 * unwind-dw2-fde-compat.c: Likewise.
1078
d2751e9e
RH
10792005-05-18 Richard Henderson <rth@redhat.com>
1080
1081 PR 21541
1082 * ifcvt.c (noce_process_if_block): Avoid conversion when the
1083 memory destination is readonly.
1084
0d2bf6f0
RH
10852005-05-18 Richard Henderson <rth@redhat.com>
1086
e8276665 1087 PR 21541
0d2bf6f0
RH
1088 * tree-ssa-operands.c (opf_non_specific): New.
1089 (get_asm_expr_operands): Set it.
1090 (add_call_clobber_ops, add_call_read_ops): Likewise.
1091 (add_stmt_operand): Test it instead of opf_kill_def when
1092 considering unmodifiable variables.
1093
1094 * tree-ssa-operands.c (get_expr_operands): Fix exact test.
1095
128a79fb
KH
10962005-05-19 Kazu Hirata <kazu@cs.umass.edu>
1097
1098 * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
1099 tree-ssa-forwprop.c: Fix comment typos.
1100 * doc/invoke.texi: Fix a typo.
1101
f75aac9e
RH
11022005-05-18 Richard Henderson <rth@redhat.com>
1103
1104 * config.gcc (powerpc-*-linux*): Include linux64.opt when
1105 including linux64.h.
1106
9e5a3e6c
RH
11072005-05-18 Richard Henderson <rth@redhat.com>
1108
1109 * tree-cfg.c (pass_remove_useless): Revert last change.
1110 * tree-optimize.c (init_tree_optimization_passes): Initialize
1111 all_lowering_passes with PROP_gimple_any.
1112
46e5b15e
DP
11132005-05-18 Devang Patel <dpatel@apple.com>
1114
1115 * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
1116 the mask end.
1117
5bcd8644
RH
11182005-05-18 Richard Henderson <rth@redhat.com>
1119
9a7e4ed6
RH
1120 * tree-ssa-forwprop.c (cfg_changed): New.
1121 (tidy_after_forward_propagate_addr): New.
1122 (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
1123 (forward_propagate_addr_into_variable_array_index): Likewise.
1124 (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
1125 edges were removed.
5bcd8644 1126
565d8a37
GK
11272005-05-18 Geoffrey Keating <geoffk@apple.com>
1128
3fd30b88
GK
1129 * dummy-checksum.c: New.
1130 * genchecksum.c: New.
1131 * c.opt (print_pch_checksum): New flag.
1132 * c-pch.c (struct c_pch_validity): Make much shorter.
1133 (no_checksum): New.
1134 (host_machine): Remove.
1135 (target_machine): Remove.
1136 (get_ident): Change PCH version number.
1137 (pch_init): When -fverbose-asm, print out the compiler fingerprint.
1138 Don't put triplets or version string in PCH validity data.
1139 Do put the compiler checksum in the validity data.
1140 (c_common_valid_pch): Don't check triplets or version string. Do
1141 check checksum.
1142 (c_common_print_pch_checksum): New.
1143 * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
1144 Print fingerprint with -v.
1145 * c-common.h (c_common_print_pch_checksum): New.
1146 (executable_checksum): New.
1147 * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
1148 (cc1-dummy): New rule.
1149 (cc1-checksum.c): New rule.
1150 (cc1-checksum.o): New rule.
1151 (cc1): Add checksum support.
1152 (build/genchecksum): New.
1153 (build/genchecksum.o): New.
1154 (dummy-checksum.o): New.
1155 (genobjnames): Add genchecksum.o.
1156 (mostlyclean): Remove *-checksum.c.
1157 (gnucompare): Add libgcc to list of directories checked.
1158 Make comparison problems in libgcc/ and with checksum files only
1159 be warnings.
1160 * doc/invoke.texi (Precompiled Headers): Remove caution.
1161 Document that it must be the exact same binary. Add a few
1162 known-safe flags to the list.
1163
045a8eb3
GK
1164 * rs6000/predicates.md (fix_trunc_dest_operand): New.
1165 * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
1166 Check that a memory operand is valid before trying to use it.
1167
565d8a37
GK
1168 * tree-cfg.c (pass_remove_useless): This pass works on trees.
1169
90b45528
RG
11702005-05-18 Richard Guenther <rguenth@gcc.gnu.org>
1171
1172 * tree.c (build1_stat): Don't try to handle two-operand
1173 tree codes.
1174
c0fb94d7
RS
11752005-05-18 Richard Sandiford <rsandifo@redhat.com>
1176
1177 * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
1178 * config/sh/sh.h: Update mask names throughout.
1179 (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
1180 (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
1181 (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
1182 (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
1183 (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
1184 (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
1185 (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
1186 (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
1187 (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
1188 (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
1189 (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
1190 (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
1191 (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
1192 (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
1193 (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
1194 (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
1195 (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
1196 (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
1197 (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
1198 (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
1199 (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
1200 (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
1201 (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
1202 (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
1203 (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
1204 (SUBTARGET_SWITCHES): Delete.
1205 (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
1206 (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
1207 (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
1208 (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
1209 (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
1210 (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
1211 (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
1212 (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
1213 (SUPPORT_SH3): Likewise SUPPORT_SH2.
1214 (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
1215 (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
1216 SUPPORT_SH4_NOFPU.
1217 (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
1218 (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
1219 (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
1220 (SUPPORT_SH4A): Likewise SUPPORT_SH4.
1221 (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
1222 (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
1223 (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
1224 (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
1225 (SUPPORT_ANY_SH5): New macros.
1226 (TARGET_NONE): Replace with...
1227 (MASK_ARCH): ...this new macro.
1228 * config/sh/elf.h: Update mask names
1229 * config/sh/linux.h: Likewise.
1230 * config/sh/little.h: Likewise.
1231 * config/sh/netbsd-elf.h: Likewise.
1232 * config/sh/symbian-pre.h: Likewise.
1233 * config/sh/sh.c (sh_handle_option): New function.
1234 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1235 (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
1236 (sh_target_switches, target_switches): Delete.
1237 (sh_pch_valid_p): Check for specific differences in the target_flags
1238 settings.
1239 (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
1240 * config/sh/sh.opt: New file.
1241
3d4ee182
RH
12422005-05-18 Richard Henderson <rth@redhat.com>
1243
1244 PR target/21632
1245 * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
1246 small_addr_symbolic_operand.
1247
472945f6
JL
12482005-05-18 Jeff Law <law@redhat.com>
1249
1250 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
1251 propagate an ADDR_EXPR if the definition and use sites are
1252 in different EH regions.
1253
33af9c08
ILT
12542005-05-18 Ian Lance Taylor <ian@airs.com>
1255
1256 * read-rtl.c (mode_attr_index): Use obstack_grow0, not
1257 obstack_grow.
1258
2afa8dce
DB
12592005-05-18 Daniel Berlin <dberlin@dberlin.org>
1260
1261 * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
1262
23e66a36
DB
12632005-05-18 Daniel Berlin <dberlin@dberlin.org>
1264
1265 Fix PR tree-optimization/21407
1266
1267 * tree-ssa-operands.c (note_addressable): Change
1268 COMPONENT_REF handling in response to aliasing
1269 discussion.
1270
5b7451a6
EB
12712005-05-18 Eric Botcazou <ebotcazou@libertysurf.fr>
1272
1273 * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
1274 * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
1275 * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
d14f5ecb
EB
1276 * doc/invoke.texi (SPARC options): Document that -mapp-regs is
1277 the default on Solaris too.
5b7451a6 1278
a3cf80ec
DB
12792005-05-17 Daniel Berlin <dberlin@dberlin.org>
1280
1281 * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
1282 is okay too.
1283
684aaf29
ZD
12842005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
1285
1286 * timevar.def (TV_SCEV_CONST): New timevar.
1287 * tree-optimize.c (init_tree_optimization_passes): Add
1288 pass_scev_cprop.
1289 * tree-pass.h (pass_scev_cprop): Declare.
1290 * tree-scalar-evolution.c (scev_const_prop): New function.
1291 * tree-scalar-evolution.h (scev_const_prop): Declare.
1292 * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
1293 New.
1294 * tree-cfg.c (replace_uses_by): Export.
1295 * tree-flow.h (replace_uses_by): Declare.
1296
210f12a7
ZL
12972005-05-17 Ziemowit Laski <zlaski@apple.com>
1298 Mike Stump <mrs@apple.com>
6e955430
ZL
1299
1300 Yet more Objective-C++...
1301
1302 * c-common.h (objc_finish_try_stmt): Add.
1303 (objc_build_synchronized): Add.
1304 (objc_generate_write_barrier): Add.
1305 * stub-objc.c (objc_build_synchronized): Add return value.
1306 (objc_finish_try_stmt): Likewise.
1307 (objc_generate_write_barrier): Add.
1308
1309 * c-common.h (objc_rewrite_function_call): Add.
1310 * c-typeck.c (build_function_call): Allow objc to rewrite
1311 FUNCTION_DECLs.
1312 (build_modify_expr): Allow objc to generate write barriers.
1313 * c.opt (Wassign-intercept): Add.
1314 (Wstrict-selector-match): Add.
1315 (fobjc-call-cxx-cdtors): Add.
1316 (fobjc-direct-dispatch): Add.
1317 (fobjc-gc): Add.
1318 * dbxout.c (get_lang_number): Add Objective-C++ support.
1319 * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
1320 (-Wstrict-selector-match): Likewise.
1321 (-fobjc-direct-dispatch): Likewise.
1322 (-Wassign-intercept): Likewise.
1323 (Overall Options): Likewise.
1324 * gengtype.c (get_output_file_with_visibility): Likewise.
1325 * stub-objc.c (objc_rewrite_function_call): Add.
1326 * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
1327
1328 * c-common.c (flag_objc_exceptions): Remove.
1329 (flag_objc_sjlj_exceptions): Remove.
1330 * c-decl.c (objc_mark_locals_volatile): Don't change decls
1331 that are already ok.
1332 * c-opts.c (c_common_handle_option, case
1333 OPT_fobjc_exceptions): Remove.
1334 (case OPT_fobjc_sjlj_exceptions): Remove
1335 * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
1336 (fobjc-exceptions): Likewise.
1337 (fobjc-sjlj-exceptions): Likewise.
1338 * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
1339 (OFFS_ASSIGNIVAR_FAST): Add.
1340
3193108e
EB
13412005-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
1342
1343 * config/sparc/sparc.md (movhi): Do not test constness
1344 of operand #1 twice.
1345 (movsi): Likewise.
1346 (movdi): Unconditionally accept zero as second operand
1347 when the first is memory.
1348 (movdi_insn_sp32): Handle above case.
1349 (DImode splitter): Use predicates.
1350 (DImode splitter): Use const_zero_operand predicate.
1351 (movsf_insn): Swap 2 alternatives.
1352
d7bf3bcf
ZD
13532005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
1354
1355 * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
1356 expand_simple_operations to bases of the ivs.
1357 (tree_int_cst_sign_bit): Export.
1358 * tree-flow.h (expand_simple_operations): Declare.
1359 * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
1360 tree_int_cst_sign_bit.
1361 (expand_simple_operations): Export.
1362 * tree.h (tree_int_cst_sign_bit): Declare.
1363
38965eb2
ZD
13642005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
1365
1366 * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
1367 merged block.
1368 (replace_uses_by): New function.
1369 (tree_merge_blocks): Eliminate the phi nodes in the merged block.
1370 * tree-flow.h (fold_stmt_inplace): Declare.
1371 * tree-ssa-ccp.c (fold_stmt_inplace): New function.
1372 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
1373 info after cfg cleanup.
1374
6c878b23
ZD
13752005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
1376
1377 * cfgloop.h (just_once_each_iteration_p): Declaration changed.
1378 * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
1379 const.
1380
8d18c628
ZD
13812005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
1382
1383 * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
1384 * ggc-zone.c (ggc_alloc_zone_1): Ditto.
1385 * timevar.c (timevar_ggc_mem_total): New variable.
1386 (GGC_MEM_BOUND): New constant.
1387 (get_time): Record ggc memory status.
1388 (timevar_accumulate): Accumulate amount of ggc memory.
1389 (timevar_print): Print consumption of ggc memory.
1390 * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
1391 TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
1392 TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
1393 * timevar.h (struct timevar_time_def): Add ggc_mem field.
1394 (timevar_ggc_mem_total): Declare.
1395
9caf90a8
KH
13962005-05-17 Kazu Hirata <kazu@cs.umass.edu>
1397
1398 * tree-into-ssa.c (update_ssa): Clean up by shortening the
1399 live range of DFS.
1400
221ca267
HPN
14012005-05-17 Hans-Peter Nilsson <hp@axis.com>
1402
1403 * config/cris/cris.md (ncond, ocode, rcond): Remove separate
1404 define_code_attr.
1405 ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
1406 ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
1407 ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
1408 ("s<ocond:code>"): Rename from respectively "b<ncond>",
1409 "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
1410 "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
1411 "s<rcond>" and "s<ocond>".
1412 ("b<ocond:code>", "*b<ocond:code>_reversed")
1413 ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
1414 output statement section.
1415
b2232745
RS
14162005-05-17 Roger Sayle <roger@eyesopen.com>
1417
1418 * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
1419
e21aff8a
SB
14202005-05-17 Steven Bosscher <stevenb@suse.de>
1421 Stuart Hastings <stuart@apple.com>
1422 Jan Hubicka <jh@suse.cz>
1423 Dale Johannesen <dalej@apple.com>
1424
1425 * cgraph.h (cgraph_node): Add 'lowered' state.
1426 (cgraph_lower_function): Declare.
1427 * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
1428 (cgraph_lower_function): New function.
1429 (cgraph_create_edges): Deal with lowered function bodies.
1430 (verify_cgraph_node): Likewise.
1431 (cgraph_analyze_function): Do lowering job.
1432 (cgraph_build_static_cdtor): Likewise.
1433 * function.h (struct function): Add saved_eh and saved_cfg.
1434 * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
1435 * tree-cfg.c (fold_cond_expr_cond): Export.
1436 * tree-flow.h (fold_cond_expr_cond): Declare.
1437 * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
1438 pointer-set.
1439 (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
1440 in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
1441 callee_cfun, block, eh_region, eh_region_offset.
1442 (inlining_p): New predicate.
1443 (remap_decl): Update for new inline_data; declare newly created inline
1444 vars in low gimple way.
1445 (copy_body_r): Update for new datastructure, simplify some of handling
1446 when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
1447 deal with RESX_EXPRs.
1448 (copy_bb): New.
1449 (copy_edges_for_bb): Likewise.
1450 (remap_decl_1): New.
1451 (copy_cfg_body): New.
1452 (copy_generic_body): Rewrite to work on low gimple.
1453 (copy_body): Turn into simple wrapper around copy_cfg_body.
1454 (setup_one_parameter): Insert new statements into given basic block.
1455 (initialize_initialized_parameters): Likewise, reorganize way things are
1456 gimplified.
1457 (declare_return_variable): Update for new inline data datastructure.
1458 (inline_forbidden_p): Work on low gimple.
1459 (estimate_num_insns): Likewise.
1460 (expand_call_inline): Work on CFG.
1461 (push_cfun, pop_cfun): New functions.
1462 (cfun_stack): New stack.
1463 (add_lexical_block): New function.
1464 (gimple_expand_calls_inline): Work on basic block.
1465 (optimize_inline_calls): Likewise.
1466 (clone_body, save_body, unsave_ewpr_now): Update for new
1467 datastructures.
1468 (declare_inline_vars): Work on block instead of bind_expr.
1469 (inlining_p): New predicate.
1470 * tree-inline.h (push_cfun, pop_cfun): Declare.
1471 * tree-optimize.c: Include except.h
1472 (all_lowering_passes): New variable.
1473 (execute_fixup_cfg, pass_fixup_cfg): New pass.
1474 (init_tree_optimization_passes): Move some to all_lowering_passes.
1475 (tree_lowering_passes): New function.
1476 (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
7bd3a7bf 1477 * tree-pass.h (tree_lowering_passes): Declare
e21aff8a 1478
2ba99e3d
NS
14792005-05-17 Nathan Sidwell <nathan@codesourcery.com>
1480
1481 * unwind-dw2-fde-darwin.c: Include tsystem.h.
1482
a564d0f1
JL
14832005-05-17 Jeff Law <law@redhat.com>
1484
1485 * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
1486 * tree-ssa-forwprop.c: Include langhooks.h.
1487 (forward_propagate_addr_expr_into_variable_array_index): New.
1488 (forward_propagate_addr_expr): New.
1489 (tree_ssa_forward_propagate_single_use_vars): Loop over all
1490 the statements in the block instead of just the last statement.
1491 Call forward_propagate_addr_expr as needed.
1492 (pass_forwprop): Update the SSA graph after forward propagation is
1493 complete.
1494
79d0dfa3
NS
14952005-05-17 Nathan Sidwell <nathan@codesourcery.com>
1496
1497 * unwind-dw2-fde-glibc.c (base_from_cb_data,
1498 _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
1499 appropriate.
1500 * unwind-dw2-fde.c (__deregister_frame_info_bases,
1501 base_from_object, fde_split, end_fde_sort): Likewise.
1502 * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
1503 execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
1504 uw_init_context_1): Likewise.
1505 * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
1506 _Unwind_Resume_or_Rethrow): Likewise.
1507 * unwind-pe.h (__gxx_abort): Do not define.
1508 (size_of_encoded_value, base_of_encoded_value,
1509 read_encoded_value_with_base): Use gcc_unreachable.
1510 * unwind.h (_Unwind_GetTextRelBase): Likewise.
1511
d0f11b16
DJ
15122005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
1513
1514 * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
1515 (cfi_end): New macros.
1516 (RETLDM): Use cfi_pop. Expect an eight byte stack frame.
1517 (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros. Create
1518 an eight byte stack frame.
1519 (__NR_tkill): Define.
1520 (__div0): Use gettid tkill on GNU/Linux.
1521 (_arm_return): Add CFI.
1522 (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
1523
7032df40
DJ
15242005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
1525
1526 * configure.ac: Remove spaces around assignment to
1527 gcc_cv_ld_sysroot.
1528 * configure: Regenerated.
1529
df01da37
DE
15302005-05-17 David Edelsohn <edelsohn@gnu.org>
1531
1532 * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
1533 * config/rs6000/rs6000.c (rs6000_explicit_options): Add
1534 aix_struct_ret.
1535 (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
1536 Modify aix_struct_return variable, not target_flags.
1537 (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
1538 (rs6000_return_in_memory): Test aix_struct_return.
1539 * config/rs6000/rs6000.opt (maix-struct-return): Convert to
1540 independent variable. Report mxl-compat.
1541
4193ce73
BS
15422005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
1543
1544 * config/bfin/bfin.md (eh_return): Add missing DONE.
1545
fcf48de7
ILT
15462005-05-17 Ian Lance Taylor <ian@airs.com>
1547
1548 * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
1549 field.
1550 (mode_attr_index): Remove check for defined attribute. Remove
1551 infile parameter. Change all callers.
1552 (apply_mode_maps): Add unknown parameter. Change caller. Always
1553 return after finding attribute.
1554 (apply_macro_to_rtx): Add unknown_mode_attr parameter. Change
1555 callers.
1556 (apply_macro_traverse): Set mtd->unknown_mode_attr.
1557 (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
1558 attribute used for a mode.
1559
6c2a63a3
PB
15602005-05-17 Paolo Bonzini <bonzini@gnu.org>
1561
1562 * tree-ssa-math-opts.c: New file.
1563
598b2024
PB
15642005-05-17 Paolo Bonzini <bonzini@gnu.org>
1565
1566 * tree-ssa-math-opts.c: New file.
1567
f8912a55
PB
15682005-05-17 Paolo Bonzini <bonzini@gnu.org>
1569
1570 * Makefile.in: Add tree-ssa-math-opts.c.
1571 * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
1572 * fold-const.c (distribute_real_division): New.
1573 (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
1574 * tree-pass.h (pass_cse_reciprocals): New.
1575 * tree-optimize.c (init_tree_optimization_passes): Run it.
f8912a55
PB
1576 * doc/passes.texi: Document the new pass.
1577
fb664a2c
RG
15782005-05-17 Richard Guenther <rguenth@gcc.gnu.org>
1579
1580 PR middle-end/21595
1581 * builtins.c (fold_builtin_constant_p): Handle
1582 &"string cst"[0] as constant.
1583
64e6863e
RH
15842005-05-17 Richard Henderson <rth@redhat.com>
1585
1586 * config/i386/sse.md (mulv16qi3, mulv2di3): New.
1587
c477e13b
JJ
15882005-05-17 Jakub Jelinek <jakub@redhat.com>
1589
7cbd12b8
JJ
1590 PR middle-end/21492
1591 * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
1592 src2 if src2 has been split.
1593
c477e13b
JJ
1594 PR tree-optimization/21610
1595 * c-typeck.c (decl_constant_value_for_broken_optimization): If not
1596 returning DECL, call unshare_expr.
1597
22c3c091
HPN
15982005-05-17 Hans-Peter Nilsson <hp@axis.com>
1599
1600 * config/cris/cris.md: Unquote preparation and output statements.
f8912a55 1601 (BWD, WD, BW): New, mode-macros.
22c3c091
HPN
1602 (S, s, m, mm, nbitsm1): New, mode-attrs.
1603 (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
1604 (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
1605 code-attrs.
1606 ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
1607 ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
1608 ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
1609 "*cmp_swapexthi".
1610 ("cmp<mode>"): Replace "cmphi" and "cmpqi".
1611 ("movdi"): Move misplaced head comment regarding necessity of
1612 movdi from movsi to here.
1613 ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
1614 "*mov_sidehi_biap".
1615 ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
1616 ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
1617 "*mov_sideqi_biap_mem".
1618 ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
1619 "*mov_sidehi_mem".
1620 ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
1621 "*clear_sidehi_biap" and "*clear_sideqi_biap".
1622 ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
1623 and "*clear_sideqi".
1624 ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
1625 "*ext_sidehisi_biap".
1626 ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
1627 "*ext_sidehisi".
1628 ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
1629 ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
1630 ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
1631 ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
1632 ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
1633 "zero_extendqisi2".
1634 ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
1635 "*op_sidehi_biap" and "*op_sidesi_biap".
1636 ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
1637 "*op_sidesi".
1638 ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
1639 "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
1640 ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
1641 "*op_swap_sidehi" and "*op_swap_sidesi".
1642 ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
1643 in the N alternative of "subqi3".
1644 ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
1645 "*extophisi_side_biap".
1646 ("*extop<mode>si_side"): Replace "*extopqisi_side" and
1647 "*extophisi_side".
1648 ("*extop<mode>si_swap_side_biap"): Replace
1649 "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
1650 ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
1651 "*extophisi_swap_side".
1652 ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
1653 ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
1654 "*extophisi_swap".
1655 ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
1656 "mulqihi3", "mulhisi3" and "mulhisi3".
1657 ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
1658 ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
1659 "umulsi3_highpart".
1660 ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
1661 ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
1662 ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
1663 ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
1664 ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
1665 ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
1666 "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
1667 ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
1668 "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
1669 ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
1670 ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
1671 ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
1672 "*ashlhi_lowpart".
1673 ("abs<mode>2"): Replace "abshi2" and "absqi2".
1674 ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
1675 "bleu".
1676 ("b<ocond>"): Replace "bgt" and "ble".
1677 ("b<rcond>"): Replace "blt" and "bge".
1678 ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
1679 "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
1680 "*bleu_reversed".
1681 ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
1682 "*ble_reversed".
1683 ("*b<rcond>_reversed"): Replace "*blt_reversed" and
1684 "*blt_reversed".
1685 ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
1686 "sne".
1687 ("s<rcond>"): Replace "sge" and "slt".
1688 ("s<ocond>"): Replace "sgt" and "sle".
1689 ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
1690 [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
1691 ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
1692 clear.w [rx=rx+i] and clear.b [rx=rx+i].
1693
b96917bf
JJ
16942005-05-17 Jakub Jelinek <jakub@redhat.com>
1695
1696 * varasm.c (struct constant_descriptor_tree): Add hash field.
1697 (const_desc_hash): Just return hash field.
1698 (const_desc_eq): If hash values are different, return 0 immediately.
1699 (output_constant_def): Compute hash field of temporary key, use
1700 htab_find_slot_with_hash instead of htab_find_slot. Set hash in
1701 newly built constant descriptor.
1702 (lookup_constant_def): Compute hash field of temporary key, use
1703 htab_find_with_hash instead of htab_find.
1704
2b5bf0e2
RH
17052005-05-16 Richard Henderson <rth@redhat.com>
1706
1707 * config/i386/sse.md (mulv4si3): New.
1708
39fbb17b
HPN
17092005-05-17 Hans-Peter Nilsson <hp@axis.com>
1710
1711 * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
1712 tests for noncanonical versions of reg+constant and
1713 reg+reg*{1,2,4}.
1714
af47810a
RH
17152005-05-16 Richard Henderson <rth@redhat.com>
1716 Steven Bosscher <stevenb@suse.de>
1717
1718 PR tree-opt/21399
1719 * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
1720 maybe_clean_eh_stmt; take old stmt parameter. Update EH
1721 region data structure to match replacement.
1722 * tree-flow.h: Update to match.
1723 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
1724 * tree-ssa-dom.c (optimize_stmt): Likewise.
1725 * tree-ssa-pre.c (eliminate): Likewise.
1726 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1727
1ad435a5
CT
17282005-05-16 Caroline Tice <ctice@apple.com>
1729
1730 * bb-reorder.c (verify_hot_cold_block_grouping): Replace
1731 internal_error with gcc_assert.
1732 * dwarf2out.c (dwarf2out_switch_text_section): Likewise.
1733 * function.h (struct function): Remove space between "*" and
1734 struct field names.
1735 * varasm.c (initialize_cold_section_name): Add gcc_assert;
1736 modify to use alloca.
1737 (unlikely_text_section): Add check for flag_function_sections.
1738 (assemble_start_function): Move call to resolve_section, so it
1739 comes before first call to unlikely_text_section.
1740 (assemble_end_function): Add test and call to function_section
1741 if appropriate.
1742
cb3b1e70
RS
17432005-05-16 Roger Sayle <roger@eyesopen.com>
1744
1745 * c-common.c (c_common_truthvalue_conversion): Use fold_build2
1746 instead of build_binary_op when performing code transformations
1747 to avoid error messages about constructs not it the user's code.
1748
bbf6f1cf
KH
17492005-05-16 Kazu Hirata <kazu@cs.umass.edu>
1750
1751 * tree-ssa-pre.c: Fix a comment typo.
1752
5e2b4439
RH
17532005-05-16 Richard Henderson <rth@redhat.com>
1754
1755 PR target/21556
1756 * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
1757 load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
1758 add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
1759 load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
1760 add_tprel22): Remove mode from symbolic operand.
1761
fb664b5a
RS
17622005-05-16 Richard Sandiford <rsandifo@redhat.com>
1763
1764 * optc-gen.awk: Include intl.h after the externally-provided files.
1765
691aed8c
KH
17662005-05-16 Kazu Hirata <kazu@cs.umass.edu>
1767
1768 * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
1769 folding a COND_EXPR_COND in a nondestructive manner.
1770
fe2d45c7
FJ
17712005-05-16 Fariborz Jahanian <fjahanian@apple.com>
1772
1773 * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
1774 altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
1775 New values for vec_select definitions and bitmask for element
1776 selection.
1777
a1bbd445
KH
17782005-05-16 Kazu Hirata <kazu@cs.umass.edu>
1779
1780 * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
1781 Change the type to VEC(rtx,gc)*.
1782 (mem_loc_descriptor, add_const_value_attributes,
1783 dwarf2out_init): Adjust uses of used_rtx_varray.
1784
7b8a92e1
KH
1785 * tree-data-ref.c (compute_all_dependences): Change the type
1786 of dependence_relations to VEC(ddr_p,heap)**.
1787 (compute_data_dependences_for_loop): Change the type of
1788 allrelations to VEC(ddr_p,heap)*.
1789
aeb70e78
RS
17902005-05-16 Richard Sandiford <rsandifo@redhat.com>
1791
1792 * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
1793 system.h, coretypes.h and tm.h.
1794 (options.o): Update dependencies accordingly.
1795 * optc-gen.awk: Allow header_name to be a list of filenames.
1796 Handle the "Condition" flag.
1797 * opts.h (CL_DISABLED): New flag.
1798 * opts.c (handle_option): Print an error for CL_DISABLED options.
1799 * doc/options.texi: Document the "Condition" option flag.
1800
4151978d
PB
18012005-05-16 Paolo Bonzini <bonzini@gnu.org>
1802
1803 * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
1804
94a3e63a
RS
18052005-05-15 Roger Sayle <roger@eyesopen.com>
1806
1807 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
1808 check for TREE_OVERFLOW on INTEGER_CST trees.
1809 * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
1810 CONSTANT_CLASS_P tree nodes.
1811
21e43850
L
18122005-05-15 H.J. Lu <hongjiu.lu@intel.com>
1813
1814 PR target/21551
1815 * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
1816
43da81be
DB
18172005-05-15 Daniel Berlin <dberlin@dberlin.org>
1818
1819 Fix PR tree-optimization/21576
1820
1821 * tree-ssa-pre.c (expression_node_pool): New pool.
1822 (comparison_node_pool): Ditto.
1823 (list_node_pool): Ditto.
1824 (pool_copy_list): New function.
1825 (phi_translate): Handle CALL_EXPR.
1826 (valid_in_set): Ditto.
1827 (create_expression_by_pieces): Ditto.
1828 (insert_into_preds_of_block): Ditto.
1829 (insert_aux): Ditto.
1830 (compute_avail): Ditto.
1831 (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
1832 (can_value_number_call): New function.
1833 (find_leader): Update comment.
1834 (init_pre): Create new pools.
1835 (fini_pre): Free new pools.
1836 (pass_pre): Add TODO_update_ssa for the future when we are going
1837 to need vops.
1838 * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
1839 (set_value_handle): Ditto.
1840 (get_value_handle): Ditto.
1841
6e60504f
RE
18422005-05-15 Richard Earnshaw <richard.earnshaw@arm.com>
1843
1844 * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
1845
099ff66c
AJ
18462005-05-15 Andreas Jaeger <aj@suse.de>
1847
1848 * gcc.c (pfatal_pexecute): Remove unused local function.
1849
b167666c
RS
18502005-05-15 Richard Sandiford <rsandifo@redhat.com>
1851
1852 * optc-gen.awk: Remove excess indentation.
64fbae21 1853 * opth-gen.awk: Likewise.
b167666c 1854
652ad062
KK
18552005-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
1856
1857 * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
1858 of basic_block_info. Call init_flow and find_basic_blocks
1859 before dbr_schedule if needed.
1860
92df92cd
KH
18612005-05-14 Kazu Hirata <kazu@cs.umass.edu>
1862
1863 * tree-optimize.c (init_tree_optimization_passes): Move
1864 pass_cd_dce in place of the last pass_dce.
1865
5de2df7b
KH
1866 PR tree-optimization/21563
1867 * tree-vrp.c (compare_value): Return boolean_false_node when
1868 SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
1869 strictly larger than CST.
1870
90285d8d
NS
18712005-05-14 Nathan Sidwell <nathan@codesourcery.com>
1872 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1873
1874 * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
1875 gcc_assert().
1876 (rev_cond_name) Likewise.
1877 (vax_float_literal) Likewise.
1878 * config/vax/vax.md: Likewise.
1879
0b55eafa
JBG
18802005-05-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1881
0f8def68
JBG
1882 * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
1883 registers and use them (specifically the stack pointer).
1884 * config/vax/vax.h: Use above defines right here.
1885
d001241c
JBG
1886 * config/vax/vax.c: (override_options) Remove 'register' keyword.
1887 (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
1888 (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
1889 whitespace.
1890 * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
1891 mostly removal of trailing spaces...
1892 * config/vax/vax-modes.def: Remove trailing whitespace.
1893
0b55eafa
JBG
1894 * config/vax/elf.h: Update whitespace.
1895
6033ae2a
RG
18962005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
1897
1898 Revert
1899 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1900 * fold-const.c (fold_indirect_ref_1): Avoid removing
1901 NOP_EXPRs with type qualifiers like const.
1902
aa313ed4
JH
19032005-05-14 Jan Hubicka <jh@suse.cz>
1904
a8b3ba8b
JH
1905 Patch by Richard Henderson:
1906 * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
1907 Handle RESX expressions properly.
1908
a78b491f
JH
1909 * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
1910 (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
1911 (remove_stmt_from_eh_region_fn): Likewise.
1912
aa313ed4
JH
1913 * tree-cfg.c (execute_warn_function_return): Break out noreturn
1914 warning too..
1915 (execute_warn_function_noreturn): ... here.
1916 (pass_warn_function_noreturn): New pass.
1917 * tree-pass.h (pass_warn_function_noreturn): Declare
1918 * tree-optimize.c (init_tree_optimization_passes): Move return
1919 warnings early and add noreturn warnings at place of previous
1920 return warnings.
1921
7af893cb
KH
19222005-05-14 Kazu Hirata <kazu@cs.umass.edu>
1923
1924 * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
1925 root_var_init, type_var_init): Use VEC instead of VARRAY.
1926 * tree-ssa-live.h (tree_partition_associator_d): Change the
1927 type of trees to VEC(tree,heap)*.
1928 (tpa_tree): Use VEC instead of VARRAY.
1929
03b0db0a
RG
19302005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
1931
1932 * fold-const.c (div_if_zero_remainder): New function.
1933 (try_move_mult_to_index): Use it.
1934
59ebc704
KH
19352005-05-14 Kazu Hirata <kazu@cs.umass.edu>
1936
1937 * tree-eh.c (leh_tf_state): Change the type of dest_array to
1938 VEC(tree,heap)*.
1939 (maybe_record_in_goto_queue, lower_try_finally_onedest,
1940 lower_try_finally_copy, lower_try_finally_switch,
1941 lower_try_finally): Use VEC instead of VARRAY.
1942
82383070
HPN
19432005-05-14 Hans-Peter Nilsson <hp@axis.com>
1944
1945 * config/cris/cris.h (Node: Register Classes): Remove obsoleted
1946 comment regarding defined register classes.
1947 (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
1948
c80a9eb5
KH
19492005-05-14 Kazu Hirata <kazu@cs.umass.edu>
1950
1951 * tree-optimize.c (init_tree_optimization_passes): Move
1952 pass_merge_phi before the first pass_dominator.
1953
49755603
RE
19542005-05-13 Richard Earnshaw <richard.earnshaw@arm.com>
1955
1956 * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
1957 unconditional.
1958
4f5dfed0
JC
19592005-05-13 Josh Conner <jconner@apple.com>
1960
1961 * config/arm/arm.c (arm_size_return_regs): New.
1962 (thumb_unexpanded_epilogue): replace in-line calculation
1963 of return registers with call to arm_size_return_regs.
1964 (use_return_insn): Include test of which registers are
1965 being used to hold return values, to accommodate
1966 vector return values.
1967
c2dba4ab
AH
19682005-05-11 Aldy Hernandez <aldyh@redhat.com>
1969
1970 * config/rs6000/sysv4.opt (mlittle): Handle.
1971
1972 * config/rs6000/rs6000.c (rs6000_handle_option): Set
1973 target_flags_explicit when appropriate.
1974
326a31e9
R
19752005-05-13 J"orn Rennecke <joern.rennecke@st.com>
1976
1977 PR middle-end/20714:
1978 * optabs.c (no_conflict_data): New struct.
1979 (no_conflict_move_test): New function.
1980 (emit_no_conflict_block): Use it.
1981
223dcf1c
AN
19822005-05-13 Adam Nemet <anemet@lnxw.com>
1983
1984 * doc/invoke.texi (Debugging Options): Option
1985 -fdump-translation-unit only works with C++ now.
1986
b6c34129
HPN
19872005-05-13 Hans-Peter Nilsson <hp@axis.com>
1988
1989 Replace calls to abort in CRIS port.
1990 * config/cris/cris.h (CRIS_ASSERT): New macro.
1991 * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
1992 internal_error instead of abort.
1993 ("movsi"): Ditto. Unquote preparation statement section.
b6c34129
HPN
1994 ("call", "call_value"): Ditto, but use gcc_assert where
1995 appropriate. Tweak comments.
52c9ce2e
HPN
1996 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
1997 CRIS_ASSERT.
b6c34129
HPN
1998 (cris_op_str): Call internal_error, not abort.
1999 (cris_print_operand): Tweak "abort" reference to "die" in comment.
2000 (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
2001 (cris_notice_update_cc): Call internal_error, not abort.
2002 (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
2003 (cris_emit_movem_store, cris_asm_output_symbol_ref)
2004 (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
2005 (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
2006 ENABLE_CHECKING-guarded abort call.
2007 (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
2008 Use internal_error at end of test-chain.
2009
2d6c85d3
R
20102005-05-13 J"orn Rennecke <joern.rennecke@st.com>
2011
2012 PR rtl-optimization/20769:
2013 * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
2014 pattern emitted by expand_nl_goto_receiver.
2015
2016 PR middle-end/20793:
2017 * integrate.c (allocate_initial_values): Update register liveness
2018 information.
2019
30e5a198
JC
20202005-05-13 Josh Conner <jconner@apple.com>
2021
2022 * arm.c (arm_return_in_memory): Add handling for vector return types.
2023
ee218a92
DU
20242005-05-13 David Ung <davidu@mips.com>
2025
2026 * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
2027 name.
2028 * config/mips/mips.c: Add 4km alias.
2029 * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
2030 * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
2031 description.
2032
81cfbbc2
JH
20332005-05-13 Jan Hubicka <jh@suse.cz>
2034
9da58884
JH
2035 * c-decl.c (finish_function): Suppress "control reaches end of
2036 non-void function" when "no return statement in function
2037 returning non-void" is issued.
2038
81cfbbc2
JH
2039 * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
2040 * tree-optimize.c (pass_gimple): Kill.
2041 (init_tree_optimization_passes): Kill pass_gimple.
2042 * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
2043 * tree-dump.c (dump_files): Rename .generic to .gimple.*
2044
86d9571b
R
20452005-05-13 J"orn Rennecke <joern.rennecke@st.com>
2046
2047 PR rtl-optimization/20756:
2048 * basic-block.h (PROP_DEAD_INSN): Define.
2049 * flow.c (propagate_one_insn): Set during mark_set_regs call
2050 for a dead insn.
2051 (mark_set_1): Emit a clobber when we are about to delete a dead insn
2052 that kills a live register.
2053
a1aed706
AS
20542005-05-13 Adrian Straetling <straetling@de.ibm.com>
2055
d197b9e0 2056 * config/s390/s390.md: ("DBL"): New mode attribute.
a1aed706
AS
2057 ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
2058 ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
2059 ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
2060
f5c9a097
RG
20612005-05-13 Richard Guenther <rguenth@gcc.gnu.org>
2062
2063 * c-format.c (check_format_arg): Handle string literals of
2064 the form &"string"[offset].
2065
2066 * g++.dg/warn/format4.C: New testcase.
2067
9db9ab7e
KH
20682005-05-13 Kazu Hirata <kazu@cs.umass.edu>
2069
2070 * config/mips/3000.md, config/mips/4000.md,
2071 config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
2072 config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
2073 config/mips/generic.md, config/pdp11/pdp11.md,
2074 config/sh/crt1.asm, config/sh/lib1funcs.asm,
2075 config/sh/sh-modes.def, config/sh/sh-protos.h,
2076 config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
2077
9325973e
RH
20782005-05-13 Richard Henderson <rth@redhat.com>
2079
2080 * function.c (instantiate_virtual_regs_in_insn): Do not simplify
099ff66c 2081 addition to move unless dest is a register. Do not skip
9325973e
RH
2082 instantiation in dest on addition simplification.
2083
2239ced8
HPN
20842005-05-13 Hans-Peter Nilsson <hp@axis.com>
2085
2086 * config/cris/cris.c (cris_print_operand) <case 'H'; case
2087 CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
2088 output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
2089
a930a4ef
JH
20902005-05-13 Jan Hubicka <jh@suse.cz>
2091
2092 * basic-block.h (FOR_ALL_BB_FN): New macro.
2093 (init_flow): Initialize cfg structure.
2094 * function.c (allocate_struct_function): Do not initialize cfg structure.
2095 * tree-cfg.c (init_empty_tree_cfg): Break out from ...
2096 (build_tree_cfg): ... here.
2097 * tree-flow.h (init_empty_tree_cfg): Declare.
2098
0995a441
SB
20992005-05-12 Steven Bosscher <stevenb@suse.de>
2100
2101 Fix PR tree-optimization/21520
2102 * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
2103 to attempt to fold constants.
2104
02f20dc3
KK
21052005-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2106
2107 * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
2108 only when TARGET_ADJUST_UNROLL_MAX is defined.
2109 (general_movsrc_operand): Use the C style comment.
2110 (ua_offset): Use prototype.
2111
ed9c043b
ZD
21122005-05-12 Zdenek Dvorak <dvorakz@suse.cz>
2113
2114 * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
2115 (struct hmr_data, hoist_memory_reference, memref_del,
2116 struct fmrv_data): Removed.
2117 (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
2118 (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
2119 list.
2120 (find_more_ref_vops): Traverse the list of memory references.
2121 (determine_lsm_loop): Work with the list of memory references instead
2122 of traversing the hashtable.
2123
98f464e0
SB
21242005-05-12 Steven Bosscher <stevenb@suse.de>
2125 Stuart Hastings <stuart@apple.com>
2126 Jan Hubicka <jh@suse.cz>
099ff66c 2127
98f464e0
SB
2128 * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
2129 duplicate_eh_regions): New functions, based on old
2130 implementation removed with RTL inliner.
2131 (reachable_next_level): Modify behaviour pre-inline.
2132 * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
2133 Declare.
2134 * function.h (struct function): Add after_inlining flag.
2135 * tree-optimize.c (tree_rest_of_compilation): Set it.
2136 * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
2137 when needed.
2138 * tree-cfg.c (label_to_block_fn): Deal with cases where
2139 label was never insterted into code.
2140
1ed17cd5
ZW
21412005-05-12 Zack Weinberg <zack@codesourcery.com>
2142
2143 * doc/cpp.texi: Document that #sccs is a synonym for #ident.
2144
7cc70b5e 21452005-05-12 Daniel Berlin <dberlin@dberlin.org>
1ed17cd5 2146
7cc70b5e
DB
2147 Fix PR tree-optimization/21532
2148 * tree-ssa-pre.c (create_expression_by_pieces): stmt
2149 needs to go onto the inserted_exprs list.
2150
feea5b18
ILT
21512005-05-12 Ian Lance Taylor <ian@airs.com>
2152
2153 * c-common.h (statement_code_p): Don't declare.
2154 (STATEMENT_CODE_P): Don't define.
2155 (INIT_STATEMENT_CODES): Don't define.
2156 * c-common.c (statement_code_p): Don't define.
2157
f8ece000
EB
21582005-05-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2159
2160 * config/sparc/sparc.h: Remove dead code.
2161 * config/sparc/sparc.c (sparc_compute_frame_size): Use
2162 FIRST_PARM_OFFSET for the size of the register window area.
2163 (emit_save_regs): Rename into emit_save_or_restore_regs.
2164 Add 'action' parameter. Use 4095 as upper bound for the offset.
2165 Pass 'action' to save_or_restore_regs.
2166 (emit_restore_regs): Delete.
2167 (sparc_expand_prologue): Call emit_save_or_restore_regs.
2168 (sparc_expand_epilogue): Likewise.
2169 * config/sparc/sparc.md (mode macro P): Move.
2170 (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
2171 (mov<V32:mode> expander): Move to the top of the V32 section.
2172 (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
2173 (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
2174 (sibcall_epilogue): Move.
2175
fa2c88a0
RE
21762005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
2177
2178 PR target/21501
2179 * arm.c (arm_gen_constant): Sign-extend intermediate values when
2180 synthesizing a constant of the difference of two immediates.
2181
81632f11
RE
21822005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
2183
2184 * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
2185 (negdf2_vfp): Likewise. Convert to define_insn_and_split and split
2186 the alternatives using integer registers into the appropriate
2187 primitives.
2188
5765e552
KZ
21892005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
2190
2191 * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
2192 bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
2193 * bitmap.h: Fixed comments.
2194
5e6c8b64
RH
21952005-05-11 Richard Henderson <rth@redhat.com>
2196
2197 PR target/21412
2198 * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
2199 (ia64_cannot_force_const_mem): New.
2200 (tls_symbolic_operand_type): New.
2201 (ia64_legitimate_constant_p): New.
1ed17cd5 2202 (ia64_expand_load_address): Return true on success. Improve
5e6c8b64
RH
2203 checks for when we should not split.
2204 (ia64_expand_tls_address): New addend operand. Distribute it
2205 as appropriate to the tls_kind. Delay referencing gp.
2206 (ia64_expand_move): Split symbolic addend as necessary. Handle
2207 tls symbols with addends.
2208 * config/ia64/ia64-protos.h: Update.
2209 * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
2210 p0, f0, f1, and r13.
2211 (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
2212 * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
2213 (symbolic_operand splitter): Pass everything through
2214 ia64_expand_load_address and FAIL or DONE as appropriate.
2215 (load_fptr): Only accept after reload.
2216 (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
1ed17cd5 2217 load_symptr_low, load_ltoff_dtpmod,
5e6c8b64
RH
2218 (load_dtpmod): New.
2219 (load_dtprel): Only accept tls symbols.
2220 (load_dtprel64, load_dtprel22): Likewise.
2221 (load_tprel, load_tprel64, load_tprel22): Likewise.
2222 (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
2223 (add_dtprel): Only accept tls symbols. Canonicalize PLUS.
2224 (add_dtprel14, add_dtprel22): Likewise.
2225 (add_tprel, add_tprel14, add_tprel22): Likewise.
2226 * config/ia64/predicates.md (small_addr_symbolic_operand): New.
2227 (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
2228 (got_symbolic_operand): Check CONST offsets.
2229 (tls_symbolic_operand, ld_tls_symbolic_operand): New.
2230 (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
2231 (move_operand): Don't handle tls here. Check CONST offsets.
2232
b3315253
RS
22332005-05-11 Richard Sandiford <rsandifo@redhat.com>
2234
2235 * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
2236 Remove hilo_operand check.
2237 (rm7_impy_si_mul): Just match imul3. Remove hilo_operand check.
2238 * config/mips/predicates.md (hilo_operand): Delete.
2239
a8cdbec0
RS
22402005-05-11 Richard Sandiford <rsandifo@redhat.com>
2241
2242 * config/mips/sr71k.md, config/mips/7000.md: Reformat.
2243
f8535b4d
KH
22442005-05-11 Kazu Hirata <kazu@cs.umass.edu>
2245
2246 PR tree-optimizer/18472
2247 * tree-if-conv.c (tree_if_convert_stmt,
2248 if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
2249
b4660e5a
JH
22502005-05-11 Jan Hubicka <jh@suse.cz>
2251
2252 * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
2253 (GTFILES): add except.h.
2254 * except.c (eh_status): Add throw_stmt_table.
2255 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
2256 * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
2257 lookup_stmt_eh_region_fn): Declare.
2258 (throw_stmt_node): New structure.
2259 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
2260 * gengtype.c (open_base_files): Add except.h to inlines.
2261 * tree-eh.c (throw_stmt_node): Kill.
2262 (record_stmt_eh_region): Update.
2263 (add_stmt_to_eh_region_fn): Break out from ...
2264 (add_stmt_to_eh_region): ... here.
2265 (remove_stmt_from_eh_region_fn): Break out from ...
2266 (remove_stmt_from_eh_region): ... here.
2267 (lookup_stmt_eh_region_fn): Break out from ...
2268 (lookup_stmt_eh_region): ... here.
2269 (honor_protect_cleanup_actions): Use build_resx.
2270 (lower_try_finally_onedest): Likewise.
2271 (lower_try_finally_copy): Likewise.
2272 (lower_try_finally_switch): Likewise.
2273 (lower_eh_constructs): Update eh table construction.
2274 * tree.c (build_resx): New.
2275 * tree.h (build_resx): Declare.
2276
3ca48b3e
L
22772005-05-11 H.J. Lu <hongjiu.lu@intel.com>
2278
2279 * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
2280 is needed.
2281
9d6aab7e
KH
22822005-05-11 Kazu Hirata <kazu@cs.umass.edu>
2283
2284 * fold-const.c, libgcov.c: Fix comment typos.
2285
78f4111d
KH
2286 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
2287 redundant code.
2288
a15900b5
DJ
22892005-05-11 Daniel Jacobowitz <dan@codesourcery.com>
2290
2291 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2292 * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
2293 default definition.
2294 (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
2295
9d48ad93
NS
22962005-05-11 Nathan Sidwell <nathan@codesourcery.com>
2297
2298 PR bootstrap/21481
2299 * crtstuff.c: Include auto-host.h again, for now.
2300
99917bc3
RS
23012005-05-11 Richard Sandiford <rsandifo@redhat.com>
2302
2303 * config/mips/24k.md: Remove trailing whitespace.
2304
95177e17
DU
23052005-05-11 David Ung <davidu@mips.com>
2306
2307 * config/mips/mips.md (type): Add imul3.
2308 (length, hazard, may_clobber_hilo): Check for imul3.
2309 (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
2310 (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
2311 * config/mips/24k.md (r24k_int_mul3): Enable this reservation
2312 for a 3 operand mul and its bypasses.
2313 * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
2314 * config/mips/4000.md (r4k_imul): Likewise.
2315 * config/mips/4100.md (r4100_imul_si, r4100_imul_di): Likewise.
2316 * config/mips/4130.md (vr4130_class, vr4130_mulsi)
2317 (vr4130_muldi): Likewise.
2318 * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
2319 * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
2320 * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
2321 * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
2322 (ir_vr54_imadd_si): Likewise.
2323 * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di): Likewise.
2324 * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
2325 (rm7_impy_di): Likewise.
2326 * config/mips/9000.md (rm9k_mulsi, rm9k_muldi): Likewise.
2327 * config/mips/generic.md (generic_imul): Likewise.
2328 * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
2329 * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di): Likewise.
2330
cbbaf4ae
R
23312005-05-11 J"orn Rennecke <joern.rennecke@st.com>
2332
2333 PR middle-end/20371:
2334 * tree.h (record_layout_info_s): New member prev_packed.
2335 * stor-layout.c (update_alignment_for_field): Fix comment about
2336 KNOWN_ALIGN. For MS bitfields, if we start a new run, make sure
2337 we start it properly aligned.
2338 (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
2339 to update_alignment_for_field, and recompute it afterwards using
2340 the alignment of the record.
2341 When a packed bitfield precedes an MS bitfield, don't add padding
2342 at the end of the packed bitfield on behalf of the base type of
2343 the packed bit field.
2344 Don't adjust rli->bitpos at the end
2345 of an MS bitfield run if we already adjusted bitpos/offset for an
2346 alignment as large or larger than the bitfield type size.
2347 Take possible record alignment > BIGGEST_ALIGNMENT into account
2348 when calculating actual_align.
2349 Only put packed buit fields into rli->prev_field if they end up
2350 suitably aligned.
2351 Also set rli->remaining_in_alignment when we re-set rli->prev_field.
2352 Update rli->remaining_in_alignment when we have already started a
2353 run of bit fields and we process a packed bit field.
2354
4aad410d
SP
23552005-05-11 Sebastian Pop <pop@cri.ensmp.fr>
2356
2357 * tree-data-ref.c (find_data_references_in_loop): Give up when
2358 the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
2359 may embed arbitrary side effects.
2360 Remove the assumption that GIMPLE form contains a single array
2361 access per statement.
2362 When the statement contains virtual operands, fail if it is not
2363 a MODIFY_EXPR or a CALL_EXPR.
2364 Return after the dont know node is inserted.
2365
5a942c07
RE
23662005-05-11 Richard Earnshaw <richard.earnshaw@arm.com>
2367
2368 * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
2369
c5542940
RG
23702005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
2371
2372 PR middle-end/19807
2373 PR tree-optimization/19639
2374 * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
2375 and generic summands for char* as s * delta, too, folding &a[i]
2376 CODE x to &a[i CODE x/s]. Use tree_int_cst_equal
2377 for comparison of steps. Convert types for index addition.
2378 (fold_binary): Adjust the callers to always dispatch to
2379 try_move_mult_to_index.
2380 * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
2381 expr with non-gimple ARRAY_REF offset.
2382
8a29ce60
RG
23832005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
2384
2385 * fold-const.c (fold_indirect_ref_1): Avoid removing
2386 NOP_EXPRs with type qualifiers like const.
2387
317a9ac3
RH
23882005-05-11 Richard Henderson <rth@redhat.com>
2389
2390 PR c/21502
2391 * c-decl.c (finish_decl): Propagate the completed array type of
2392 a global variable into the binding.
2393
939176ab
MK
23942005-05-10 Matt Kraai <kraai@ftbfs.org>
2395
2396 * Makefile.in (gtype-desc.o, build/genautomata.o)
2397 (build/varray.o): Depend on $(VARRAY_H).
1ed17cd5 2398
9a8cb141
DN
23992005-05-10 Diego Novillo <dnovillo@redhat.com>
2400
2401 * tree-optimize.c (init_tree_optimization_passes): Re-organize
2402 optimization passes to do an initial batch of scalar cleanups.
2403
f30990b2
ILT
24042005-05-10 Ian Lance Taylor <ian@airs.com>
2405
2406 * read-rtl.c (struct macro_traverse_data): Define.
2407 (map_attr_string): New static function, broken out of
2408 apply_macro_to_string.
2409 (mode_attr_index, apply_mode_maps): New static functions.
2410 (apply_macro_to_string): Call map_attr_string.
2411 (apply_macro_to_rtx): Add mode_maps and infile parameters. Change
2412 all callers.
2413 (apply_macro_traverse): Expect data to point to a struct
2414 macro_traverse_data.
2415 (read_rtx): Add mode_maps local variable. Use mode_traverse_data
2416 to pass data through htab_traverse.
2417 (read_rtx_1): Add mode_maps parameter. Change all callers.
2418 Handle mode names which are attribute strings.
2419 * doc/md.texi (Substitutions): Rename from String Substitutions.
2420 Change references. Document using attributes as modes.
2421
5deaef19
ZD
24222005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
2423
2424 * tree-cfg.c (tree_duplicate_sese_region): Update profile.
2425 * tree-optimize.c (init_tree_optimization_passes) Swap
2426 pass_ch and pass_profile.
2427 * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
2428 here. Remove rewrite_into_loop_closed_ssa call.
2429
d096725d
AS
24302005-05-10 Adrian Straetling <straetling@de.ibm.com>
2431
2432 * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
2433 function.
2434 (legitimate_reload_constant_p): Add check for const double zero.
2435 * config/s390/s390.md: Add comment for constraint letter 'G'.
2436 ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
2437 attributes for new case.
2438 * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
2439 s390_const_double_ok_for_constraint_p.
2440 * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
2441 Add prototype.
2442
31117a5c
KH
24432005-05-10 Kazu Hirata <kazu@cs.umass.edu>
2444
2445 PR tree-optimization/21170
2446 * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
2447 rewrite_ssa_into_ssa in comments with update_ssa.
2448
01fd257a
ZD
24492005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
2450
2451 * tree-ssa-loop-im.c: Include hashtab.h.
2452 (struct mem_ref_loc): New.
2453 (struct mem_ref): Describe the set of references with the same
2454 shape.
2455 (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
2456 maybe_queue_var, fem_single_reachable_address,
2457 for_each_memref, single_reachable_address,
2458 is_call_clobbered_ref, determine_lsm_reg): Removed.
2459 (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
2460 hoist_memory_reference, memref_hash, memref_eq, memref_del,
2461 gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
2462 New functions.
2463 (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
2464 (determine_lsm_loop): Rewritten.
2465 (determine_lsm): Do not set stmt uids.
2466
09366c43
AS
24672005-05-10 Adrian Straetling <straetling@de.ibm.com>
2468
2469 * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
2470 letters.
1ed17cd5 2471
047d35ed
AS
24722005-05-10 Adrian Straetling <straetling@de.ibm.com>
2473
2474 * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
2475 ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
2476 ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
2477
5fefbc79
JL
24782005-05-10 Jeff Law <law@redhat.com>
2479
2480 * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
2481 thread_across_edge for any abnormal edges.
2482
16df4ee6
RH
24832005-05-10 Richard Henderson <rth@redhat.com>
2484
2485 * config/ia64/ia64.c (ia64_expand_atomic_op): New.
2486 * config/ia64/ia64-protos.h: Declare it.
2487 * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
2488 (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
2489 (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
2490 (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
2491 (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
2492 (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>. Zero
2493 extend result; use release semantics.
2494 (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
2495 (sync_val_compare_and_swap_<IMODE>): Update to match.
2496
81ba4f39
RH
24972005-05-10 Richard Henderson <rth@redhat.com>
2498
2499 * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
2500 before comparing it for success.
2501
8173eefc
RH
25022005-05-10 Richard Henderson <rth@redhat.com>
2503
2504 * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
2505 no return value pattern.
2506
25072005-05-10 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
1ed17cd5 2508 H.J. Lu <hongjiu.lu@intel.com>
992f396f
GZ
2509
2510 * libgcov.c (create_file_directory): New function. Create
2511 directory for the given file name.
2512 (gcov_max_filename): New static var. Keeps size of the longest
2513 file name.
2514 (gcov_exit): Always try to create directory for output
2515 file. Relocate each filename basing on environment vars.
2516 (__gcov_init): Remember the longest file name.
2517 * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
2518 * doc/gcov.texi (Cross-profiling): New node documenting
2519 cross-profiling management.
2520 * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
2521
0f95e914
EB
25222005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2523
2524 * config/sparc/sparc.c (mem_min_alignment): Do not rely
2525 on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
2526
53e0077e
BW
25272005-05-10 Bob Wilson <bob.wilson@acm.org>
2528
2529 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
2530 case code to avoid one move instruction.
2531 (__umodsi3, __modsi3): Merge duplicated code sequences.
2532
30dc60c7
KH
25332005-05-10 Kazu Hirata <kazu@cs.umass.edu>
2534
2535 * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
2536 config/sh/sh.md, config/sh/superh.h: Fix comment typos.
2537 * doc/invoke.texi: Fix typos.
2538
9cbb7989
KH
2539 * tree-data-ref.c (analyze_array_indexes, analyze_array,
2540 init_data_ref, access_functions_are_affine_or_constant_p,
2541 free_data_refs): Use VEC instead of VARRAY.
2542 * tree-data-ref.h (data_reference): Change the type of
2543 access_fns to VEC(tree,gc)*.
2544 (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
2545
8c900457
GL
25462005-05-10 Gabor Loki <loki@gcc.gnu.org>
2547
2548 PR c/17913
2549 * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
2550 * fold-const.c (fold): Expand the condition of reducing cond_expr.
2551 (contains_label_1, contains_label_p): New functions for checking
2552 labels in a sub-tree.
2553
2798c11f
JM
25542005-05-10 Joseph S. Myers <joseph@codesourcery.com>
2555
2556 PR c/21342
2557 * c-decl.c (pushdecl): When there is a declaration in the current
2558 scope and the declarations are external linkage, check for
2559 compatibility with the type in the external scope and update the
2560 type in the external scope with the composite type information.
2561 Do not form a composite type of the new type and the visible type
2562 if they are incompatible.
2563
56d6849d
NS
25642005-05-10 Nathan Sidwell <nathan@codesourcery.com>
2565
2566 * crtstuff.c: Revert part of 2005-05-08 Change.
2567 (IN_LIBGCC2): Define.
2568
9a9e266b
EB
25692005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2570
2571 * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
2572 remove redundant test.
2573 (fp_mov_p): Accept 0.
2574 (fp_high_losum_p): Remove redundant test.
2575 * config/sparc/predicates.md (const_high_operand): Explicitly test
2576 (not small_int_operand).
2577 (fp_const_high_losum_operand): New.
2578 * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
2579 (movdi_insn_sp32_v9): Use canonical predicates.
2580 (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
2581 (movdi_insn_sp64_novis): Delete.
2582 (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
2583 (movsf_insn_novis): Delete.
2584 (movsf_insn_vis): Rename into movsf_insn.
2585 (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
2586 (movsf_lo_sum): Use fp_const_high_losum_operand.
2587 (movsf_high): Likewise.
2588 (movsf_high_losum splitter): Likewise.
2589 (mov<V32:mode> expander): Use register_or_zero_operand.
2590 (mov<V64:mode> expander): Likewise.
2591 (movdf_insn_sp32): Use register_or_zero_operand.
2592 (movdf_no_e_insn_sp32): Use register_or_zero_operand.
2593 Rename into movdf_insn_sp32_no_fpu.
2594 (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
2595 Rename into movdf_insn_sp32_v9_no_fpu.
2596 (movdf_insn_v9only_novis): Delete.
2597 (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
2598 (movdf_insn_sp64_novis): Delete.
2599 (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
1ed17cd5 2600 (movdf_no_e_insn_sp64): Use register_or_zero_operand.
9a9e266b
EB
2601 Rename into movdf_insn_sp64_no_fpu.
2602 (movtf expander): Use register_or_zero_operand.
2603 (movtf_insn_sp32): Delete.
2604 (movtf_insn_vis_sp32): Use register_or_zero_operand.
2605 Rename into movtf_insn_sp32.
2606 (movtf_no_e_insn_sp32): Use register_or_zero_operand.
2607 Rename into movtf_insn_sp32_no_fpu.
2608 (movtf_insn_hq_sp64): Delete.
2609 (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
2610 Rename into movtf_insn_sp64_hq.
2611 (movtf_insn_sp64): Delete.
2612 (movtf_insn_vis_sp64): Use register_or_zero_operand.
2613 Rename into movtf_insn_sp64.
2614 (movtf_no_e_insn_sp64): Use register_or_zero_operand.
2615 Rename into movtf_insn_sp64_no_fpu.
2616
4718bfd8
NS
26172005-05-10 Nathan Sidwell <nathan@codesourcery.com>
2618
2619 * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
2620 gcc_assert and gcc_unreachable as appropriate.
2621 (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
2622 xstormy16_output_cbranch_si, xstormy16_split_move,
2623 xstormy16_initial_elimination_offset,
2624 xstormy16_encode_section_info, xstormy16_print_operand_address,
2625 xstormy16_expand_call, xstormy16_expand_arith,
2626 xstormy16_output_shift, xstormy16_init_builtins): Likewise.
2627
bf645d6f
KH
26282005-05-10 Kazu Hirata <kazu@cs.umass.edu>
2629
2630 * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
2631 const_copies to VEC(tree,heap)*.
2632 (new_elim_graph, delete_elim_graph, elim_graph_size,
2633 elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
2634 instead of VARRAY.
2635
75b66a16
JM
26362005-05-10 Joseph S. Myers <joseph@codesourcery.com>
2637
2638 PR other/21052
2639 * doc/extend.texi (Type Attributes): Correct example syntax.
2640
8ceac9f8
JM
26412005-05-09 Joseph S. Myers <joseph@codesourcery.com>
2642
2643 PR c/21160
2644 * doc/invoke.texi (-Wuninitialized): Update documentation.
2645
4642ccb1
RE
26462005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
2647
2648 * arm.c (const_ok_for_arm): Use a faster algorithm.
2649
4a6ac6a5
DE
26502005-05-09 David Edelsohn <edelsohn@gnu.org>
2651
1ed17cd5
ZW
2652 PR target/21477
2653 * config/rs6000/rs6000.md (add_op2): New.
2654 (add<mode>3): Use it.
4a6ac6a5 2655
71a4f307
RE
26562005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
2657
2658 * arm.c (arm_gen_constant): Add new heuristic for generating
2659 constant integers that can be expressed as the difference of two
2660 valid immediates.
2661
43f6dfd3
RS
26622005-05-09 Roger Sayle <roger@eyesopen.com>
2663
2664 * c-tree.h (parser_build_unary_op): New prototype.
2665 * c-typeck.c (parser_build_unary_op): New function to construct
2666 a unary operation in the C parser.
2667 * c-parser.c (c_parser_unary_expression): Use the new function
2668 parser_build_unary_op when appropriate.
2669
32df413a
MM
26702005-05-09 Mark Mitchell <mark@codesourcery.com>
2671
2672 PR 18655
2673 * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
2674 before outputting DWARF_FRAME_RETURN_COLUMN.
2675
8d933e31
AS
26762005-05-09 Adrian Straetling <straetling@de.ibm.com>
2677
2678 * config/s390/s390.c: (s390_branch_condition_mask,
2679 s390_branch_condition_mnemonic, s390_extra_constraint_str,
2680 s390_const_ok_for_constraint_p, s390_expand_plus_operand,
2681 legitimize_pic_address, s390_emit_tls_call_insn,
2682 legitimize_tls_address, legitimize_tls_address,
2683 s390_expand_addcc, print_shift_count_operand, print_operand,
2684 addr_generation_dependency_p, annotate_constant_pool_refs,
2685 s390_split_branches, find_constant_pool_ref,
2686 replace_constant_pool_ref, s390_add_constant, s390_find_constant,
2687 s390_find_execute, s390_mainpool_start, s390_chunkify_start,
2688 s390_output_pool_entry, s390_function_value,
2689 s390_call_saved_register_used, s390_emit_call): Replace
2690 conditional aborts by gcc_assert and unconditional by gcc_unreachable.
2691 (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
2692 s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
2693 get_some_local_dynamic_name, s390_function_arg_size,
2694 s390_function_arg_advance, s390_function_arg,
2695 s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
2696 default case by gcc_unreachable.
2697 * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
2698 conditional abort by gcc_assert.
2699 ("doloop_si31"): Replace abort in last else by gcc_unreachable.
2700 ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
2701
5d81b82b
AS
27022005-05-09 Adrian Straetling <straetling@de.ibm.com>
2703
2704 * config/s390/s390.c: (s390_decompose_address,
2705 tls_symbolic_operand, legitimate_pic_operand_p,
2706 legitimate_constant_p, legitimate_reload_constant_p,
2707 s390_expand_plus_operand, legitimate_address_p,
2708 legitimate_la_operand_p, ): Remove 'register' from signature.
2709 (symbolic_reference_mentioned_p,
2710 tls_symbolic_reference_mentioned_p): Remove 'register' from local
2711 variable declarations.
2712 (legitimize_address): Remove 'register' from
2713 signature and local variable declarations.
2714
3ed99cc9
AS
27152005-05-09 Adrian Straetling <straetling@de.ibm.com>
2716
2717 * config/s390/s390-protos.h: (s390_match_ccmode,
2718 s390_match_ccmode_set, reg_used_in_mem_p,
2719 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
2720 legitimate_la_operand_p, preferred_la_operand_p,
2721 s390_short_displacement, addr_generation_dependency_p,
2722 legitimate_reload_constant_p, legitimate_address_p): Change return type
2723 into 'bool'.
1ed17cd5 2724 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
3ed99cc9
AS
2725 * config/s390/s390.c: (s390_match_ccmode,
2726 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
2727 legitimate_reload_constant_p): Change return type into 'bool'.
2728 (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
1ed17cd5 2729 Likewise. Additionally adapted comment.
3ed99cc9 2730 (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
1ed17cd5 2731 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
3ed99cc9
AS
2732 (s390_decompose_address): Change the type of the internal flags
2733 "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
2734 (struct s390_address): Change type of "pointer" into bool.
2735 * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
2736 Adapt calls for 's390_tm_ccmode' to the new signature.
2737
ab96de7e
AS
27382005-05-09 Adrian Straetling <straetling@de.ibm.com>
2739
2740 * config/s390/s390.c: (s390_match_ccmode_set,
2741 s390_branch_condition_mnemonic, s390_short_displacement,
2742 s390_decompose_address, get_thread_pointer, legitimize_tls_address,
2743 print_shift_count_operand, get_some_local_dynamic_name,
2744 get_some_local_dynamic_name_1, reg_used_in_mem_p,
2745 addr_generation_dependency_p, s390_split_branches,
2746 annotate_constant_pool_refs, find_constant_pool_ref,
2747 replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
2748 s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
2749 s390_register_info, s390_frame_info, s390_init_frame_layout,
2750 s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
2751 restore_gprs, s390_function_arg_size, s390_function_arg_float,
2752 s390_init_machine_status, s390_assemble_integer, s390_handle_option,
2753 s390_encode_section_info, s390_cannot_force_const_mem,
2754 s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
2755 s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
2756 s390_adjust_priority, s390_issue_rate,
2757 s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
2758 s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
2759 s390_build_builtin_va_list, s390_gimplify_va_arg,
2760 s390_function_ok_for_sibcall, s390_call_saved_register_used,
2761 s390_pass_by_reference, s390_fixed_condition_code_regs,
2762 s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
2763 s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
2764 s390_chunkify_cancel, s390_start_pool, s390_end_pool,
2765 s390_add_pool_insn, s390_find_pool, s390_add_constant,
2766 s390_find_constant, s390_add_execute, s390_find_execute,
2767 s390_execute_label, s390_execute_target, s390_dump_pool,
1ed17cd5 2768 s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
ab96de7e
AS
2769 Move target macro definitions to the end of the file. Move several
2770 functions within the file to assure correct compiling.
2771
29d51cdb
SB
27722005-05-09 Steven Bosscher <stevenb@suse.de>
2773
2774 * calls.c (purge_reg_equiv_notes): Remove, fold into...
2775 (fixup_tail_calls): ...here. Only look at insns between the
2776 start of the function and the FUNCTION_BEG insn note.
2777
2778 * gcse.c (one_cprop_pass): Fix typos in dumps.
2779
2780 * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
2781
ae156f85
AS
27822005-05-09 Adrian Straetling <straetling@de.ibm.com>
2783
2784 * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
2785 * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
2786 "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
2787 Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
2788 CC_REGNUM)'.
2789 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
2790 '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
2791 ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
2792 REG_SC)'.
2793
2f8f8434
AS
27942005-05-09 Adrian Straetling <straetling@de.ibm.com>
2795
2796 * config/s390/s390.md: ("gf") New mode attribute.
2797 ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
2798 "fixuns_truncsfsi2"): Merge.
2799 ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
2800 ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
2801 "fix_truncsfsi2_ieee"): Merge.
2802
f5905b37
AS
28032005-05-09 Adrian Straetling <straetling@de.ibm.com>
2804
2805 * config/s390/s390.md: ("FPR") New mode macro.
2806 ("de", "dee"): New mode attributes.
2807 ("cmpdf", "cmpsf"): Merge.
2808 ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
2809 ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
2810 ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
2811 ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
2812 ("floatdidf2", "floatdisf2"): Merge.
2813 ("adddf3", "addsf3"): Merge.
2814 ("*adddf3", "*addsf3"): Merge.
2815 ("*adddf3_cc", "*addsf3_cc"): Merge.
2816 ("*adddf3_cconly", "*addsf3_cconly"): Merge.
2817 ("*adddf3_ibm", "*addsf3_ibm"): Merge.
2818 ("subdf3", "subsf3"): Merge.
2819 ("*subdf3", "*subsf3"): Merge.
2820 ("*subdf3_cc", "*subsf3_cc"): Merge.
2821 ("*subdf3_cconly", "*subsf3_cconly"): Merge.
2822 ("*subdf3_ibm", "*subsf3_ibm"): Merge.
2823 ("muldf3", "mulsf3"): Merge.
2824 ("*muldf3", "*mulsf3" "): Merge.
2825 ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
2826 ("*fmadddf", "*fmaddsf"): Merge.
2827 ("*fmsubdf", "*fmsubsf"): Merge.
2828 ("divdf3", "divsf3"): Merge.
2829 ("*divdf3", "*divsf3"): Merge.
2830 ("*divdf3_ibm", "*divsf3_ibm"): Merge.
2831 ("negdf2", "negsf2"): Merge.
2832 ("*negdf2_cc", "*negsf2_cc"): Merge.
2833 ("*negdf2_cconly", "*negsf2_cconly"): Merge.
2834 ("*negdf2", "*negsf2"): Merge.
2835 ("*negdf2_ibm", "*negsf2_ibm"): Merge.
2836 ("absdf2", "abssf2"): Merge.
2837 ("*absdf2_cc", "*abssf2_cc"): Merge.
2838 ("*absdf2_cconly", "*abssf2_cconly"): Merge.
2839 ("*absdf2", "*abssf2"): Merge.
2840 ("*absdf2_ibm", "*abssf2_ibm"): Merge.
2841 ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
2842 ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
2843 ("*negabsdf2", "*negabssf2"): Merge.
2844 ("sqrtdf2", "sqrtsf2"): Merge.
2845
cfdb984b
AS
28462005-05-09 Adrian Straetling <straetling@de.ibm.com>
2847
1ed17cd5 2848 * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
cfdb984b
AS
2849 attribute names.
2850 * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
2851 "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
2852 ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
2853 "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
2854 attribute names.
2855 * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
2856 fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
2857 "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
2858 fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
2859 ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
2860 "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
2861 "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
2862 "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
2863 "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
2864 "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
2865 "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
2866 "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
2867 "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
2868 "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
2869 "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
2870 "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
2871 'type' value.
2872 ("*divsf3"): Additionally rename second pattern to
2873 "*divsf3_ibm".
2874 ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
2875 "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
2876 "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
2877 "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
2878 "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
2879 'type values' and rename 'type' value.
2880 ("*addsf3"): Additionally rename second pattern to
2881 "*addsf3_ibm".
2882
f337b930
AS
28832005-05-09 Adrian Straetling <straetling@de.ibm.com>
2884
2885 * config/s390/s390.md: ("SHIFT"): New mode macro.
2886 ("lr", "shift"): New mode attributes.
2887 ("ashldi3", "lshrdi3"): Merge.
2888 ("*ashldi3_31", "*lshrdi3"_31): Merge.
2889 ("*ashldi3_64", "*lshrdi3"_64): Merge.
2890 ("ashlsi3", "lshrsi3"): Merge.
2891
9a91a21f
AS
28922005-05-09 Adrian Straetling <straetling@de.ibm.com>
2893
1ed17cd5 2894 * config/s390/s390.md: ("DSI", "SCOND"): New mode
9a91a21f
AS
2895 macros.
2896 ("E", "g"): New mode attributes.
2897 ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
2898 ("*adddi3_alc", "*addsi3_alc"): Merge.
2899 ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
2900 ("*subdi3_slb", "*subsi3_slb"): Merge.
2901 ("adddicc", "addsicc"): Merge.
2902 ("*sconddi", "*scondsi"): Merge.
2903 ("*sconddi_neg", "*scondsi_neg"): Merge.
2904 ("sltu", "sgtu", "sleu", "sgeu"): Merge.
2905 ("negdi2", "negsi2"): Extract expander pattern from
2906 "negsi2" and merge with "negdi2".
2907 ("*negdi2"): Merge with instruction pattern of "negsi2".
2908 ("*negdi2_cc", "*negsi2_cc"): Merge.
2909 ("*negdi2_cconly", "*negsi2_cconly"): Merge.
2910 ("rotldi3", "rotlsi3"): Merge.
2911
f6ee577c
AS
29122005-05-09 Adrian Straetling <straetling@de.ibm.com>
2913
2914 * config/s390/s390.md: ("hc"): New mode attribute.
2915 ("extendhidi2", "extendqidi2"): Merge.
2916 ("*extendhidi2", "*extendqidi2"): Merge.
2917 ("extendhisi2", "extendqisi2"): Merge.
2918 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
2919 ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
2920 Merged 2 define_split.
2921 ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
2922 ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
2923
fa77b251
AS
29242005-05-09 Adrian Straetling <straetling@de.ibm.com>
2925
2926 * config/s390/s390.md: ("COMPARE"): New mode macro.
2927 ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
2928 "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
2929 "bungt", "bunle", "bunge", "bltgt"): Merge.
2930
342cf42b
AS
29312005-05-09 Adrian Straetling <straetling@de.ibm.com>
2932
2933 * config/s390/s390.md: ("INT"): New mode macro.
2934 ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
2935 Merge.
9db2f16d
AS
2936
29372005-05-09 Adrian Straetling <straetling@de.ibm.com>
2938
2939 * config/s390/s390.md: ("GPR", "P"): New mode macros.
2940 ("cmpdi", "cmpsi"): Merge.
2941 ("strlendi", "strlensi"): Merge.
2942 ("*strlendi", "*strlensi"): Merge.
2943 ("movmemdi", "movmemsi"): Merge.
2944 ("clrmemdi", "clrmemsi"): Merge.
2945
f52c81dd
AS
29462005-05-09 Adrian Straetling <straetling@de.ibm.com>
2947
2948 * config/s390/s390.md: ("HQI"): New mode macro.
2949 ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
2950 ("*tmhi_full", "*tmqi_full"): Merge.
2951 ("*tsthiCCT", "*tstqiCCT"): Merge.
2952 ("*tsthi", "*tstqi"): Merge.
2953 ("*tsthi_cconly", "tstqi_cconly"): Merge.
2954 ("*sethighhisi", "*sethighqisi"): Merge.
1ed17cd5 2955
c3d4c143
KH
29562005-05-09 Kazu Hirata <kazu@cs.umass.edu>
2957
2958 * crtstuff.c, integrate.h, tree-scalar-evolution.h,
2959 config/alpha/unicosmk.h, config/arc/arc.md,
2960 config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
2961 config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
2962 config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
2963 config/arm/semi.h, config/arm/uclinux-elf.h,
2964 config/arm/wince-pe.h, config/fr30/fr30.c,
2965 config/rs6000/altivec.h: Update copyright.
2966
d35d9223
NS
29672005-05-09 Nathan Sidwell <nathan@codesourcery.com>
2968
2969 * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
2970 gcc_assert and gcc_unreachable as appropriate.
2971 (pdp11_output_function_epilogue, output_move_double,
2972 output_move_quad, print_operand_address, output_jump,
2973 output_addr_const_pdp11): Likewise.
2974 * config/pdp11/pdp11.h (FUNCTION_PROFILER,
2975 ASM_OUTPUT_ALIGN): Likewise.
2976 * config/pdp11/pdp11.md: Likewise.
2977 (extendhisi2, subhi3, subqi3): Likewise.
2978
0b04d281
DE
29792005-05-09 David Edelsohn <edelsohn@gnu.org>
2980
47d96c3e 2981 PR middle-end/21237
0b04d281
DE
2982 * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
2983 to NE_EXPR case.
2984
ee30710d
KH
29852005-05-09 Kazu Hirata <kazu@cs.umass.edu>
2986
2987 * config/ia64/ia64.c: Fix a comment typo.
2988
e6fffade
RE
29892005-05-09 Richard Earnshaw <rearnsha@arm.com>
2990
2991 PR target/21397
2992 * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
2993 (arm_override_options): Use them instead of manifest constants. Don't
2994 allow -march to override the -mtune setting.
2995
292c8018
NS
29962005-05-09 Nathan Sidwell <nathan@codesourcery.com>
2997
2998 * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
2999 (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
3000 (function_arg_advance, function_arg, save_restore_insns,
3001 iq2000_expand_prologue, iq2000_output_conditional_branch,
3002 expand_one_builtin, print_operand):
3003 * config/iq2000/iq2000.md (tablejump): Likewise.
3004
880986c1
DU
30052005-05-09 David Ung <davidu@mips.com>
3006
1ed17cd5 3007 * config/mips/mips.h (processor_type): Add names for the 24K.
880986c1
DU
3008 * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
3009 processor family.
3010 * config/mips/mips.md (cnv_mode): New attribute for recording the
3011 conversion types of float convert insns.
3012 (cpu): Add 24k and 24kx.
3013 (include): Include 24k.md file.
3014 (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
3015 (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
3016 (floatdisf2): Setup cnv_mode.
3017 (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
3018 setup cnv_mode.
3019 * config/mips/24k.md: New file, contains 24k DFA pipeline
1ed17cd5 3020 description.
880986c1 3021
f5b9e7c9
NS
30222005-05-09 Nathan Sidwell <nathan@codesourcery.com>
3023
3024 * config/sh/sh.c (print_operand_address): Use gcc_assert and
3025 gcc_unreachable as appropriate.
3026 (print_operand, prepare_move_operands, prepare_scc_operands,
3027 output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
3028 gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
3029 fixup_mova, gen_far_branch, sh_reorg, split_branches,
3030 final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
3031 sh_set_return_address, sh_setup_incoming_varargs,
3032 initial_elimination_offset, sh_pch_valid_p, get_free_reg,
3033 sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
3034 check_use_sfunc_addr): Likewise.
3035 * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
3036 * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3037 * config/sh/symbian.c (sh_symbian_mark_dllexport,
3038 sh_symbian_mark_dllimport): Likewise.
3039 * config/sh/sh.md: Likewise.
3040 (movdicc, call_pop, call_value_pop, casesi_worker_1,
3041 casesi_worker_2, casesi_shift_media, casesi_load_media,
3042 return_media): Likewise.
3043
4bbcb8fc
RS
30442005-05-08 Roger Sayle <roger@eyesopen.com>
3045
3046 PR inline-asm/8788
3047 * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
3048 operands.
3049
65ab381c
RH
30502005-05-08 Richard Henderson <rth@redhat.com>
3051
3052 * config/alpha/alpha.c (adjust_address): Fix typo last change.
3053
a63569e1
SC
30542005-05-08 Stephane Carrez <stcarrez@nerim.fr>
3055
3056 * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
3057 and -1 can happen in reg_renumber when no hard register is assigned.
3058
ae3df618
SB
30592005-05-08 Steven Bosscher <stevenb@suse.de>
3060 Kazu Hirata <kazu@cs.umass.edu>
3061
3062 PR tree-optimization/14841, tree-optimization/15838
3063 * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
3064 (evaluate_stmt): Call it.
3065
0f666d6e
JJ
30662005-05-08 Jakub Jelinek <jakub@redhat.com>
3067
3068 * config/ia64/ia64.c (ia64_override_options): Don't set
3069 ia64_flag_var_tracking and clear flag_var_tracking here...
3070 (ia64_file_start): ... but here.
3071
5b482117
NS
30722005-05-08 Nathan Sidwell <nathan@codesourcery.com>
3073
3074 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
3075 and gcc_unreachable as appropriate.
3076 (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
3077 m68hc11_gen_highpart, print_operand, print_operand_address,
3078 m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
3079 m68hc11_gen_movhi): Likewise.
3080 * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
3081 * config/m68hc11/m68hc11.md: Reword comment.
3082
6e60976f
SC
30832005-05-08 Stephane Carrez <stcarrez@nerim.fr>
3084
3085 PR target/21281
3086 * config/m68hc11/predicates.md (splitable_operand): An immediate is
3087 allowed.
3088
02ee533e
SC
30892005-05-08 Stephane Carrez <stcarrez@nerim.fr>
3090
3091 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
3092 the 68HC12 address indirect addressing mode as it is not supported by
3093 bset and bclr.
5b482117
NS
3094 * config/m68hc11/m68hc11-protos.h
3095 (m68hc11_valid_addressing_p): Declare.
02ee533e
SC
3096 (m68hc11_add_mode): Declare.
3097 * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
3098 register_indirect_p and export it.
3099 (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
3100 instruction so that it is part of the good BB.
3101 (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
3102 addressing with movw.
3103 (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
3104 68HC12.
3105 * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
3106 ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
3107 * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
3108 for 68HC11.
3109 ("*movhi_68hc12"): Handle movhi_const0.
3110 ("*subhi3", "subqi3"): Use general_operand for operand 1.
3111 ("*subhi3_zext"): Likewise.
3112
011699d9
SC
31132005-05-08 Stephane Carrez <stcarrez@nerim.fr>
3114
3115 PR target/19051
5b482117
NS
3116 * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
3117 operand 1 and fix constraints.
011699d9
SC
3118 ("mulqihi3"): Use general_operand for operand 2.
3119
11176d2a
JB
31202005-05-08 Julian Brown <julian@codesourcery.com>
3121 H.J. Lu <hongjiu.lu@intel.com>
3122 Paul Brook <paul@codesourcery.com>
3123
3124 * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
3125 GNU linker. Support linker version x.x.x.x.x. Require GNU linker
3126 20050308/2.16.0 or newer for comdat group.
3127 * configure: Regenerated.
3128 * config.in: Regenerated.
3129 * varasm.c (default_function_rodata_section): Put .rodata section in
3130 COMDAT group when necessary.
3131 (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
3132 HAVE_COMDAT_GROUP.
3133 (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
3134 available.
3135
2d4d14ac
KH
31362005-05-08 Kazu Hirata <kazu@cs.umass.edu>
3137
3138 * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
3139 instead of VARRAY.
3140 * tree-flow.h (num_referenced_var, referenced_var): Likewise.
3141 * tree-into-ssa.c (mark_def_site_blocks): Likewise.
3142 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
3143 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3144
a0cd568f
SC
31452005-05-08 Stephane Carrez <stcarrez@nerim.fr>
3146
3147 PR target/16925
3148 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
3149 64-bit constants on 64-bit hosts.
3150 (m68hc11_split_logical): Simplify.
3151 (m68hc11_split_move): Likewise.
3152
232b67d9
NS
31532005-05-08 Nathan Sidwell <nathan@codesourcery.com>
3154 Paolo Bonzini <bonzini@gnu.org>
3155
3156 * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
3157 * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
3158 * configure.ac (enable_checking): Fix typos in runtime_checking.
3159 (ENABLE_RUNTIME_CHECKING): Mark as target template.
3160 (xm_file): Prepend auto-host.h
3161 (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
3162 * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
3163 tconfig.h.
3164 * crtstuff.c: Do not include auto-host.h.
3165 (IN_LIBGCC2): Do not define.
3166 * gcov-io.h: Include tconfig.h, not auto-host.h.
3167 * libgcc2.c: Do not include auto-host.h.
3168 (abort): Do not undefine.
3169 * libgcov.c: Remove unneeded comment about config.h.
3170 * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
3171 * config.in, configure: Regenerated.
1ed17cd5 3172
56daab84
NS
31732005-05-08 Nathan Sidwell <nathan@codesourcery.com>
3174 Falk Hueffner <falk@debian.org>
3175
3176 * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
3177 and gcc_unreachable as appropriate.
3178 (get_aligned_mem, get_unaligned_address,
3179 alpha_emit_set_long_const, alpha_emit_conditional_branch,
3180 alpha_emit_setcc, alpha_emit_conditional_move,
3181 alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
3182 alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
3183 alpha_expand_unaligned_load, alpha_expand_block_move,
3184 alpha_expand_zap_mask, get_trap_mode_suffix,
3185 get_round_mode_suffix, get_some_local_dynamic_name,
3186 print_operand_address, function_arg, alpha_return_in_memory,
3187 function_value, alpha_expand_builtin,
3188 alpha_initial_elimination_offset, alpha_expand_epilogue,
3189 summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
3190 alphaev5_next_group, alpha_align_insns,
3191 unicosmk_initial_elimination_offset, unicosmk_unique_section,
3192 unicosmk_ssib_name): Likewise.
3193 * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
3194 * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
3195 ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
3196 * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
3197 ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3198 * config/alpha/alpha.md (*divmodsi_internal_er,
3199 *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
3200 call_nt, call_umk, call_vms, call_value, sibcall_value,
3201 call_value_osf, call_value_nt, call_value_vms, call_value_umk,
3202 *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
3203 * config/alpha/predicates.md (input_operand): Likewise.
3204
dc759020
NS
32052005-05-08 Nathan Sidwell <nathan@codesourcery.com>
3206
44e91694
NS
3207 * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
3208 gcc_unreachable, as appropriate.
3209 (frv_function_prologue, frv_alloc_temp_reg,
3210 frv_initial_elimination_offset, frv_expand_block_move,
3211 frv_expand_block_clear, frv_print_operand_jump_hint,
3212 frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
3213 frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
3214 frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
3215 frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
3216 frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
3217 frv_in_small_data_p, frv_asm_out_constructor,
3218 frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
3219 * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
3220 *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
3221 *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
3222 sibcall_value, casesi): Likewise.
3223
dc759020
NS
3224 * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
3225 gcc_unreachable as appropriate.
3226 (print_operand_address, mn10300_print_reg_list, expand_prologue,
3227 expand_epilogue, notice_update_cc, initial_offset,
3228 mn10300_address_cost_1): Likewise.
3229 * config/mn10300/mn10300.md: Likewise.
3230 (absdf2, abssf2, negdf2, negsf2): Likewise.
3231
401d24f9
RS
32322005-05-08 Richard Sandiford <rsandifo@redhat.com>
3233
5e9ad4cf 3234 PR target/21416
401d24f9
RS
3235 * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
3236 comparisons.
3237 * config/mips/mips.md (swapped_fcond): New code macro and attribute.
3238 (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
3239 including sunge_<mode> and sungt_<mode>.
3240
6356b546
RS
32412005-05-08 Richard Sandiford <rsandifo@redhat.com>
3242
3243 * integrate.h (get_hard_reg_initial_val): Change type of register
3244 parameter from int to unsigned int.
3245 (has_hard_reg_initial_val): Likewise.
3246 * integrate.c (get_hard_reg_initial_val): Likewise.
3247 (has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
3248
88877022
KH
32492005-05-08 Kazu Hirata <kazu@cs.umass.edu>
3250
3251 * except.c (eh_status): Change the type of ttype_data to
3252 VEC(tree,gc)*.
3253 (add_ttypes_entry, assign_filter_values,
3254 output_function_exception_table): Use VEC instead of VARRAY.
3255
1e0aa44a
DE
32562005-05-07 David Edelsohn <edelsohn@gnu.org>
3257
3258 * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
3259
d7d461f7
PB
32602005-05-07 Paul Brook <paul@codesourcery.com>
3261
3262 * Makefile.in: Fix dependencies.
3263 (GCOV_IO_H, VARRAY_H): Set.
3264
d8e5117d
AG
32652005-05-07 Anthony Green <green@redhat.com>
3266
d7d461f7
PB
3267 PR bootstrap/21403
3268 * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
3269 x$STMP_FIXPROTO test.
3270 * configure: Rebuilt.
d8e5117d 3271
758cdc11
JM
32722005-05-07 Joseph S. Myers <joseph@codesourcery.com>
3273
3274 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
3275 inappropriate feature test macros if flag_iso.
3276
bdeb7efa
JM
32772005-05-07 Joseph S. Myers <joseph@codesourcery.com>
3278
3279 * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
3280
477c433d
HPN
32812005-05-07 Hans-Peter Nilsson <hp@axis.com>
3282
3ad65c8e 3283 PR target/21441
477c433d
HPN
3284 * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
3285 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
3286 Handle moved operand being in special register.
3287 ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
3288 presumed working insn.
3289 (mover2side): Add FIXME.
3290
f7239224
RS
32912005-05-07 Richard Sandiford <rsandifo@redhat.com>
3292
3293 * integrate.c (get_func_hard_reg_initial_val): Delete.
3294 (has_func_hard_reg_initial_val): Delete.
3295 (get_hard_reg_initial_val): Inline the old implementation of
3296 get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
3297 instead of has_func_hard_reg_initial_val to test for an existing
3298 pseudo. Only create an rtx if a new initial value entry is needed.
3299 (has_hard_reg_initial_val): Scan the initial value list directly.
3300 Don't create an rtx.
3301
432218ba
DE
33022005-05-07 David Edelsohn <edelsohn@gnu.org>
3303
3304 * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
3305 from extra_options.
3306 * config.in (HAVE_AS_POPCNTB): New.
3307 * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
3308 (HAVE_AS_POPCNTB): New.
3309 * configure: Regenerated.
3310 * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
3311 * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
3312 MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
3313 and rs6000_sched_costly_dep.
3314 * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
3315 (TARGET_XL_COMPAT): Delete.
3316 * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
3317 (popcount<mode>2): New.
3318 (popcntb<mode>2): New.
3319 * config/rs6000/rs6000.opt (mpopcntb): New.
3320
c1630cc5
DE
3321 * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
3322 if variable name exists.
3323
e28c7358
MK
33242005-05-07 Matt Kraai <kraai@ftbfs.org>
3325
3326 * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
3327
84f52ebd
RH
33282005-05-07 Richard Henderson <rth@redhat.com>
3329
3330 PR target/21412
3331 * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
3332 with constant offsets.
3333
f2f84cba
NS
33342005-05-07 Nathan Sidwell <nathan@codesourcery.com>
3335
3336 * config/v850/v850.c (print_operand): Use gcc_assert and
3337 gcc_unreachable, as appropriate.
3338 (print_operand_address, v850_handle_data_area_attribute,
3339 v850_encode_data_area, construct_restore_jr, construct_save_jarl,
3340 v850_insert_attributes, construct_prepare_instruction): Likewise.
3341 * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
3342 * config/v850/v850.md (movsicc, *sasf_1): Likewise.
3343
bb22512c
KH
33442005-05-07 Kazu Hirata <kazu@cs.umass.edu>
3345
3346 * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
3347 config/rs6000/rs6000.h: Fix comment typos.
3348
62d9f2e9
RS
33492005-05-07 Richard Sandiford <rsandifo@redhat.com>
3350
3351 * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
3352 * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
3353 (mips_scalar_mode_supported_p): Delete.
3354
fb8136b2
EC
33552005-05-06 Eric Christopher <echristo@redhat.com>
3356
3357 * config/mips/mips.opt: Remove -mint64 option.
3358 * config/mips/mips.c (override_options): Remove -mint64
3359 handling.
3360 * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
3361 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
3362 64-bit integer handling.
3363 * doc/invoke.texi (Option Summary): Remove -mint64 for
3364 mips.
3365
91a01f21
ZD
33662005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
3367
3368 PR tree-optimization/19401
3369 * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
3370 * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
3371 (estimated_unrolled_size): New function.
3372 (try_unroll_loop_completely, canonicalize_loop_induction_variables,
3373 tree_unroll_loops_completely): Always unroll loops if the code size
3374 does not increase.
3375 * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
3376 loops should be unrolled completely.
3377 (gate_tree_complete_unroll): Run complete unrolling unconditionally.
3378
4fbe4f91
ZD
33792005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
3380
3381 PR rtl-optimization/21254
3382 * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
3383 assumptions for loops that otherwise do not roll.
3384 (find_simple_exit): Prefer # of iterations that is guaranteed
3385 not to be infinite.
3386 * loop-unroll.c (decide_peel_once_rolling,
3387 decide_peel_completely): Check whether the loop is infinite.
3388
6245372c
PH
33892005-05-06 Pat Haugen <pthaugen@us.ibm.com>
3390
3391 * config/rs6000/sysv4.opt: Fix typo.
3392
95935e2d
DV
33932005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
3394 Jakub Jelinek <jakub@redhat.com>
3395
3396 PR target/21329
3397 * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
3398 for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
3399 Don't use rep; movs{l,q} if the repetition count is really small,
3400 instead use a sequence of movs{l,q} instructions.
3401
b8c1d4a1
JL
34022005-05-06 Jeff Law <law@redhat.com>
3403
3404 PR tree-optimization/21380
3405 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
3406 thread through a block with no preds.
3407
3d6dcb7f
KH
34082005-05-06 Kazu Hirata <kazu@cs.umass.edu>
3409
3410 * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
3411 ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
3412 add_call_read_ops): Use VEC instead of VARRAY.
3413
6e1f65b5
NS
34142005-05-06 Nathan Sidwell <nathan@codesourcery.com>
3415
3416 * config/mcore/mcore.c (mcore_print_operand_address): Use
3417 gcc_assert and gcc_unreachable as appropriate.
3418 (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
3419 mcore_output_andn, output_inline_const, mcore_output_move,
3420 mcore_output_movedouble, mcore_expand_block_move,
3421 layout_mcore_frame, mcore_initial_elimination_offset,
3422 mcore_expand_prolog, mcore_mark_dllexport,
3423 mcore_mark_dllimport): Likewise.
3424 * config/mcore/mcore.h (switch_to_section): Likewise.
3425 * config/mcore/mcore.md: Likewise.
3426
858081ad
AH
34272005-05-06 Aldy Hernandez <aldyh@redhat.com>
3428
3429 * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
3430 TARGET_PROFILE_KERNEL.
3431
3432 * config/rs6000/rs6000.c (output_profile_hook): Add comment to
3433 TARGET_PROFILE_KERNEL use.
3434
75c3cfba
NS
34352005-05-06 Nathan Sidwell <nathan@codesourcery.com>
3436
3437 * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
3438 and gcc_unreachable, as appropriate.
3439 (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
3440 m32r_expand_prologue, m32r_output_function_epilogue,
3441 m32r_legitimize_pic_address, m32r_print_operand_address,
3442 emit_cond_move, m32r_function_symbol,
3443 m32r_output_block_move): Likewise.
3444 * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
3445 * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
3446 *rev_zero_branch_insn): Likewise.
1ed17cd5 3447
46fb43a7
JJ
34482005-05-06 Jakub Jelinek <jakub@redhat.com>
3449
3450 PR c++/20961
3451 * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
3452 if both NEWDECL and OLDDECL are already weak.
3453
8ac385d9
RS
34542005-05-06 Richard Sandiford <rsandifo@redhat.com>
3455
3456 * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
3457
7d9c5aa1
R
34582005-05-05 J"orn Rennecke <joern.rennecke@st.com>
3459 Kaz Kojima <kkojima@gcc.gnu.org>
3460
3461 * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
3462 and plus_constant.
3463
78f5898b 34642005-05-05 Aldy Hernandez <aldyh@redhat.com>
7e339111 3465 David Edelsohn <edelsohn@gnu.org>
78f5898b
AH
3466
3467 * config.gcc: Add .opt magic for the rs6000 ports.
3468
3469 * doc/invoke.texi: Document -mabi= option properly. Document
3470 -misel and -mno-sel. Document -mspe and -mno-spe. Document
3471 -mvrsave and -mno-vrsave. Document deprecation of -mspe= and
3472 -misel=.
3473
3474 * config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
3475 SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
3476 TARGET_XL_COMPAT.
3477
3478 * config/rs6000/aix.opt: New.
3479 * config/rs6000/aix41.opt: New.
3480 * config/rs6000/aix64.opt: New.
3481 * config/rs6000/darwin.opt: New.
3482 * config/rs6000/linux64.opt: New.
3483 * config/rs6000/rs6000.opt: New.
3484 * config/rs6000/sysv4.opt: New.
3485
3486 * config/rs6000/sysv4.h: Delete definitions of MASK_* and
3487 associated TARGET_*. Remove SUBTARGET_OPTIONS,
3488 SUBTARGET_SWITCHES.
3489 Define TARGET_USES_SYSV4_OPT.
3490 * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
3491 * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
3492 TARGET_USES_AIX64_OPT.
3493 * config/rs6000/aix51.h: Same.
3494 * config/rs6000/aix52.h: Same.
da6098a9
AH
3495 * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
3496 MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
7e339111
DE
3497 Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
3498 Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
78f5898b
AH
3499 * config/rs6000/linux64.h: Use
3500 rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
3501
3502 * config/rs6000/rs6000.c: Remove definitions of
3503 rs6000_sched_restricted_insns_priority,
3504 rs6000_long_double_size_string, rs6000_altivec_vrsave,
3505 rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
3506 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
3507 rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
3508 rs6000_alignment_string. Define rs6000_explicit_options.
3509 (rs6000_parse_abi_options): Remove.
3510 (rs6000_parse_alignment_option): Remove.
3511 (rs6000_parse_float_gprs_option): Remove.
3512 (rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
3513 TARGET_DEFAULT_TARGET_FLAGS.
3514 (rs6000_override_options): Revamp to use new .opt machinery.
3515
3516 * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
3517 of new .opt machinery. Remove target_flags. Redefine
3518 TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
3519 SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
3520 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
3521 rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
3522 rs6000_longcall_switch, rs6000_default_long_calls,
3523 rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
3524 rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
3525 TARGET_ALTIVEC_VRSAVE.
3526
7f9a7fc3
RC
35272005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
3528
3529 * config.gcc (hppa1.1-*-rtems*): Remove.
3530 * config/pa/rtems.h: Remove.
3531
03ad4829
RC
35322005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
3533
3534 * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3535 Exclude roe/603e multilib variants.
3536
fde6858e
DC
35372005-05-04 Denis Chertykov <denisc@overta.ru>
3538
3539 PR target/21284
3540 * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
3541 for output.
3542
c54c7322
RS
35432005-05-05 Richard Sandiford <rsandifo@redhat.com>
3544
3545 * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
3546 arm/pe.opt to $extra_options.
3547 * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
3548 (target_float_abi_name, target_float_switch, target_abi_name)
3549 (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
3550 (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
3551 (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
3552 (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
3553 (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
3554 (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
3555 (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
3556 (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
3557 (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
3558 (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
3559 (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
3560 (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
3561 (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
3562 (TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
3563 (arm_pic_register_string): Delete.
3564 (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
3565 TARGET_TPCS_FRAME.
3566 (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
3567 * config/arm/coff.h (TARGET_DEFAULT): Likewise.
3568 * config/arm/elf.h (TARGET_DEFAULT): Likewise.
3569 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
3570 * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
3571 * config/arm/semi.h (TARGET_DEFAULT): Likewise.
3572 * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
3573 * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
3574 * config/arm/pe.h (TARGET_DEFAULT): Likewise.
3575 (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
3576 (SUBTARGET_SWITCHES): Delete.
3577 * config/arm/arm.c (target_float_switch): Delete.
3578 (arm_cpu_select): Moved from config/arm/arm.h.
3579 (target_fpu_name, target_fpe_name, target_float_abi_name)
3580 (target_abi_name, structure_size_string, arm_pic_register_string)
3581 (arm_select): Make static.
3582 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3583 (arm_handle_option): New function.
3584 (arm_override_options): Update target_flags checks for new mask names.
3585 Remove target_float_switch code.
3586 (arm_expand_prologue, thumb_expand_prologue): Check
3587 !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
3588 * config/arm/arm.opt, config/arm/pe.opt: New files.
3589
5e16a15b
NS
35902005-05-05 Nathan Sidwell <nathan@codesourcery.com>
3591
3592 * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
3593 gcc_unreachable as appropriate.
3594 (arc_double_limm_p, arc_setup_incoming_varargs,
3595 arc_compute_function_type, arc_output_function_prologue,
3596 arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
3597 output_shift, arc_print_operand, arc_print_operand_address,
3598 arc_final_prescan_insn): Likewise.
3599 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
3600
0354e5d8
GK
36012005-05-04 Geoffrey Keating <geoffk@apple.com>
3602
3603 * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
3604 comparing Pmode.
3605 (SDI): New.
3606 (cmp): Delete.
3607 (wd): New.
3608 (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
3609 add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
3610 clz<mode>2, ctz<mode>2, ffs<mode>2): New.
3611 (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
3612 (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
3613 (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
3614 (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
3615 (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
3616
e7716c95
PB
36172005-05-05 Paul Brook <paul@codesourcery.com>
3618
3619 * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
3620 cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
3621 regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
3622 and tree-data-ref.h with *_H variables.
3623
a78315cc
KC
36242005-05-05 Kelley Cook <kcook@gcc.gnu.org>
3625
8d9e4906 3626 * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
a78315cc 3627
68d5a1cd
KC
36282005-05-05 Kelley Cook <kcook@gcc.gnu.org>
3629
3630 * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
3631
ddfe45ef
GP
36322005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
3633
3634 * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
3635
bcb604b6
FJ
36362005-05-04 Fariborz Jahanian <fjahanian@apple.com>
3637
3638 * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
3639 setting of vrsave register for current function after
3640 call to save_world is emitted.
3641
cc73528f
HPN
36422005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
3643
3644 * config/mmix/predicates.md: New file.
3645 * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
3646 (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
3647 (mmix_foldable_comparison_operator, mmix_comparison_operator)
3648 (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
3649 * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3650 Don't define.
3651 * config/mmix/mmix.md: Include predicates.md.
3652 ("call", "call_value"): Force address to register if it isn't a
3653 mmix_symbolic_or_address_operand.
3654
66d3fe47
AM
36552005-05-04 Andrew MacLeod <amacleod@redhat.com>
3656
3657 * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
3658 the flags are of appropriate types.
3659 (num_ssa_operands): Generalize using the generic interface.
3660 * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
3661 iterator.
3662
1351ec82
RS
36632005-05-04 Richard Sandiford <rsandifo@redhat.com>
3664
3665 * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
3666 (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
3667
5ea30da0
KH
36682005-05-04 Kazu Hirata <kazu@cs.umass.edu>
3669
3670 * tree-outof-ssa.c (edge_leader, stmt_list,
3671 analyze_edges_for_bb): Use VEC instead of VARRAY.
3672 (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
3673 (perform_edge_inserts): Call init_analayze_edges_for_bb and
3674 fini_analayze_edges_for_bb.
3675
10bf9e8a
JW
36762005-05-04 James E Wilson <wilson@specifixinc.com>
3677
3678 PR driver/21112
3679 * gcc.c (process_command): In the second argv scan loop, ignore
3680 Xassembler and Xpreprocessor, along with their argument.
3681
395bda42
KH
36822005-05-04 Kazu Hirata <kazu@cs.umass.edu>
3683
3684 * tree-flow-inline.h, tree-ssa-operands.c,
3685 tree-ssa-operands.h, tree-ssa-opfinalize.h:
3686 Likewise. tree-vn.c: Fix comment typos.
3687 * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
3688
4268e4cf
PB
36892005-05-04 Paolo Bonzini <bonzini@gnu.org>
3690
3691 * doc/tm.texi (Target Hooks): Document
3692 TARGET_RESOLVE_OVERLOADED_BUILTIN.
3693
cedc99b5
PB
36942005-05-04 Paul Brook <paul@codesourcery.com>
3695
3696 * Makefile.in: Change dependencies on target.h to $(TARGET_H).
3697
887fb69b
KH
36982005-05-04 Kazu Hirata <kazu@cs.umass.edu>
3699
3700 * dwarf2out.c (incomplete_types, retry_incomplete_types,
3701 gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
3702 of VARRAY.
3703
0cc39082
KH
3704 * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
3705 get_expansion, expand_var_during_unrolling,
3706 insert_var_expansion_initialization,
3707 combine_var_copies_in_loop_exit, release_var_copies): Use VEC
3708 instead of VARRAY.
3709
5396a142
KH
3710 * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
3711 update_stmt.
3712
a7e1c928
AP
37132004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
3714
3715 PR middle-end/15618
3716 * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
3717 the same as INTEGER_TYPE.
3718 (fold_binary): Fold "bool_var != 0" to bool_var.
3719 Fold "bool_var == 1" to bool_var.
3720
fbdd0b09
RH
37212004-05-03 Richard Henderson <rth@redhat.com>
3722
3723 PR middle-end/21318
3724 * function.c (instantiate_virtual_regs_in_insn): Use the mode
3725 from recog_data instead of insn_data.
3726
2098fe9e
DD
37272005-05-03 DJ Delorie <dj@redhat.com>
3728
3729 * common.opt (fdiagnostics-show-option): No variable is needed.
3730 * diagnostic.h (diagnostic_context): Add show_option_requested flag.
3731 * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
3732 (diagnostic_report_diagnostic): Test for enabled diagnostics here.
3733 Save and restore original message format. Use flag in context
3734 instead of global.
3735 (warning): Don't test for enabled warnings here.
3736 * opts.c (common_handle_option): Handle -fdiagnostics-show-option
3737 here.
3738
9791c75c
KC
37392005-05-04 Kelley Cook <kcook@gcc.gnu.org>
3740
3741 * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
3742 * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
3743 * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
3744 * aclocal.m4: Don't include accross.m4.
3745 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3746 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3747 * configure, config.in: Regenerate.
1ed17cd5 3748
125886c7
JJ
37492005-05-04 Jakub Jelinek <jakub@redhat.com>
3750
8148fe65
JJ
3751 PR middle-end/21265
3752 * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
3753 (clear_storage): Add argument.
3754 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
3755 Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
3756 tailcall.
3757 (emit_block_move): Handle BLOCK_OP_TAILCALL method.
3758 (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
3759 (store_expr, store_constructor): Adjust callers.
3760 * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
3761 to emit_block_move if CALL_EXPR_TAILCALL (exp).
3762 (expand_builtin_memmove): Add ORIG_EXP argument, copy
3763 CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
3764 (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
3765 with EXP. Pass EXP to expand_builtin_memmove.
3766 (expand_builtin_memset): Add ORIG_EXP argument, pass
3767 BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
3768 (expand_builtin_bzero): Replace ARGLIST argument with EXP.
3769 Pass EXP to expand_builtin_memset.
3770 (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
3771 the new CALL_EXPR.
3772 (expand_builtin_strncmp): Likewise.
3773 (expand_builtin_printf): Replace ARGLIST argument with EXP.
3774 Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
3775 (expand_builtin_fprintf): Likewise.
3776 (expand_builtin): Adjust calls to
3777 expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
3778
125886c7
JJ
3779 * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
3780 item in V4SF mode.
3781
3782 PR rtl-optimization/21239
3783 * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
3784
bed133ea
KH
37852005-05-03 Kazu Hirata <kazu@cs.umass.edu>
3786
3787 * tree-flow.h (tree_ann_common_d): Move aux to ...
3788 (stmt_ann_d): ... here.
3789 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
3790 move_computations_stmt, schedule_sm): Update references to
3791 aux.
3792 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
3793
7c49fef5
KH
3794 * tree-cfg.c (remove_bb): Remove a redundant call to
3795 set_bb_for_stmt.
3796 * tree-if-conv.c (replace_phi_with_cond_modify_expr):
3797 Likewise.
3798
a5c4dfe2
RH
37992005-05-03 Richard Henderson <rth@redhat.com>
3800
3801 * config/rs6000/rs6000.c: Remove conflict markers.
3802
f34ac626
RH
3803 * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
3804
26ba801a
JW
38052005-05-03 James E Wilson <wilson@specifixinc.com>
3806
3807 * dwarf2out.c (lookup_filename): Call maybe_emit_file.
3808
ccf08a6e
DD
38092005-05-03 DJ Delorie <dj@redhat.com>
3810
3811 * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
3812 decide if the warning will be printed.
3813 * calls.c (expand_call): Likewise.
3814 * function.c (init-function_start): Likewise.
3815
3816 * common.opt (-fdiagnostics-show-option): New.
3817 * opts.c (option_enabled): Accept the option index instead of a
3818 pointer to the option descriptor.
3819 * opts.h (option_enabled): Likewise.
3820 * toplev.c (print_switch_values): Pass option index, not option
3821 descriptor.
3822 * diagnostic.h (diagnostic_info): Add option_index.
3823 * diagnostic.c: Include opts.h.
3824 (diagnostic_set_info): Initialize option_index.
3825 (diagnostic_report_diagnostic): Amend option name if appropriate.
3826 (warning): Check to see if the specified warning is enabled.
3827 Store option index.
3828 * doc/invoke.texi (-fdiagnostics-show-options): Document.
3829
6ceec593
RH
38302005-05-03 Richard Henderson <rth@redhat.com>
3831
3832 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
3833 SPEC_OR_GEN_REGS definitions.
3834
33270999
AO
38352005-05-03 Alexandre Oliva <aoliva@redhat.com>
3836
3837 PR target/16888
3838 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
3839 for unavailable registers.
3840
02f4bd12
KH
38412005-05-03 Kazu Hirata <kazu@cs.umass.edu>
3842
3843 * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
3844
804035d3
KH
3845 * cfglayout.c (block_locators_blocks,
3846 insn_locators_initialize, insn_scope): Use VEC instead of
64fe5271
KH
3847 VARRAY.
3848
3849 * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
3850 mudflap_finish_file, mudflap_finish_file): Use VEC instead of
804035d3
KH
3851 VARRAY.
3852
9bb3323d
EB
38532005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
3854
3855 * config/sparc/predicates.md (const_compl_high_operand): New.
3856 * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
3857 gen_safe_HIGH64.
3858 (sparc_emit_set_const64_quick1): Adjust for above change.
3859 (sparc_emit_set_const64_quick2): Likewise.
3860 (sparc_emit_set_const64_longway): Likewise.
3861 (sparc_emit_set_const64): Likewise.
3862 * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
3863 movdi_const64_special): Delete.
3864 (logical constant splitters): Use const_compl_high_operand.
3865
ff7c8597
RG
38662005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
3867
3868 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
3869 rather than STRIP_NOPS.
3870
85b583d3
JJ
38712005-05-03 Jakub Jelinek <jakub@redhat.com>
3872
6d34654c
JJ
3873 PR rtl-optimization/21330
3874 * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
3875 returning non-NULL.
3876 (unswitch_single_loop): Clear cinsn when retrying.
3877
85b583d3
JJ
3878 PR target/21297
3879 * config/i386/i386.c (legitimize_address): When canonicalizing
3880 ASHIFT into MULT, multiply by 1 << shift_count instead of
3881 1 << log2 (shift_count).
3882
f47c96aa
AM
38832005-05-03 Andrew MacLeod <amacleod@redhat.com>
3884
1ed17cd5 3885 * lambda-code.c (gcc_loop_to_lambda_loop,
f47c96aa
AM
3886 lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
3887 stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
3888 generic operand interface.
3889 * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
3890 * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
3891 generic operand interface.
1ed17cd5 3892 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
f47c96aa
AM
3893 link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
3894 next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
3895 num_imm_uses): Use ssa_use_operand_t.
3896 (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
3897 get_v_must_def_ops): Delete.
3898 (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
3899 (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
3900 get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
3901 get_v_must_def_kill_ptr): Delete.
3902 (delink_stmt_imm_use): Move and use new operand interface.
3903 (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
3904 op_iter_next_tree): Use new operand implementation.
3905 (clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
1ed17cd5 3906 (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
f47c96aa 3907 type check.
1ed17cd5 3908 (op_iter_next_mustdef, op_iter_next_maydef,
f47c96aa
AM
3909 op_iter_next_must_and_may_def): Delete. Replace with...
3910 (op_iter_next_maymustdef): New. Combine must and may next operations.
1ed17cd5 3911 (op_iter_init_maydef, op_iter_init_mustdef,
f47c96aa
AM
3912 op_iter_init_must_and_may_def): Use new interface.
3913 (single_ssa_tree_operand ): New. Process single operands only as trees.
3914 (single_ssa_use_operand): New. Process single operands only as uses.
3915 (single_ssa_def_operand): New. Process single operands only as defs.
3916 (zero_ssa_operands): New. Return TRUE if there are zero operands of the
3917 specified types.
3918 (num_ssa_operands): New. Count the number of specified operands.
3919 (compare_ssa_operands_equal): New. Compare two statements' operands.
3920 (single_phi_def): New. Return true if PHI has one def of the specified
3921 operand type.
3922 (op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
3923 (op_iter_init_phidef): New. Initialize the iterator for the PHI def.
3924 * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
3925 (struct stmt_ann_d): Operands field no longer require GTY().
3926 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
3927 * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
1ed17cd5 3928 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
f47c96aa 3929 dump_replaceable_exprs, rewrite_trees): Use generic interface.
1ed17cd5 3930 * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
f47c96aa
AM
3931 Use use_operand_p instead of ssa_imm_use_t *.
3932 * tree-pretty-print.c (dump_vops): check if operands are active before
3933 dumping virtual operands.
3934 * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
3935 * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
3936 (ccp_fold): Use new interface.
3937 (ccp_visit_stmt): Remove unused variables and code.
1ed17cd5 3938 (convert_to_gimple_builtin): Insert statements before calling
f47c96aa
AM
3939 mark_new_vars_to_rename.
3940 * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
3941 (copy_prop_visit_cond_stmt): Use generic interface.
1ed17cd5 3942 * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
f47c96aa
AM
3943 annotation in table.
3944 (thread_across_edge): Use generic interface.
3945 (initialize_hash_element): Initialzie with stmt, not annotation.
3946 (eliminate_redundant_computations): Use generic interface.
3947 (record_equivalences_from_stmt): Pass stmt, not annotation.
3948 (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
3949 interface.
3950 * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
1ed17cd5
ZW
3951 * tree-ssa-loop-ivopts.c (find_invariants_stmt,
3952 find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
f47c96aa
AM
3953 generic operand interface.
3954 * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
3955 interface.
3956 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
3957 Interface.
3958 * tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
1ed17cd5 3959 (build_defs, build_uses, build_v_may_defs, build_vuses,
f47c96aa
AM
3960 build_v_must_defs): Change type to struct opbuild_list_d.
3961 (ops_active): New. Operands active boolean.
3962 (operand_memory, operand_memory_index): New. Operand memory managers.
3963 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
3964 allocate_vuse_optype, allocate_v_must_def_optype): Delete.
1ed17cd5 3965 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
f47c96aa
AM
3966 Change from functions to static variable list heads.
3967 (opbuild_initialize_virtual): New. Initialize a virtual build list.
3968 (opbuild_initialize_real): New. Initialize a virtual build list.
3969 (opbuild_free): New. Free a build list.
3970 (opbuild_num_elems): New. Number of items in a list.
3971 (opbuild_append_real): New. Add a real (tree *) operand.
3972 (opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
3973 (opbuild_first): New. Return first element index in a list.
3974 (opbuild_next): New. Return next element in a list.
3975 (opbuild_elem_real): New. Return real element.
3976 (opbuild_elem_virtual): New. Return virtual element.
3977 (opbuild_elem_uid): New. Return UID of virtual element.
3978 (opbuild_clear): New. Reset an operand list.
3979 (opbuild_remove_elem): New. Remove an element form a list.
3980 (ssa_operands_active): New. Return true if operand cache is active.
3981 (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
3982 (ssa_operand_alloc): New. Allocate memory from an operand chunk.
3983 (correct_use_link): Use use_operand_p.
3984 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
1ed17cd5 3985 finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
f47c96aa 3986 (cleanup_v_may_defs): Use new implmentation.
1ed17cd5 3987 (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
f47c96aa 3988 implementation.
1ed17cd5 3989 (append_def, append_use, append_v_may_def, append_vuse,
f47c96aa 3990 append_v_must_def): Call opbuild_append routine instead of using varray.
1ed17cd5 3991 (build_ssa_operands): Simplify to simply use stmt, don't maintain a
f47c96aa
AM
3992 global parse_old_ops variable.
3993 (free_ssa_operands): New implementation.
3994 (update_stmt_operands): Move. Change argument to build_ssa_operands.
3995 (copy_virtual_operands): Move. New generic implementation.
3996 (create_ssa_artficial_load_stmt): Move. New implementation.
3997 (swap_tree_operands): Update for new implementation.
3998 (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
3999 (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
4000 rather than a varray.
4001 (verify_imm_links): Use use_operand_p.
1ed17cd5 4002 (dump_immediate_uses_for): If the immediate use variable is a virtual
f47c96aa
AM
4003 variable, show the virtual ops in the stmt.
4004 * tree-ssa-operands.h (def_operand_p): No longer a structure.
4005 (NULL_DEF_OPERAND_P): Now a #define.
4006 (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
4007 vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
4008 (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
4009 mustdef_optype_d): New. Use Linked list representation.
4010 (SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
4011 (struct ssa_operand_memory_d): New. Allocated Chunk node.
4012 (struct stmt_operands_d): Change to new pointers that are not GTY.
4013 (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
4014 STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
4015 SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
1ed17cd5 4016 STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
f47c96aa 4017 SET_V_MUST_DEF_KILL): Delete.
1ed17cd5 4018 (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
f47c96aa 4019 V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
1ed17cd5 4020 (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
f47c96aa
AM
4021 V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
4022 (enum ssa_op_iter_type): Operand iterator typechecking values.
4023 (struct ssa_operand_iterator_d): Use linked lists of operands.
4024 (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
4025 (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
4026 FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
4027 (FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
4028 (FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
4029 (FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
1ed17cd5 4030 (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
f47c96aa
AM
4031 SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
4032 * tree-ssa-opfinalize.h: New. Function templates for expansion.
4033 (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
4034 alloc_vuse, and alloc_mustdef.
1ed17cd5 4035 (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
f47c96aa
AM
4036 finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
4037 and finalize_ssa_v_must_def_ops.
4038 * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
4039 (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
4040 stmt around.
4041 (compute_avail): Use generic iterator interface.
4042 * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
1ed17cd5 4043 (stmt_makes_single_load, stmt_makes_single_store): Use
f47c96aa
AM
4044 ZERO_SSA_OPERANDS.
4045 * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
4046 (statement_sink_location): Use generic interface.
4047 * tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
4048 (delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
4049 reset the immediate use link nodes.
4050 (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
4051 * tree-ssanames.c (make_ssa_name): Use use_operand_p.
4052 * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
4053 (eliminate_tail_call): Use generic operand interface.
4054 * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
1ed17cd5 4055 (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
f47c96aa 4056 interface.
1ed17cd5 4057 * tree-vect-transform.c (update_vuses_to_preheader): Use generic
f47c96aa
AM
4058 interface.
4059 * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
4060 * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
4061 vuse_optype.
1ed17cd5 4062 (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
f47c96aa
AM
4063 Use statement pointer instead of vuse_optype. Use generic interface.
4064 * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
4065 (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
4066 * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
4067 (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
4068 * doc/tree-ssa.texi: Update documentation for operand interface.
4069
992d08b1
NS
40702005-05-03 Nathan Sidwell <nathan@codesourcery.com>
4071
4072 * config/darwin.c (machopic_define_symbol): Use gcc_assert or
4073 gcc_unreachable as appropriate.
4074 (machopic_function_base_name, machopic_indirect_data_reference,
4075 machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
4076 * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
4077 * config/rs6000/altivec.md (*mov<mode>_internal,
4078 build_vector_mask_for_load): Likewise.
4079 * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
4080 *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
4081 *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
4082 * config/rs6000/predicates.md (easy_fp_constant,
4083 logical_operand): Likewise.
4084 * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
4085 compute_save_world_info, rs6000_emit_prologue,
4086 rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
4087 * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
4088 directly.
4089
8d8e6b95
UB
40902005-05-03 Uros Bizjak <uros@kss-loka.si>
4091
4092 PR middle-end/21282
4093 * convert.c (convert_to_integer): Convert ceil and floor in
4094 c99 mode only.
4095
230215f5
GK
40962005-04-29 Geoffrey Keating <geoffk@apple.com>
4097
4098 PR target/20813
4099 * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
4100 define_insn_and_split. Split only when memory operand is
4101 offsettable. Use adjust_address rather than plus_constant.
4102 (floatunssidf2_internal): Likewise.
4103 (fix_truncdfsi2_internal): Split only when memory operand is
4104 offsettable. Use adjust_address rather than plus_constant.
4105 (fix_trunctfsi2_internal): Likewise.
4106 (floatsidf2_internal): Likewise.
4107
b565d777
DN
41082005-05-02 Diego Novillo <dnovillo@redhat.com>
4109
4110 * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
4111 (set_value_range_to_null): Likewise.
4112 (set_value_range_to_varying): New function. Use it in all
4113 call sites that used to call set_value_range (vr, VR_VARYING, ...).
4114 (extract_range_from_assert): If the integral type has a
4115 super-type, and LIMIT is not within MIN and MAX values of that
4116 type, set the resulting range to VR_VARYING.
4117
6ff59fe7
HPN
41182005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
4119
4120 * config/mmix/mmix.opt: New file.
4121 * config/mmix/mmix.h: Move options-related comments to mmix.opt.
099ff66c 4122 (mmix_cc1_ignored_option): Don't declare.
6ff59fe7
HPN
4123 (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
4124 (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
4125 (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
4126 (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
4127 (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
4128 (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
4129 (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
4130 (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
4131 Don't define.
4132 (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
4133 * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
4134 (TARGET_DEFAULT_TARGET_FLAGS): Override default.
4135
6fb58bba
JM
41362005-05-02 Joseph S. Myers <joseph@codesourcery.com>
4137
4138 PR c/15698
4139 * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
4140 * c-decl.c (current_function_prototype_built_in,
4141 current_function_prototype_arg_types): New.
4142 (merge_decls): Keep source location of prototype followed by
4143 nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
4144 (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
4145 (start_function): Always set current_function_prototype_locus,
4146 current_function_prototype_built_in and
4147 current_function_prototype_arg_types. Check for external
4148 prototype whether or not visible for external function and set
4149 current_function_prototype_arg_types accordingly.
4150 (store_parm_decls_oldstyle): Use
4151 current_function_prototype_arg_types for checking old-style
4152 definition against prototype. Give warnings only if
4153 current_function_prototype_built_in).
4154
a6e4d85b
DJ
41552005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
4156
4157 * ggc.h (ggc_alloc_zone_pass_stat): New macro.
4158 (ggc_alloc_zone_stat): Don't define.
4159 * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
4160 ggc_alloc_zone_pass_stat.
4161 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
4162 * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
4163 (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
4164
ff7f012a
DJ
41652005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
4166
4167 * calls.c (expand_call): Handle current_function_pretend_args_size
4168 when checking for sibcalls.
4169
fda05890
KH
41702005-05-02 Kazu Hirata <kazu@cs.umass.edu>
4171
4172 PR tree-optimization/21294
4173 * tree-vrp.c (vrp_expr_computes_nonzero): New.
4174 (extract_range_from_expr): Call vrp_expr_computes_nonzero.
4175
cbbf9403
JJ
41762005-05-02 Janis Johnson <janis187@us.ibm.com>
4177
4178 PR 19985
4179 * gcov-io.h: Declare gcov external functions hidden.
4180
075a0d54
KH
41812005-05-02 Kazu Hirata <kazu@cs.umass.edu>
4182
4183 * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
4184 record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
4185 Use VEC instead of VARRAY.
4186 (equiv_free): New.
4187
000b62dc
KH
4188 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
4189 out common code.
4190
58646b77
PB
41912005-05-02 Paolo Bonzini <bonzini@gnu.org>
4192
1ed17cd5
ZW
4193 * c-common.c (resolve_overloaded_builtin): Forward to target
4194 hook for BUILT_IN_MD built-ins.
4195 * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
4196 for all types of built-in.
4197 * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
4198 in the definition of the target hooks struct.
4199 * target.h (struct gcc_target): Add resolve_overloaded_builtin.
4200 * config/rs6000/altivec.h: Rewritten.
4201 * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
4202 altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
4203 rs6000_builtin_type, rs6000_builtin_type_compatible,
4204 altivec_overloaded_builtins, rs6000_builtin_type,
4205 rs6000_builtin_type_compatible): New.
4206 * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
4207 New.
4208 (def_builtin): Turn into a function. Check for duplicates and store
4209 the builtin into rs6000_builtin_decls.
4210 (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
4211 bdesc_1arg): Add overloaded builtins.
4212 (altivec_expand_builtin): Check for unresolved overloaded builtins,
4213 do not support ALTIVEC_COMPILETIME_ERROR.
4214 (rs6000_init_builtins): Add opaque 128-bit vector, and internal
4215 nodes to represent front-end types.
4216 (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
4217 with opaque arguments and/or return values.
4218 * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
4219 ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
4220 (rs6000_builtin_type_index): New.
4221 (is_ev64_opaque_type): Rename to...
4222 (rs6000_is_opaque_type): ... this.
4223 (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
4224 target hook.
58646b77 4225
2c217442
KH
42262005-05-02 Kazu Hirata <kazu@cs.umass.edu>
4227
4228 * function.c (reorder_blocks, reorder_blocks_1): Use VEC
4229 instead of VARRAY.
4230
3b9dd769
NS
42312005-05-02 Nathan Sidwell <nathan@codesourcery.com>
4232 Bernd Schmidt <bernd.schmidt@analog.com>
4233
4234 * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
4235 print_address_operand, print_operand, legitimize_pic_address,
4236 asm_conditional_branch, bfin_gen_compare, output_push_multiple,
4237 output_pop_multiple): Use gcc_assert or gcc_unreachable as
4238 appropriate.
4239 * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
4240
c9eb94f4
DN
42412005-05-02 Dorit Naishlos <dorit@il.ibm.com>
4242
4243 * doc/passes.texi: Document vectorization pass.
4244
5310bac6
KH
42452005-05-02 Kazu Hirata <kazu@cs.umass.edu>
4246
4247 * tree-scalar-evolution.c (get_exit_conditions_rec,
4248 select_loops_exit_conditions,
4249 number_of_iterations_for_all_loops,
4250 analyze_scalar_evolution_for_all_loop_phi_nodes,
4251 scev_analysis): Use VEC instead of VARRAY.
4252
b2f97e4a
MM
42532005-05-02 Michael Matz <matz@suse.de>
4254
4255 PR c++/19542
4256 * c-common.c (c_common_nodes_and_builtins): Create global null_node.
4257 (warn_strict_null_sentinel): Define.
4258 (check_function_sentinel): Check for null_node as valid sentinel too.
4259 * c-common.h (c_tree_index): Added CTI_NULL.
4260 (null_node) Define global_tree[CTI_NULL].
4261 (warn_strict_null_sentinel): Declare.
4262 * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
4263 * c.opt: (Wstrict-null-sentinel): New C++ option.
4264 * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
4265
ec234842
KH
42662005-05-01 Kazu Hirata <kazu@cs.umass.edu>
4267
4268 * gimplify.c (gimplify_compound_lval): Use VEC instead of
4269 VARRAY.
4270
26caf960
KH
4271 * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
4272
0fdc587b
KH
4273 * dwarf2out.c (decl_scope_table, push_decl_scope,
4274 pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
4275 instead of VARRAY.
4276
3a57c6cb
MM
42772005-05-01 Mark Mitchell <mark@codesourcery.com>
4278
05d475bf 4279 PR C++/14391
aee7846e
MM
4280 * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
4281 if !flag_weak.
4282 * doc/cpp.texi (__DEPRECATED): Document.
4283 (__EXCEPTIONS): Likewise.
4284 (__GXX_WEAK__): Likewise.
4285
3a57c6cb
MM
4286 * function.c (INVOKE__main): Do not define.
4287 (expand_main_function): Check HAS_INIT_SECTION when determining
4288 whether or not to call __main.
4289
1e1def1c
KH
42902005-05-01 Kazu Hirata <kazu@cs.umass.edu>
4291
4292 * tree-ssa-loop-ivopts.c: Fix a comment typo.
4293
2a86f515
PB
42942005-01-05 Paul Brook <paul@codesourcery.com>
4295
4296 * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
4297 (INITIALIZE_TRAMPOLINE): Use it.
4298 * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
4299 * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
4300 * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
4301
d8fcd085
GP
43022005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
4303
4304 * doc/install.texi (Specific): Omit dots in the @anchors names
4305 for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
4306 Omit underscores for x86_64-*-* and the "all ELF targets" entry.
4307
9be872b7
ZD
43082005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4309
4310 PR tree-optimization/18316
4311 PR tree-optimization/19126
4312 * tree.c (build_int_cst_type): Avoid shift by size of type.
4313 * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
4314 argument.
4315 * tree-scalar-evolution.h (simple_iv): Declaration changed.
4316 * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
4317 field.
4318 (dump_cand): Dump depends_on information.
4319 (determine_biv_step): Add argument to simple_iv call.
4320 (contains_abnormal_ssa_name_p): Handle case expr == NULL.
4321 (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
4322 constant.
4323 (add_candidate_1): Record depends_on for candidates.
4324 (tree_int_cst_sign_bit, constant_multiple_of): New functions.
4325 (get_computation_at, get_computation_cost_at, may_eliminate_iv):
4326 Handle ivs with nonconstant step.
4327 (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
4328 (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
4329 (create_new_iv): Unshare the step before passing it to create_iv.
4330 (free_loop_data): Free cand->depends_on.
4331 (build_addr_strip_iref): New function.
4332 (find_interesting_uses_address): Use build_addr_strip_iref.
4333 (strip_offset_1): Split the recursive part from strip_offset.
4334 Strip constant offset component_refs and array_refs.
4335 (strip_offset): Split the recursive part to strip_offset_1.
4336 (add_address_candidates): Removed.
4337 (add_derived_ivs_candidates): Do not use add_address_candidates.
4338 (add_iv_value_candidates): Add candidates with stripped constant
4339 offset. Consider all candidates with initial value 0 important.
4340 (struct affine_tree_combination): New.
4341 (aff_combination_const, aff_combination_elt, aff_combination_scale,
4342 aff_combination_add_elt, aff_combination_add,
4343 tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
4344 fold_affine_sum): New functions.
4345 (get_computation_at): Use fold_affine_sum.
4346 * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
4347 * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
4348 to simple_iv call.
4349
600f3598
MM
43502005-04-30 Michael Matz <matz@suse.de>
4351
4352 * config/i386/i386.md (movmemsi): Also active when
4353 TARGET_INLINE_ALL_STRINGOPS.
4354
f1aa042f
EB
43552005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
4356
4357 PR bootstrap/20633
4358 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
4359
4c5f9898
PB
43602005-04-30 Paul Brook <paul@codesourcery.com>
4361
4362 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
4363 thumb mode.
4364 * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
4365 * config/arm/ieee754-sf.S: Ditto.
4366 * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
4367 (FUNC_ALIAS): Use .thumb_set for thumb routines.
4368
078885f2
KH
43692005-04-30 Kazu Hirata <kazu@cs.umass.edu>
4370
4371 * tree-ssanames.c: Fix a comment typo.
4372 * doc/options.texi: Fix a typo.
4373
8c440872
NS
43742005-04-30 Nathan Sidwell <nathan@codesourcery.com>
4375
4376 * config/h8300/h8300.c (byte_reg): Use gcc_assert and
4377 gcc_unreachable as appropriate.
4378 (split_adds_subs, cond_string, print_operand,
4379 h8300_initial_elimination_offset, h8300_classify_operand,
4380 h8300_unary_length, h8300_short_immediate_length,
4381 h8300_bitfield_length, h8300_binary_length,
4382 h8300_insn_length_from_table, compute_mov_length, output_plussi,
4383 compute_plussi_length, compute_plussi_cc, output_logical_op,
4384 compute_logical_op_length, compute_logical_op_cc,
4385 output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
4386 output_a_shift, compute_a_shift_length, compute_a_shift_cc,
4387 output_a_rotate, compute_a_rotate_length, fix_bit_operand,
4388 h8300_regs_ok_for_stm): Likewise.
4389 * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
4390 monitor_prologue): Likewise.
4391
edd954e6
KH
43922005-04-30 Kazu Hirata <kazu@cs.umass.edu>
4393
4394 * loop-invariant.c (invariants, create_new_invariant,
4395 get_inv_cost, best_gain_for_invariant,
4396 find_invariants_to_move, move_invariants,
4397 init_inv_motion_data, free_inv_motion_data): Use VEC instead
4398 of VARRAY.
4399
bbf9b913
RH
44002005-04-29 Richard Henderson <rth@redhat.com>
4401
4402 * function.c (instantiate_decls): Remove valid_only argument.
4403 (instantiate_decls_1, instantiate_decl): Likewise.
4404 (instantiate_virtual_regs_1): Delete.
4405 (instantiate_virtual_regs_lossage): Delete.
4406 (instantiate_virtual_regs_in_rtx): New.
4407 (safe_insn_predicate): New.
4408 (instantiate_virtual_regs_in_insn): New.
4409 (instantiate_virtual_regs): Update to match all that. Only run
4410 instantiate_decls once.
4411
2d82317d
RH
44122005-04-29 Richard Henderson <rth@redhat.com>
4413 Daniel Jacobowitz <dan@codesourcery.com>
4414
4415 * gengtype.c (write_func_for_structure): Split out ...
4416 (output_type_enum): ... new function. Fix thinko accessing
4417 TYPE_PARAM_STRUCT data.
4418
22e8617b
TT
44192005-04-29 Tom Tromey <tromey@redhat.com>
4420
4421 * tree.c (build_block): Removed unused 'tags' argument.
4422 * tree.h (build_block): Removed argument.
4423
a68b179c
MM
44242005-04-29 Michael Matz <matz@suse.de>
4425
4426 PR rtl-optimization/21144
4427 * postreload.c (reload_cse_move2add): Check for VOIDmode.
4428
528a7d22
BW
44292005-04-29 Bob Wilson <bob.wilson@acm.org>
4430
4431 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
4432 flag_reorder_blocks.
4433
d5448566
KH
44342005-04-28 Kazu Hirata <kazu@cs.umass.edu>
4435
4436 PR tree-optimization/21030
4437 * tree-vrp.c (adjust_range_with_scev): Do not create invalid
4438 ranges where VR->MAX is smaller than VR->MIN.
4439
7dcc58cd
DP
44402005-04-29 Devang Patel <dpatel@apple.com>
4441
4442 PR tree-optimization/21272
13ea650c 4443 PR tree-optimization/21266
7dcc58cd 4444 * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
1ed17cd5 4445
be12e697
KH
44462005-04-29 Kazu Hirata <kazu@cs.umass.edu>
4447
4448 * tree-flow-inline.h: Fix a comment typo.
4449 * doc/tree-ssa.texi: Fix a typo.
4450
d566f6ef
KH
4451 * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
4452
4e81e7c2
NS
44532005-04-29 Nathan Sidwell <nathan@codesourcery.com>
4454
4455 * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
4456 gcc_unreachable as appropriate.
4457 (fr30_expand_epilogue, fr30_setup_incoming_varargs,
4458 fr30_print_operand, fr30_move_double): Likewise.
4459 * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
4460
88c6057f
MM
44612005-04-29 Mark Mitchell <mark@codesourcery.com>
4462
4463 * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
4464 definition has already been provided.
4465 (ARM_EABI_DTORS_SECTION_OP): Likewise.
4466 * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
4467 (ARM_EABI_DTORS_SECTION_OP): Likewise.
4468
9e811ecd
JT
44692005-04-29 Jim Tison <jtison@us.ibm.com>
4470
4471 * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
4472 trace hooks calls to improve performance.
4473
7abc66b1
JB
44742005-04-29 Julian Brown <julian@codesourcery.com>
4475 Mark Mitchell <mark@codesourcery.com>
4476 Paul Brook <paul@codesourcery.com>
4477
4478 * crtstuff.c: Handle targets that use .init_array.
4479 * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
4480 that INVOKE__main is set correctly.
4481 (expand_main_function): Test INVOKE__main.
4482 * libgcc2.c: Do not define __main when using .init_array.
4483 * config/arm/arm.c (arm_elf_asm_constructor): New function.
4484 * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
4485 libgcc version.
4486 (DTORS_SECTION_ASM_OP): Likewise.
4487 (CTOR_LIST_BEGIN): Define specially when in libgcc.
4488 (CTOR_LIST_END): Likewise.
4489 (DTOR_LIST_BEGIN): Likewise.
4490 (DTOR_LIST_END): Likewise.
4491 * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
4492 (FINI_SECTION_ASM_OP): Likewise.
4493 (INIT_ARRAY_SECTION_ASM_OP): Define.
4494 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
4495 * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
4496 (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
4497 * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
1ed17cd5 4498 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
7abc66b1 4499
4761e388
NS
45002005-04-29 Nathan Sidwell <nathan@codesourcery.com>
4501
4502 * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
4503 gcc_assert and gcc_unreachable as appropriate.
4504 (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
4505 const_int_cost, output_move_const_into_data_reg,
4506 output_move_qimode, output_move_double, find_addr_reg,
4507 print_operand, print_operand_address): Likewise.
4508 * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
4509 absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
4510 sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
4511 bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
4512 *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
4513 conditional_trap): Likewise.
4514 * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
4515
177b6be0
NS
45162005-04-29 Nathan Sidwell <nathan@codesourcery.com>
4517
4518 * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
4519 gcc_unreachable as appropriate.
4520 (gen_conditional_move, xtensa_split_operand_pair,
4521 xtensa_split_operand_pair, xtensa_copy_incoming_a7,
4522 xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
4523 xtensa_copy_incoming_a7, xtensa_output_literal,
4524 xtensa_output_literal, xtensa_output_literal): Likewise.
4525 * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
4526 * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
4527 *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
4528 movsicc_internal1, movsfcc_internal0,
4529 movsfcc_internal1): Likewise.
4530
21bf822e
JW
45312005-04-28 James E Wilson <wilson@specifixinc.com>
4532
4533 * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
4534 (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
4535
a45505d8
DD
45362005-04-28 DJ Delorie <dj@redhat.com>
4537
4538 * opt-functions.awk (var_set): Emit proper initializer for
4539 non-target bitfields.
4540
abdafc8e
DP
45412005-04-28 Devang Patel <dpatel@apple.com>
4542
4543 * dbxout.c (have_used_extensions): Remove.
4544 (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
4545 have_used_extensions.
1ed17cd5 4546
f995c51f
JW
45472005-04-28 James E Wilson <wilson@specifixinc.com>
4548
4549 * doc/install.texi: Update -enable-languages info. Correct path to
4550 html docs.
4551
f7f655c7
DD
45522005-04-28 DJ Delorie <dj@redhat.com>
4553
4554 * optc-gen.awk (END): Make sure no variable is defined more
4555 than once.
4556 * opth-gen.awk (END): Allocate bits on a per-variable basis.
4557 Allow for bitfield variables other than target_flags.
4558 * doc/options.text (Mask): Document that you may specify a
4559 variable other than target_flags.
4560
67468e8e
MK
45612005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
4562
4563 PR rtl-optimization/18877
4564 * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
4565 number in val.start.
4566
89955e36
DE
45672005-04-28 David Edelsohn <edelsohn@gnu.org>
4568
4569 PR target/20813
4570 * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
4571 MASK_PPC_GFXOPT.
4572 * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
4573 * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
4574 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
4575
c4db6655
RE
45762005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
4577
4578 * arm.c (legitimize_pic_address): Fix sense of assertion test for
4579 creating pseudos when the base offset is too large.
4580
60550c0c
KH
45812005-04-28 Kazu Hirata <kazu@cs.umass.edu>
4582
4583 * global.c (earlyclobber_regclass): Change the type to
4584 VEC(int,heap).
4585 (check_earlyclobber): Update uses of earlyclobber_regclass.
4586 (mark_reg_use_for_earlyclobber): Likewise.
4587 (calculate_local_reg_bb_info): Allocate and free
4588 earlyclobber_regclass using the VEC API.
4589
edcd599b
NS
45902005-04-28 Nathan Sidwell <nathan@codesourcery.com>
4591
4592 * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
4593 assert.
4594
1c91de89
KH
45952005-04-28 Kazu Hirata <kazu@cs.umass.edu>
4596
4597 * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
4598 (*targetm.foo).
4599
c261cca9
KH
4600 * config.gcc: Obsolete c4x-* and tic4x-*.
4601
15298910
KH
4602 * tree.h (edge_def): Remove.
4603
2ca202e7
KH
4604 * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
4605 function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
4606 reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
4607 JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
4608 where appropriate.
4609
fe9565ed
KH
4610 * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
4611 coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
4612 errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
4613 genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
4614 integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
4615 machmode.def, mips-tfile.c, params.c, pretty-print.c,
4616 print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
4617 tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
4618 config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
4619 config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
4620 config/i386/cygming.h, config/i386/djgpp.h,
4621 config/i386/lynx.h, config/i386/netware.c,
4622 config/i386/winnt.c, config/ia64/ia64-c.c,
4623 config/iq2000/iq2000.c, config/m32r/little.h,
4624 config/m68k/m68k-protos.h, config/m68k/m68k.h,
4625 config/m68k/m68k.md, config/mcore/mcore.c,
4626 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
4627 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
4628 config/mn10300/mn10300.h, config/ns32k/netbsd.h,
4629 config/ns32k/ns32k.c, config/ns32k/ns32k.h,
4630 config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
4631 config/pdp11/pdp11.h, config/rs6000/darwin.h,
4632 config/rs6000/default64.h, config/rs6000/rs6000-c.c,
4633 config/s390/2064.md, config/s390/2084.md,
4634 config/s390/s390-modes.def, config/s390/s390-protos.h,
4635 config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
4636 config/stormy16/stormy16.c, config/vax/vax-protos.h,
4637 config/vax/vax.c, config/vax/vax.h,
4638 config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
4639 copyright.
4640
e14a6540
JM
46412005-04-28 Joseph S. Myers <joseph@codesourcery.com>
4642
4643 * c-typeck.c (build_compound_expr): Correct logic in last change.
4644
c1bc6ca8
JW
46452005-04-27 James E. Wilson <wilson@specifixinc.com>
4646
4647 * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
4648 parameters. Replace conditional move code with assert checking for
4649 ar.lc. Delete obsolete comments.
4650 (set_src_needs_barrier): Delete cond parameter, and code using it.
4651 (rtx_needs_barrier): Delete initialization of cond. Fix typo in
4652 assert checking for PR_REGS. Fix calls to update_set_flags and
4653 set_src_needs_barrier.
4654 (group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
4655 callers. Rewrite explanatory comment before the function.
4656 (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
4657 Fix all callers.
4658
b23aee6c
MS
46592005-04-27 Mike Stump <mrs@apple.com>
4660
4661 * doc/cpp.texi: gcc now implements universal character names.
4662
47aecf47
JM
46632005-04-27 Joseph S. Myers <joseph@codesourcery.com>
4664
4665 PR c/21159
4666 * c-typeck.c (build_compound_expr): Don't warn for left-hand side
4667 being a compound expression whose right-hand side is cast to void.
4668
c7466dee
CT
46692005-04-27 Caroline Tice <ctice@apple.com>
4670
1ed17cd5 4671 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
c7466dee
CT
4672 Remove targetm.have_named_sections test.
4673 (fix_edges_for_rarely_executed_code): Likewise.
4674 (insert_section_boundary_note): Likewise.
4675 (reorder_basic_blocks): Check partitioning flag before calling
4676 verify_hot_cold_block_grouping.
4677 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
4678 the function struct rather than global variables.
4679 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
4680 (COLD_END_LABEL): Likewise
4681 (cold_text_section_label): New static global variable.
4682 (cold_end_label): Likewise.
4683 (dwarf2out_switch_text_section): Get hot/cold section labels from
4684 the function struct rather than global variables; test to make sure
4685 cfun is defined.
4686 (output_aranges): Use cold_text_section_label and cold_end_label;
4687 check partitioning flag before putting out delta.
4688 (output_ranges): Remove incorrect code attempting to use
4689 hot/cold labels.
4690 (output_line_info): Get cold section label from function struct; test
4691 to make sure cfun is defined.
4692 (add_location_or_const_value_attribute): Likewise.
4693 (dwarf2out_var_location): Likewise.
4694 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
4695 write out cold_text_section_label if partition flag is set.
4696 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
4697 * function.h (struct function): Add new fields to point to hot/cold
4698 section labels: hot_section_label, cold_section_label,
4699 hot_section_end_label and cold_section_end_label; also add new field
4700 for cold text section name, unlikely_text_section_name.
4701 * opts.c (decode_options): Turn off partitioning flag if
4702 !targetm.have_named_sections.
4703 * output.h (hot_section_label): Remove.
4704 (hot_section_end_label): Remove.
4705 (cold_section_end_label): Remove.
4706 (unlikely_section_label): Remove.
4707 (unlikely_text_section_name): Remove.
4708 * passes.c (rest_of_handle_final): Remove extra blank line.
4709 * varasm.c (unlikely_section_label): Remove.
4710 (hot_section_label): Remove.
4711 (hot_section_end_label): Remove.
4712 (cold_section_end_label): Remove.
4713 (unlikely_text_section_name): Remove.
4714 (initialize_cold_section_name): Modify to call
4715 targetm.strip_name_encoding; to store cold section name in current
4716 function struct, if it exists; and to only use the decl_section_name
4717 if flag_named_sections is true.
4718 (unlikely_text_section): Modify to get section name out of current
4719 function struct, if there is one; otherwise build it from
4720 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
4721 (in_unlikely_text_section): Likewise.
4722 (named_section): Modify to get/put cold section name in current function
4723 struct, if there is one.
4724 (function_section): Change 'bool unlikely' to 'int reloc'; check
4725 targetm.have_named_sections before calling named_section.
4726 (current_function_section): Likewise.
4727 (assemble_start_function): Modify to get/put unlikely_text_section_name
4728 in current function struct; modify to get hot/cold section labels
4729 from function struct; initialize labels using
4730 ASM_GENERATE_INTERNAL_LABEL;
4731 test partitioning flag before writing out hot section label.
4732 (assemble_end_function): Test partitioning flag before writing out
4733 hot/cold section labels.
4734 (default_section_type_flags_1): Get cold text section name from
4735 function struct if there is one; Set flags correctly for
4736 cold text section if there is not a current function struct.
1ed17cd5 4737
887da9bd
RG
47382005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
4739
4740 * tree-ssa-propagate.c (set_rhs): Revert last change.
4741
7c137931
SE
47422005-04-27 Steve Ellcey <sje@cup.hp.com>
4743
4744 * explow.c (convert_memory_address): Add gcc_assert.
4745
380e5ca4
MM
47462005-04-27 Mark Mitchell <mark@codesourcery.com>
4747
4748 * configure.ac: Check for ld --sysroot support.
4749 * gcc.c: Document %R specifier for specs.
4750 (SYSROOT_SPEC): New macro.
4751 (sysroot_spec): New variable.
4752 (static_specs): Add sysroot_spec.
4753 (main): Pass the sysroot spec to the linker if appropriate.
4754 * configure: Regenerated.
4755 * config.in: Likewise.
4756
49d76686
RG
47572005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
4758
4759 * fold-const.c (fold_binary): Use build_fold_addr_expr
4760 for address calculation and INDIRECT_REF handling.
4761
a8efb5bb
AH
47622005-04-27 Andrew Haley <aph@redhat.com>
4763
4764 * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
4765
685c9c11
NS
47662005-04-27 Nathan Sidwell <nathan@codesourcery.com>
4767
4768 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
4769 pointer when thumb backtracing is on.
4770
4771 * config/fp-bit.c (abort): Revert change.
4772
886f60ca
ILT
47732005-04-27 Ian Lance Taylor <ian@airs.com>
4774
4775 * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
4776
32cd8777
KH
47772005-04-27 Kazu Hirata <kazu@cs.umass.edu>
4778
4779 * tree-ssa-dce.c: Fix a comment typo.
4780
d0828b31
DM
47812005-04-27 David S. Miller <davem@davemloft.net>
4782
4783 * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
4784 Kill setjmpless_size. current_function_calls_setjmp is completely
4785 computed when we are called, so just use the optimized size value
4786 instead of using REG_SAVE_AREA notes.
4787 (optimize_save_area_alloca): Delete....
4788 * rtl.h (optimize_save_area_alloca): Likewise...
4789 * passes.c (rest_of_compilation): and don't call it any more.
4790 * reg-notes.def (SAVE_AREA): Delete.
1ed17cd5 4791
25b9575b
NS
47922005-04-27 Nathan Sidwell <nathan@codesourcery.com>
4793
4794 * config/fp-bit.c (abort): Add noreturn attribute.
4795
4796 * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
4797 gcc_unreachable as appropriate.
4798 (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
4799 * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
4800 ASM_OUTPUT_REG_POP): Likewise.
4801
dd248a9a
PB
48022005-04-27 Paolo Bonzini <bonzini@gnu.org>
4803
4804 * tree-complex.c (expand_vector_operations_1): Do not build
4805 VIEW_CONVERT_EXPR's for the lhs.
4806
e6d29d15
NS
48072005-04-27 Nathan Sidwell <nathan@codesourcery.com>
4808
03eb45c1
NS
4809 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
4810 unnecessary noncanonical RTL handling.
4811 * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
4812 gcc_assert and gcc_unreachable.
4813
e6d29d15
NS
4814 * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
4815 gcc_unreachable as appropriate.
4816 (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
4817 * config/arm/arm.c (arm_override_options, arm_compute_func_type,
4818 use_return_insn, const_ok_for_op, arm_gen_constant,
4819 arm_canonicalize_comparison, legitimize_pic_address,
4820 thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
4821 arm_cirrus_insn_p, cirrus_reorg, minmax_code,
4822 load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
4823 emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
4824 arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
4825 move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
4826 dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
4827 fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
4828 output_call, output_mov_long_double_fpa_from_arm,
4829 output_mov_long_double_arm_from_fpa,
4830 output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
4831 output_move_double, arithmetic_instr, shift_op, int_log2,
4832 output_return_instruction, arm_output_function_prologue,
4833 arm_output_epilogue, arm_output_function_epilogue,
4834 emit_multi_reg_push, arm_get_frame_offsets,
4835 arm_compute_initial_elimination_offset, arm_expand_prologue,
4836 arm_print_operand, arm_assemble_integer, get_arm_condition_code,
4837 arm_final_prescan_insn, arm_init_iwmmxt_builtins,
4838 arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
4839 thumb_compute_initial_elimination_offset,
4840 thumb_output_function_prologue, thumb_load_double_from_address,
4841 thumb_output_move_mem_multiple, thumb_reload_out_hi,
4842 arm_emit_vector_const, arm_dbx_register_number): Likewise.
4843 * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
4844 * config/arm/arm.md (thumb_extendhisi2,
4845 *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
4846 *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
4847 thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
4848 *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
4849 * config/arm/cirrus.md (*cirrus_arm_movdi,
4850 *cirrus_movdf_hard_insn): Likewise.
4851 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
4852
d2fce91b
KH
48532005-04-27 Kazu Hirata <kazu@cs.umass.edu>
4854
4855 * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
4856 (num_ssa_names): Use VEC_length.
4857 (ssa_names): Use VEC_index.
4858 * tree-ssanames.c (ssa_names): Change the type to
4859 VEC(tree,gc).
4860 (init_ssanames, fini_ssa_names, make_ssanames,
4861 release_ssa_name): Update uses of ssa_names.
4862
73ecddd3
KH
4863 * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
4864 Use fold_buildN instead of fold (buildN (...)).
4845b383 4865
b9f8dfba
DP
48662005-04-27 Devang Patel <dpatel@apple.com>
4867
4868 * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
4869
b20f13e9 48702005-04-27 Matt Thomas <matt@3am-software.com>
1ed17cd5 4871 Jan-Benedict Glaw <jbglaw@microdata-pos.de>
b20f13e9
MT
4872
4873 * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
4874 (vax_output_mi_thunk): Ditto.
4875 (vax_notice_cc_update): Ditto.
4876 (INDEX_REGISTER_P): Add trailing \.
4877 (BASE_REGISTER_P): Add trailing \.
4878 (legitimate_address_p): Whitespace cleanup. Remove trailing \.
4879
81d4bb2f
RG
48802005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
4881
4882 * tree-ssa-propagate.c (set_rhs): Check operand of
4883 ADDR_EXPR for gimpliness, too.
4884
a1c8251a
KH
48852005-04-27 Kazu Hirata <kazu@cs.umass.edu>
4886
4887 * tree-ssa-pre.c: Fix a comment typo.
4888
e3cc7254
ZD
48892005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
4890
4891 PR tree-optimization/21171
4892 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
4893 record address uses if the reference is volatile.
4894
c4336539
PB
48952004-04-27 Paolo Bonzini <bonzini@gnu.org>
4896
4897 * tree-complex.c (expand_vector_operation): New, extracted from
4898 expand_vector_operations_1.
4899 (tree_vec_extract): Build a NOP_EXPR.
4900 (expand_vec_parallel): Do not care about returning the correct type.
4901 (expand_vector_operations_1): Call expand_vector_operation.
4902 Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
4903
4904 * tree-complex.c (gate_expand_vector_operations): New.
4905 (pass_lower_vector_ssa): Use it.
4906 * tree-optimize.c (init_tree_optimization_passes): Include
4907 pass_lower_vector_ssa.
4908 * tree-vect-transform.c (vect_min_worthwhile_factor): New.
4909 (vectorizable_operation): Use it.
4910 * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
4911 integer modes for the vector type.
4912
4913 * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
4914 * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
4915 Do not cope with UNITS_PER_SIMD_WORD == 0.
4916 * tree-vectorizer.c (get_vectype_for_scalar_type): Check
4917 if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
4918 (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
4919 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
4920 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
4921 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
4922 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
4923
4924 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
4925 * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
4926 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
4927
4928 * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
4929 (UNITS_PER_SIMD_WORD): New.
4930
e820471b
NS
49312005-04-27 Nathan Sidwell <nathan@codesourcery.com>
4932
4933 * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
4934 gcc_unreachable as appropriate.
4935 (ia64_expand_load_address, ia64_expand_tls_address,
4936 ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
4937 ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
4938 next_scratch_gr_reg, ia64_initial_elimination_offset,
4939 ia64_expand_prologue, ia64_expand_epilogue,
4940 ia64_output_dwarf_dtprel, ia64_print_operand,
4941 ia64_register_move_cost, first_instruction, rws_access_regno,
4942 update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
4943 ia64_sched_init, ia64_variable_issue,
4944 ia64_first_cycle_multipass_dfs_lookahead_guard,
4945 ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
4946 ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
4947 process_for_unwind_directive, ia64_hpux_file_end): Likewise.
4948 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
4949 * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
4950 * config/ia64/predicates.md (got_symbolic_operand,
4951 sdata_symbolic_operand): Likewise.
4952 * config/ia64/vect.md (vcondv2sf): Likewise.
4953
fbf55580
MT
49542005-04-27 Matt Thomas <matt@3am-software.com>
4955
4956 * config/vax/vax.c (legitimate_constant_address_p): New. Formerly
e820471b 4957 CONSTANT_ADDRESS_P in config/vax/vax.h
1ed17cd5 4958 (legitimate_constant_p): Added. Formerly CONSTANT_P in vax.h.
fbf55580
MT
4959 (INDEX_REGISTER_P): New.
4960 (BASE_REGISTER_P): New.
4961 (indirectable_constant_address_p): New. Adapted from
e820471b 4962 INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
fbf55580 4963 (indirectable_address_p): New. Adapted from
e820471b 4964 INDIRECTABLE_ADDRESS_P in vax.h.
fbf55580 4965 (nonindexed_address_p): New. Adapted from
e820471b
NS
4966 GO_IF_NONINDEXED_ADDRESS in vax.h.
4967 (index_temp_p): New. Adapted from INDEX_TERM_P in vax.h.
4968 (reg_plus_index_p): New. Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
fbf55580 4969 (legitimate_address_p): New. Adapted from
e820471b 4970 GO_IF_LEGITIMATE_ADDRESS in vax.h.
fbf55580 4971 (vax_mode_dependent_address_p): New. Adapted from
e820471b 4972 GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
fbf55580 4973 * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
e820471b 4974 legitimate_constant_address_p.
fbf55580
MT
4975 (CONSTANT_P): Use legitimate_constant_p.
4976 (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
4977 (INDIRECTABLE_ADDRESS_P): Removed.
4978 (GO_IF_NONINDEXED_ADDRESS): Removed.
4979 (INDEX_TEMP_P): Removed.
4980 (GO_IF_REG_PLUS_INDEX): Removed.
e820471b
NS
4981 (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
4982 definitions, depending on whether REG_OK_STRICT is defined.
fbf55580 4983 (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
e820471b 4984 Two definitions, depending on whether REG_OK_STRICT is defined.
fbf55580 4985 * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
e820471b 4986 added.
fbf55580
MT
4987 (legitimate_constant_p): Prototype added.
4988 (legitimate_address_p): Prototype added.
4989 (vax_mode_dependent_address_p): Prototype added.
4990
5dbc71f8
KH
49912005-04-27 Kazu Hirata <kazu@cs.umass.edu>
4992
4993 * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
4994
eb3490b9
JM
49952005-04-27 Joseph S. Myers <joseph@codesourcery.com>
4996
4997 PR c/21213
4998 * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
4999 transparent union.
5000
5e49f16b
JM
50012005-04-27 Joseph S. Myers <joseph@codesourcery.com>
5002
5003 PR c/20740
5004 * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
5005 assertion failures, if __gcc_host_wide_int__ is not properly
5006 defined.
5007 (init_dynamic_diag_info): Give errors, not assertion failures, if
5008 location_t, tree or __gcc_host_wide_int__ are not properly
5009 defined.
5010
69ebd99d
KH
50112005-04-26 Kazu Hirata <kazu@cs.umass.edu>
5012
5013 * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
5014 n_iv_uses, iv_use, n_iv_cands, iv_cand,
5015 tree_ssa_iv_optimize_init, record_use, add_candidate_1,
5016 prepare_decl_rtl, free_loop_data,
5017 tree_ssa_iv_optimize_finalize): Use the VEC API instead of
5018 VARRAY.
5019
4b0ec99a
KH
5020 * tree.h (tree_phi_node): Add a comment about the order of PHI
5021 arguments.
5022
d08e2ccb
PB
50232005-04-26 Paul Brook <paul@codesourcery.com>
5024
5025 * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
5026
107a4b41
NS
50272005-04-26 Nathan Sidwell <nathan@codesourcery.com>
5028
5029 * config/mips.mips.c (mips_legitimize_tls_address): Use
5030 gcc_unreachable.
5031
5032 * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
5033 * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
5034 * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
5035
5036 * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
5037 'abort'.
5038
db30731a
JL
50392005-04-26 Jeff Law <law@redhat.com>
5040
5041 * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
5042 (op_iter_init_must_and_may_def): Likewise.
5043 (unmodifiable_var_p): Move to a later point in the file.
5044 * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
5045 * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
5046 (dse_record_phis): Directly check for virtual operands rather than
5047 using need_imm_uses_for.
5048 (dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
5049 store has multiple V_{MAY,MUST}_DEF operands.
5050
b1ca239f
AM
50512005-04-26 Andrew MacLeod <amacleod@redhat.com>
5052
107a4b41
NS
5053 * tree-cfg.c (bsi_replace): Delink immediate uses for the original
5054 stmt.
b1ca239f 5055
d0e12fc6
KH
50562005-04-26 Kazu Hirata <kazu@cs.umass.edu>
5057
5058 * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
5059 call to find_edge outside a loop to go through a PHI chain.
5060
70a390bb
RG
50612004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
5062
5063 PR tree-optimization/17598
5064 * fold-const.c (fold_binary): Fold comparisons of addresses
5065 of COMPONENT_REFs which reference the same field to
5066 comparisons of the addresses of the base objects.
5067
866af8a9
JB
50682005-04-26 Julian Brown <julian@codesourcery.com>
5069
5070 * config/arm/arm.c (arm_return_in_msb): New function.
5071 (arm_must_pass_in_stack): New function.
5072 (TARGET_RETURN_IN_MSB): Define target hook.
5073 (TARGET_MUST_PASS_IN_STACK): Define target hook.
5074 (arm_function_value): Pad small aggregate return.
5075 (arm_pad_arg_upward): New function.
5076 (arm_pad_reg_upward): New function.
5077 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
5078 (FUNCTION_ARG_PADDING): Define macro.
5079 (BLOCK_REG_PADDING): Define macro.
5080 (PAD_VARARGS_DOWN): Correct padding for AAPCS.
5081 * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
5082 (arm_pad_reg_upward): Declare function.
5083
f3522a84
KH
50842005-04-26 Kazu Hirata <kazu@cs.umass.edu>
5085
5086 * basic-block.h (ei_cond): New.
5087 (FOR_EACH_EDGE): Call ei_cond.
5088
cb4819f0
KH
5089 PR tree-optimization/21047
5090 * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
5091 (fold): Don't handle ASSERT_EXPR.
5092
c3bdeea8
RS
50932005-04-25 Roger Sayle <roger@eyesopen.com>
5094
5095 * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
5096 all writes to any stack register as a read/write dependency on
5097 FIRST_STACK_REG.
5098 (sched_analyze_2): Likewise, for reads from any stack register.
5099
21dad7e6
RH
51002005-04-25 Richard Henderson <rth@redhat.com>
5101
5102 * final.c (output_addr_const): Revert 2005-04-09 change.
5103
d6ff8575
MS
51042005-04-25 Mike Stump <mrs@apple.com>
5105
5106 * config/darwin.c (darwin_encode_section_info): Always set
5107 MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
5108
2653bb0c
KG
51092005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5110
5111 * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
5112 gensupport.c, protoize.c, toplev.c: Replace calls to
5113 `unlock_stream' with `unlock_std_streams'.
5114
1f4ea3f2
DP
51152005-04-25 Devang Patel <dpatel@apple.com>
5116
5117 * dbxout.c (dbxout_type): Emit attribute vector.
1ed17cd5 5118
ef614e8a 51192005-04-05 Paul Brook <paul@codesourcery.com>
9f62c3e3
PB
5120
5121 * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
5122 * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
5123 * config/arm/arm.c (arm_cxx_atexit_name): New function.
5124 (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
5125 * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
5126 (register_dtor_fn): Likewise.
5127 * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
5128
934790cc
ILT
51292005-04-25 Ian Lance Taylor <ian@airs.com>
5130
5131 * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
5132 * c-common.h (EXPR_STMT_EXPR): Don't define.
5133 (c_common_stmt_codes): Don't define.
5134 * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
5135 * c-gimplify.c (gimplify_expr_stmt): Remove.
5136 (c_gimplify_expr): Remove EXPR_STMT case.
5137 * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
5138 to INIT_STATEMENT_CODES.
5139 * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
5140
cc7220fd
JH
51412005-04-25 Jan Hubicka <jh@suse.cz>
5142
5143 * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
5144
5145 * except.c: Include diagnostic.h
5146 (dump_eh_tree, verify_eh_tree): New functions.
5147 * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
5148 * tree-cfg.c (tree_verify_flow_info): verify eh edges.
5149 (dump_function_to_file): dump eh tree.
5150 * tree-eh.c (mark_eh_edge): New function.
5151 (mark_eh_edge_found_error): New static variable.
5152 (verify_eh_edges): New function.
5153
2845f02a
NS
51542005-04-25 Nathan Sidwell <nathan@codesourcery.com>
5155
5156 * tree-ssa-alias.c (fieldoff_t): Remove.
5157 (fieldoff_s): typedef the structure itself. Create a vector of
5158 objects.
5159 (push_fields_onto_fieldstack): Return count of fields pushed.
5160 Remove peeling of first field. Adjust.
5161 (fieldoff_compare): Adjust.
5162 (create_overlap_variables_for): Adjust.
5163
9821b257
JM
51642005-04-25 Joseph S. Myers <joseph@codesourcery.com>
5165
5166 * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
5167
8f47c084
JM
51682005-04-25 Joseph S. Myers <joseph@codesourcery.com>
5169
5170 PR bootstrap/21215
5171 * doc/install.texi: Document correct assembler and linker to use
5172 on i?86-*-solaris2.10.
5173
81c4f554
SB
51742005-04-25 Steven Bosscher <stevenb@suse.de>
5175
5176 Fix PR tree-optimization/21173
5177
5178 * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
5179 Unshare expression we pass to force_gimple_operand.
5180
4c33cb26
R
51812005-04-25 J"orn Rennecke <joern.rennecke@st.com>
5182 Stephen Clarke <stevec@superh.com>
5183 Roger Sayle <roger@eyesopen.com>
5184
5185 PR rtl-optimization/20413
5186 * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
5187 VOIDmode for LABEL_REF.
5188 * final.c (shorten_branches): Likewise.
5189 * jump.c (mark_all_labels, redirect_exp_1): Likewise.
5190 * loop.c (reg_dead_after_loop): Likewise.
5191 * varasm.c (decode_addr_const): Likewise.
5192 * doc/rtl.texi: Document mode requirement for LABEL_REF.
5193
9469878c
RC
51942005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
5195
5196 * config.gcc (avr-*-*): Remove redundant "case".
5197
51d00891
KH
51982005-04-25 Kazu Hirata <kazu@cs.umass.edu>
5199
5200 * tree-vect-analyze.c (vect_mark_relevant): Take
5201 VEC(tree,heap) instead of varray_type as an argument.
5202 (vect_mark_stmts_to_be_vectorized): Change the type of
5203 worklist to VEC(tree,heap). Adjust uses of worklist.
5204
eb1093d3
DP
52052005-04-24 Devang Patel <dpatel@apple.com>
5206
5207 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1ed17cd5 5208
bbcfd969
ILT
52092005-04-24 Ian Lance Taylor <ian@airs.com>
5210
5211 * c-semantics.c (build_stmt): Remove test of specific tree codes
5212 for TREE_SIDE_EFFECTS handling.
5213
1fb2fbeb
PB
52142005-04-24 Per Bothner <per@bothner.com>
5215
5216 * c-opts.c (finish_options): Make the line-number of the <built-in>
5217 location 0, as assumed elsewhere, rather than 1.
5218
9c789af2
KH
52192005-04-24 Kazu Hirata <kazu@cs.umass.edu>
5220
5221 * tree-ssa-uncprop.c (equiv_stack): Change the type o
5222 VEC(tree,heap).
5223 (tree_ssa_uncprop, uncprop_finalize_block,
5224 uncprop_initialize_block): Update uses of equiv_stack.
5225
3f2960d5
RH
52262005-04-24 Richard Henderson <rth@redhat.com>
5227
5228 PR rtl-opt/21163
5229 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
5230 for SCALAR_INT_MODE_P instead of not MODE_CC before returning
5231 constm1_rtx.
5232 <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
5233 <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
5234 <DIV, MOD>: Likewise.
5235
98a3dad4
KG
52362005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5237
5238 * collect2.c (main): Unlock the stdio streams.
5239 * gcc.c (main): Likewise.
5240 * gcov-dump.c (main): Likewise.
5241 * gcov.c (main): Likewise.
5242 * gen-protos.c (main): Likewise.
5243 * gensupport.c (init_md_reader_args_cb): Likewise.
5244 * protoize.c (main): Likewise.
5245 * toplev.c (general_init): Likewise.
5246
8634c649
JJ
52472005-04-24 Jakub Jelinek <jakub@redhat.com>
5248
5249 PR middle-end/20991
5250 * cgraph.h (cgraph_local_info): Add vtable_method field.
5251 * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
5252 and node is vtable_method, finalized and not reachable, don't do
5253 anything.
5254
7da4bf7d
KH
52552005-04-24 Kazu Hirata <kazu@cs.umass.edu>
5256
5257 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
5258 COMPARISON_CLASS_P.
5259 * tree-ssa-pre.c (create_value_expr_from): Use
5260 CONSTANT_CLASS_P and REFERENCE_CLASS_P.
5261 * tree-ssa-propagate.c (stmt_makes_single_load,
5262 stmt_makes_single_store): Use REFERENCE_CLASS_P.
5263 * tree-vect-transform.c (vect_is_simple_cond): Use
5264 COMPARISON_CLASS_P.
5265 * tree-vrp.c (extract_range_from_assert,
5266 build_assert_expr_for, fp_predicate, has_assert_expr): Use
5267 COMPARISON_CLASS_P.
5268
09a3016e
KH
5269 * tree-ssa-live.c (build_tree_conflict_graph): Change the type
5270 of tpa_to_clear to VEC(int,heap). Update uses of
5271 tpa_to_clear. Free tpa_to_clear at the end.
5272
d29f81b6
AP
52732005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
5274
5275 * tree.h (TREE_THIS_VOLATILE): Document the effect on a
5276 function decl.
5277
37409796
NS
52782005-04-24 Nathan Sidwell <nathan@codesourcery.com>
5279
5280 * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
5281 and gcc_unreachable as appropriate.
5282 (num_insns_constant, output_vec_const_move,
5283 build_mask64_2_operands, rs6000_output_dwarf_dtprel,
5284 rs6000_emit_set_const, rs6000_emit_move,
5285 spe_build_register_parallel, function_arg,
5286 rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
5287 spe_expand_predicate_builtin, spe_expand_evsel_builtin,
5288 rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
5289 rs6000_common_init_builtins, expand_block_clear,
5290 expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
5291 extract_ME, rs6000_get_some_local_dynamic_name,
5292 rs6000_output_function_entry, print_operand,
5293 print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
5294 output_cbranch, output_e500_flip_gt_bit,
5295 rs6000_emit_vector_compare, rs6000_emit_vector_compare,
5296 rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
5297 compute_save_world_info, rs6000_stack_info,
5298 rs6000_emit_load_toc_table, rs6000_frame_related,
5299 spe_synthesize_frame_save, rs6000_emit_epilogue,
5300 rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
5301 output_function_profiler, rs6000_trampoline_size,
5302 rs6000_initialize_trampoline, find_addr_reg,
5303 rs6000_machopic_legitimize_pic_address,
5304 rs6000_initial_elimination_offset,
5305 rs6000_dbx_register_number): Likewise.
5306 * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
5307 *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
5308 *movti_power, *movti_string, call, call_value, sibcall,
5309 sibcall_value): Likewise.
5310 * config/rs6000/spe.md (*movdf_e500_double,
5311 *movv2si_internal): Likewise.
5312 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
5313 from comment.
5314
1272914c
RH
53152005-04-24 Richard Henderson <rth@redhat.com>
5316
5317 PR target/21101
5318 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
5319 * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
5320 Deny modes smaller than 4 bytes.
5321 * config/i386/i386-protos.h: Update.
5322
4c5bf198
RC
53232005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
5324
d076e5d2 5325 * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
4c5bf198
RC
5326 Switch h8300-*-rtems* to ELF.
5327
809c1bd7
KH
53282005-04-24 Kazu Hirata <kazu@cs.umass.edu>
5329
5330 * vec.h (VEC_safe_grow): Replace grow with safe_grow.
5331
a80769d7
KH
53322005-04-23 Kazu Hirata <kazu@cs.umass.edu>
5333
5334 * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
5335
75cf42cc
RG
53362005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
5337
5338 PR middle-end/21082
5339 * fold-const.c: Fold &a[i]-&a[j] to i-j.
5340
be1b5cba
ZD
53412005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
5342
5343 * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
5344 definitions of ssa names in condition. Split recusive part to ...
5345 (tree_simplify_using_condition_1): New function.
5346 (expand_simple_operations): New function.
5347
f5f12961
ZD
53482005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
5349
5350 * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
5351 (find_interesting_uses_cond): Do not use integer_zerop and
5352 integer_nonzerop to check for integer constants.
5353 (set_use_iv_cost): Record the value field.
5354 (determine_use_iv_cost_generic, determine_use_iv_cost_address,
5355 determine_use_iv_cost_outer): Set the value field of the cost pair.
5356 (may_eliminate_iv): Do not return the comparison code.
5357 (iv_elimination_compare): New function.
5358 (determine_use_iv_cost_condition): Set the value field. Record
5359 noneliminable invariants correctly.
5360 (rewrite_use_compare, rewrite_use_outer): Use the value field.
5361
d4ee4d25
DD
53622005-04-23 DJ Delorie <dj@redhat.com>
5363
5364 * diagnostic.c (warning): Accept parameter to classify warning option.
5365 (warning0): New, for when a pointer to an error() like function is needed.
5366 * errors.c (warning): Likewise.
5367 * errors.h (warning, warning0): Adjust prototypes.
5368 * toplev.h (warning, warning0): Likewise.
5369
5370 * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
5371 c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
5372 c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
5373 fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
5374 genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
5375 reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
5376 tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
5377 tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
5378
5379 * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
5380 config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
5381 config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
5382 config/darwin.c, config/darwin.h, config/h8300/h8300.c,
5383 config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
5384 config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
5385 config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
5386 config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
5387 config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
5388 config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
5389 config/rs6000/aix52.h, config/rs6000/darwin.h,
5390 config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
5391 config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
5392 config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
5393 config/stormy16/stormy16.c, config/v850/v850-c.c,
5394 config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
5395 callers.
1ed17cd5 5396
6800ea5c
RH
53972005-04-23 Richard Henderson <rth@redhat.com>
5398
1272914c
RH
5399 PR rtl-opt/21102
5400 * simplify-rtx.c (simplify_binary_operation): Fix mode check before
5401 performing some integral scalar simplifications.
6800ea5c 5402
bd08db74
RH
54032005-04-23 Richard Henderson <rth@redhat.com>
5404
5405 PR target/21099
5406 * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
5407 simplifying CONST_VECTOR.
5408
d0b06ef9
KH
54092005-04-23 Kazu Hirata <kazu@cs.umass.edu>
5410
5411 * tree-ssa-live.c (live_worklist): Take a stack allocated on
5412 heap as an argument. Update uses of stack.
5413 (calculate_live_on_entry): Allocate stack on heap.
5414
7df5a591
KH
5415 * tree-ssa-live.c (build_tree_conflict_graph): Allocate
5416 partition_link and tpa_nodes on heap.
5417
906532aa
KH
5418 * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
5419 (mark_stmt_necessary, propagate_necessity,
5420 mark_really_necessary_kill_operand_phis): Update uses of
5421 worklist.
5422 (tree_dce_init): Allocate worklist using VEC_alloc.
5423 (tree_dce_done): Free worklist using VEC_free.
5424
3d20d4d8
MS
54252005-04-23 Mike Stump <mrs@apple.com>
5426
5427 * config/darwin.c (machopic_indirection_name): Don't use
5428 quotes needlessly.
5429 (darwin_emit_unwind_label): Use user_label_prefix instead of
5430 "_".
5431
04c7ae48
KH
54322005-04-23 Kazu Hirata <kazu@cs.umass.edu>
5433
5434 * final.c, ipa-inline.c, varasm.c: Fix comment typos.
5435
2a186d97
HPN
54362005-04-23 Hans-Peter Nilsson <hp@axis.com>
5437
5438 * config.gcc <cris-*>: Specify .opt files.
5439 * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
5440 config/cris/linux.opt: New files.
5441 * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
5442 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
5443 (TARGET_ELF): Override to 0.
5444 (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
5445 -melinux-stacksize=N.
5446 * config/cris/cris.c: (cris_handle_option): New function.
5447 (TARGET_DEFAULT_TARGET_FLAGS): Override.
5448 (TARGET_HANDLE_OPTION): Override to cris_handle_option.
5449 (cris_override_options): Use MASK_*, not TARGET_MASK_*.
5450 * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
5451 (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
5452 (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
5453 (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
5454 (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
5455 (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
5456 (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
5457 (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
5458 (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
5459 (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
5460 (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
5461 (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
5462 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
5463 (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
5464 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
5465 (TARGET_LINUX): Define 0.
5466 (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
5467 (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
5468 (CRIS_SUBTARGET_DEFAULT): New empty default macro.
5469 * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
5470 (TARGET_LINUX): Override to 1.
5471 (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
5472
3876ed16
NS
54732005-04-23 Nathan Sidwell <nathan@codesourcery.com>
5474
5475 * haifa-sched.c (schedule_block): Fix thinko in previous
5476 assertification patch.
5477
66617831
RS
54782005-04-23 Richard Sandiford <rsandifo@redhat.com>
5479
5480 * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
5481 $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
5482 (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
5483 pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
5484 $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
5485 (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
5486 pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
5487 for hpux11.[1-9]*.
5488 * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
5489 (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
5490 (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
5491 (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
5492 (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
5493 (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
5494 (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
5495 (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
5496 (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
5497 (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
5498 (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
5499 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
5500 (SUBTARGET_OPTIONS): Delete.
5501 (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
5502 (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
5503 instead of a string.
5504 * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
5505 (pa_cpu_string, pa_unix_string): Delete.
5506 (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
5507 (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
5508 TARGET_HPUX_10_10.
5509 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
5510 (pa_handle_option): New function.
5511 (override_options): Remove handling of -march=, -mfixed-range=,
5512 -mschedule= and -munix=.
5513 * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
5514 * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
5515 * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
5516 * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
5517 * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
5518 * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
5519 * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
5520 redefining.
5521 * config/pa/pa.opt: New file.
5522 * config/pa/pa-hpux.opt: New file.
5523 * config/pa/pa-hpux1010.opt: New file.
5524 * config/pa/pa-hpux1111.opt: New file.
5525 * config/pa/pa64-hpux.opt: New file.
5526
6a47d88f
DM
55272005-04-22 David S. Miller <davem@davemloft.net>
5528
5529 * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
5530 integer when it's mode is VOIDmode not DImode.
5531
8635a919
GK
55322005-04-22 Geoffrey Keating <geoffk@apple.com>
5533
5534 * config/rs6000/rs6000.md (sync_add<mode>_internal,
5535 sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
5536 sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
5537 sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
5538 sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
5539 "bne- $-xxx" rather than local labels.
5540 (sync_lock_release<mode>): Add second operand.
5541 (lwsync): Use .long rather than a more meaningful opcode.
5542 * doc/md.texi (Standard Names): Add description of second
5543 parameter to sync_lock_test_and_set.
5544
721425b6
KH
55452005-04-23 Kazu Hirata <kazu@cs.umass.edu>
5546
5547 PR tree-optimization/21088
5548 * fold-const.c (fold_unary, fold_binary, fold_ternary):
5549 Export.
5550 * tree-vrp.c (compare_values): Use fold_binary to compare
5551 pointers. Use boolean_type_node as the type of a comparison
5552 expression being folded.
5553 * tree.h: Add prototypes for fold_unary, fold_binary,
5554 fold_ternary.
5555
a3b609df
KH
5556 * tree-ssa-dom.c: Fix formatting.
5557
84d65814
DN
55582005-04-22 Diego Novillo <dnovillo@redhat.com>
5559
5560 * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
5561 * lambda-code.c (perfect_nestify): Mark virtual operands in
5562 the moved statement for renaming.
5563 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
5564 (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
5565 * params.h (MIN_VIRTUAL_MAPPINGS): Define.
5566 (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
5567 * tree-flow.h (struct var_ann_d): Update comments.
5568 (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
5569 allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
5570 debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
5571 debug_tree_ssa_stats, rewrite_ssa_into_ssa,
5572 dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
5573 debug_names_replaced_by): Remove declarations.
5574 (delete_update_ssa, get_current_def, set_current_def): Declare.
5575 (rewrite_into_loop_closed_ssa): Add new argument. Update
5576 all callers.
5577 * tree-into-ssa.c: Include params.h.
5578 (old_virtual_ssa_names): Remove. Update all users.
5579 (need_to_replace_names_p): Remove. Update all users.
5580 (struct update_ssa_stats_d): Declare.
5581 (update_ssa_stats): New local.
5582 (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
5583 dump_tree_ssa_stats, debug_tree_ssa_stats,
5584 dump_update_ssa, debug_update_ssa,
5585 dump_names_replaced_by, debug_names_replaced_by): Declare.
5586 (get_current_def, set current_def): Make extern.
5587 (is_old_name, is_new_name): Protect against references
5588 past the end of the sets.
5589 (add_new_name_mapping): Assert that OLD and NEW are
5590 different SSA names for the same symbol.
5591 When adding a virtual mapping, update stats for virtual
5592 mapping heuristic.
5593 (insert_phi_nodes_for): If UPDATE_P is true, create the
5594 LHS of the new PHI by duplicating SSA name VAR.
5595 (insert_phi_nodes_1): Remove. Update all users.
5596 (insert_phi_nodes): Remove second argument. Update all
5597 users.
5598 (maybe_replace_use, maybe_replace_def): New.
5599 (rewrite_update_stmt): Call them.
5600 (mark_def_interesting): Remove calls to is_gimple_reg.
5601 (prepare_phi_args_for_update): Remove. Update all users.
5602 (prepare_block_for_update): Only process virtual operands
5603 and GIMPLE registers in normal form.
5604 (prepare_use_sites_for): New.
5605 (prepare_names_to_update): Rename from prepare_def_sites.
5606 Call prepare_use_sites_for.
5607 (dump_update_ssa): Rename from dump_repl_tbl.
5608 Update all users.
5609 Show statistics for virtual mapping heuristic.
5610 (debug_update_ssa): Rename from debug_debug_repl_tbl.
5611 (init_update_ssa): Initialize UPDATE_SSA_STATS.
5612 (delete_update_ssa): Make extern.
5613 (mark_set_for_renaming): If the set is empty, do nothing.
5614 (release_ssa_name_after_update_ssa): Update comment.
5615 (insert_updated_phi_nodes_for): Do not remove existing
5616 PHI nodes for symbols.
5617 (switch_virtuals_to_full_rewrite_p): New.
5618 (switch_virtuals_to_full_rewrite): New.
5619 (update_ssa): Call them.
5620 Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
5621 for every statement before updating.
5622 If all the names in NEW_SSA_NAMES have been marked for
5623 removal, do nothing.
5624 Only start at the top of the CFG if there are symbols in
5625 SYMS_TO_RENAME.
5626 (ssa_rewrite_finalize_block): Remove.
5627 (ssa_register_new_def): Remove.
5628 (ssa_rewrite_stmt): Remove.
5629 (ssa_rewrite_phi_arguments): Remove.
5630 (ssa_rewrite_initialize_block): Remove.
5631 (ssa_mark_def_sites): Remove.
5632 (ssa_mark_def_sites_initialize_block): Remove.
5633 (ssa_mark_phi_uses): Remove.
5634 (rewrite_ssa_into_ssa): Remove.
5635 * tree-phinodes.c (find_phi_node_for): Remove.
5636 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
5637 Call update_ssa.
5638 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
5639 Remove calls to verify_dominators and
5640 verify_loop_structure.
5641 (tree_unswitch_single_loop): Call update_ssa.
5642 * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
5643 returns false.
5644 Call verify_stmts.
5645 (delete_tree_ssa): Assert that need_ssa_update_p returns
5646 false.
5647 * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
5648 * tree-vectorizer.c (allocate_new_names, rename_def_op,
5649 free_new_names): Remove. Update all users.
5650 (rename_use_op): Call get_current_def.
5651 (rename_variables_in_bb): Do not handle any real or
5652 virtual definition.
5653 (slpeel_update_phis_for_duplicate_loop): Call
5654 get_current_def and set_current_def instead of using
5655 SSA_NAME_AUX.
5656 (slpeel_update_phi_nodes_for_guard2): Reformat comments.
5657 (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
5658 ssa_names_to_replace and delete_update_ssa.
5659 * doc/invoke.texi: Document --param min-virtual-mappings
5660 and --param virtual-mappings-ratio.
5661
0c0266d2 56622005-04-22 Diego Novillo <dnovillo@redhat.com>
84d65814
DN
5663
5664 * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
5665 for newly created PHI nodes.
5666 Call create_new_def_for for every new V_MAY_DEF and
5667 V_MUST_DEF on the copied statement.
5668 (struct ssa_name_map_entry): Remove.
5669 (ssa_name_map_entry_hash): Remove.
5670 (ssa_name_map_entry_eq): Remove.
5671 (allocate_ssa_names): Remove.
5672 (rewrite_to_new_ssa_names_def): Remove.
5673 (rewrite_to_new_ssa_names_use): Remove.
5674 (rewrite_to_new_ssa_names_bb): Remove.
5675 (rewrite_to_new_ssa_names): Remove.
5676 (tree_duplicate_sese_region): Remove variables ver,
5677 definitions, phi, ssa_name_map and bi.
5678 Call need_ssa_update_p instead of any_marked_for_rewrite_p.
5679 Call update_ssa.
5680 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
5681 update_ssa instead of rewrite_ssa_into_ssa.
5682 * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
5683 create_new_def_for.
5684 (find_uses_to_rename_use): Add argument 'need_phis'.
5685 (find_uses_to_rename_stmt): Do not scan virtual operands.
5686 (find_uses_to_rename): Only scan PHI nodes for
5687 non-virtual names.
5688 (rewrite_into_loop_closed_ssa): Call update_ssa.
5689 (check_loop_closed_ssa_use): Ignore virtual operands.
5690 (check_loop_closed_ssa_stmt): Likewise.
5691 (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
5692 NULL.
5693 (rename_variables, set_phi_def_stmts): Remove.
5694 (tree_duplicate_loop_to_header_edge): Reformat comment.
5695 Remove variables BB, I and DEFINITIONS.
5696 Call need_ssa_update_p.
5697 Call update_ssa.
5698 (lv_adjust_loop_header_phi): Reformat comment.
5699 * tree-ssanames.c (ssa_names_to_rewrite): Remove.
5700 (marked_for_rewrite_p, any_marked_for_rewrite_p,
5701 mark_for_rewrite, unmark_all_for_rewrite,
5702 marked_ssa_names): Remove. Update all users.
5703 (release_ssa_name): If VAR has been registered for SSA
5704 updating, do nothing.
5705 * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
5706 (build_assert_expr_for): Call register_new_name_mapping.
5707 (insert_range_assertions): Update call to update_ssa.
5708 * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
5709 marked_for_rewrite_p, any_marked_for_rewrite_p,
5710 marked_ssa_names): Remove.
5711
74d2efc7
JL
57122005-04-22 Jeff Law <law@redhat.com>
5713
5714 * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
5715 (restore_currdefs_to_original_value): Likewise.
5716 (register_definitions_for_stmt): Likewise.
5717 (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
5718 for each variable. Do not allocate/free block_defs_stack either.
5719 Do not iterate if we just thread jumps. Only iterate if the
5720 tree_cleanup_cfg does useful work (temporary).
5721 (dom_opt_initialize_block): No longer push a marker on
5722 BLOCK_DEFS_STACK.
5723 (dom_opt_finalize_block): Removal call to restore currdefs.
5724 Relax restrictions for recording edge equivalences.
5725 (record_equivalences_from_phis): No longer need to track
5726 CURRENT_DEF.
5727 (optimize_stmt): Similarly.
5728 (thread_across_edge): Simplify by removing the requirement that
5729 statements in the block we are threading through must be nops.
5730 (initialize_hash_element): Handle GOTO_EXPR.
5731
ca075703
DM
57322005-04-22 David S. Miller <davem@davemloft.net>
5733
5734 * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
5735 CONST_DOUBLE_HIGH.
5736 * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
5737 fix check on CONST_DOUBLE mode. It should be VOIDmode
5738 when it is representing an integer.
5739
535a42b1
NS
57402005-04-22 Nathan Sidwell <nathan@codesourcery.com>
5741
5742 * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
5743 'abort'. Use gcc_assert and gcc_unreachable as appropriate.
1ed17cd5 5744 * c-format.c (get_constant, decode_format_attr, get_flag_spec,
535a42b1
NS
5745 find_char_info_specifier_index,
5746 find_length_info_modifier_index): Likewise.
5747 * c-typeck.c (composite_type, pop_init_level): Likewise.
5748 * combine.c (cant_combine_insn_p, try_combine): Likewise.
5749 * cse.c (cse_insn): Likewise
5750 * dominance.c (calc_dfs_tree): Likewise
5751 dwarf2out.c (loc_descriptor_from_tree_1,
5752 add_abstract_origin_attribute, force_decl_die,
5753 force_type_die): Likewise
5754 emit-rtl.c (operand_subword_force): Likewise
5755 explow.c (hard_function_value): Likewise
5756 expmed.c (store_bit_field, expand_divmod,
5757 emit_store_flag_force): Likewise
5758 expr.c (emit_move_multi_word, store_expr,
5759 expand_expr_real_1): Likewise
5760 final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
5761 output_operand): Likewise
5762 flow.c (recompute_reg_usage): Likewise
1ed17cd5 5763 * function.c (assign_stack_temp_for_type, assign_temp,
535a42b1
NS
5764 handle_epilogue_set): Likewise
5765 * genextract.c (main): Likewise
5766 * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
5767 gimplify_modify_expr_rhs, gimplify_expr): Likewise
5768 * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
5769 ready_remove, rm_line_notes, rm_other_notes,
5770 schedule_block): Likewise
5771 mips-tfile.c (copy_object, out_of_bounds): Likewise
5772
98c41d98
DE
57732005-04-22 David Edelsohn <edelsohn@gnu.org>
5774
5775 PR target/20813
5776 * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
5777 * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
5778 rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
5779 (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
5780 TARGET_XL_COMPAT.
5781 * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
5782
e6ef8d81
NS
57832005-04-22 Nathan Sidwell <nathan@codesourcery.com>
5784
5785 * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
5786 (gcc_tree_to_linear_expression): Convert to heap allocated
5787 vectors.
5788 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
5789 lbv_to_gcc_expression, lle_to_gcc_expression,
1ed17cd5 5790 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
e6ef8d81
NS
5791 perfect_nestify): Likewise.
5792 lambda.h (gcc_loopnest_to_lambda_loopnest,
5793 lambda_loopnest_to_gcc_loopnest): Likewise.
5794 tree-loop-linear.c (linear_transform_loops): Likewise.
5795
8ca864d2
EB
57962005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
5797
5798 * config/sparc/predicates.md (arith_double_operand): Use
5799 trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
5800 * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
5801 (DImode, DFmode constant splitters): Likewise. Remove code for
5802 TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
5803 (logical constant splitters): Use const_int_operand predicate.
5804 (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
5805 HOST_BITS_PER_WIDE_INT < 64.
5806
144d51f9
NS
58072005-04-22 Nathan Sidwell <nathan@codesourcery.com>
5808
5809 * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
5810 gcc_unreachable as appropriate.
5811 (force_mode, emit_move_sequence, singlemove_string,
5812 output_move_double, output_fp_move_double, find_addr_reg,
5813 output_block_move, output_block_clear, output_and,
5814 output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
5815 pa_adjust_cost, pa_issue_rate, print_operand,
5816 output_global_address, output_arg_descriptor, output_cbranch,
5817 output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
5818 output_call): Likewise.
5819 * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
5820 prefetch, prefetch_cc, prefetch_nocc): Likewise.
5821
9885da8e
ZD
58222005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
5823
5824 * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
5825 _gcov_pow2_profiler and _gcov_one_value_profiler.
5826 (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
5827 (GTFILES): Add $(srcdir)/tree-profile.c.
5828 * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
5829 __gcov_one_value_profiler): Declare.
5830 * gimplify.c (force_gimple_operand): Check whether the statements
5831 should be produced in ssa form.
5832 (force_gimple_operand_bsi): New function.
5833 * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
5834 __gcov_one_value_profiler): New functions.
5835 * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
5836 the profiled value is a power of two or not.
5837 * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
5838 * tree-flow.h (in_ssa_p): Declare.
5839 (force_gimple_operand_bsi): Declare.
5840 * tree-into-ssa.c (in_ssa_p): New variable.
5841 (rewrite_into_ssa): Set in_ssa_p.
5842 * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
5843 * tree-profile.c: Include ggc.h and gt-tree-profile.h.
5844 (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
5845 tree_one_value_profiler_fn): New variables.
5846 (tree_init_edge_profiler): Initialize the profiler function decls.
5847 (tree_gen_edge_profiler): Use global gcov_type_node.
5848 (prepare_instrumented_value): New function.
5849 (tree_gen_interval_profiler, tree_gen_interval_profiler,
5850 tree_gen_one_value_profiler): Call the library functions instead of
5851 creating instrumentation code.
5852 * tree.c (build_fn_decl): New function.
5853 * tree.h (build_fn_decl): Declare.
5854 * value-prof.c (rtl_divmod_values_to_profile,
5855 rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
5856 tree_mod_pow2_value_transform, tree_find_values_to_profile):
5857 Do not handle may_be_other and precise values of exponents at pow2
5858 profiler.
5859 (tree_mod_subtract_transform): Reflect that value field of
5860 histogram has changed meaning.
5861 (tree_divmod_values_to_profile): Record the values correctly.
5862 (tree_values_to_profile): Update comment.
5863 * value-prof.h (struct histogram_value_t): Remove pow2 data.
5864
ebccb65d
JM
58652005-04-22 Joseph S. Myers <joseph@codesourcery.com>
5866
5867 * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
5868 (decl).
5869
7637e42c
NS
58702005-04-22 Nathan Sidwell <nathan@codesourcery.com>
5871
5872 * config/i386/i386.md (length_immediate): Use gcc_assert or
5873 gcc_unreachable, as appropriate.
5874 (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
5875 *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
5876 *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
5877 *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
5878 *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
5879 *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
5880 *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
5881 *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
5882 *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
5883 *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
5884 *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
5885 *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
5886 pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
5887 pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
5888 *prefetch_sse_rex): Likewise.
5889 * config/i386/predicates.md (x86_64_immediate_operand,
5890 x86_64_zext_immediate_operand, symbolic_operand,
5891 no_seg_address_operand, aligned_operand,
5892 memory_displacement_operand): Likewise.
5893 * config/i386/sse.md (*mov<mode>_internal,
5894 *movv2df_internal): Likewise.
5895
ca31b95f
JH
58962005-04-22 Jan Hubicka <jh@suse.cz>
5897
5898 * Makefile.in (ipa.o, ipa-inline.o): New files.
5899 * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
5900 cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
5901 cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
7637e42c
NS
5902 * cgraphunit.c (cgraph_default_inline_p,
5903 cgraph_decide_inlining_incrementally, ncalls_inlined,
1ed17cd5 5904 nfunctions_inlined, initial_insns, overall_insns,
ca31b95f
JH
5905 cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
5906 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5907 cgraph_mark_inline, cgraph_check_inline_limits,
5908 cgraph_default_inline_p, cgraph_recursive_inlining_p,
5909 update_callee_keys, lookup_recursive_calls,
5910 cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
5911 cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
5912 cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
5913 pass_ipa_inline): Move to ipa-inline.c
5914 (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
5915 * ipa.c: New file.
5916 * ipa-inline.c: New file.
5917
6e32e5b9
EB
59182005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
5919
5920 * doc/invoke.texi (SPARC options): Document that -mapp-regs
5921 is turned off by default on Solaris.
5922
dbb74365
RS
59232005-04-21 Roger Sayle <roger@eyesopen.com>
5924
5925 * c-common.h (objc_build_method_signature): Update prototype.
5926 * stub-objc.c (objc_build_method_signature): Update the stub
5927 implementation to accept and ignore additional parameter.
5928 * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
5929 the value of ellipsis to objc_build_method_signature instead
5930 of setting TREE_OVERFLOW on the parms TREE_LIST node.
5931
915167f5
GK
59322005-04-21 Geoffrey Keating <geoffk@apple.com>
5933
5934 * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
5935 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
5936 gen_rtx_* not gen_rtx_fmt_*.
5937 (rs6000_emit_vector_select): Likewise.
5938 (rs6000_emit_sync): New.
5939 * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
5940 (larx, stcx, cmp): New mode substitutions.
5941 (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
5942 UNSPEC_ISYNC): New constants.
5943 (rlwinm): Give name.
5944 (memory_barrier, isync, lwsync): New insns.
5945 (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
5946 (sync_lock_release<mode>): New expander.
5947 (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
5948 sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
5949 sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
5950 sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
5951 sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
5952 sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
5953 (sync_add<mode>_internal, sync_addshort_internal,
5954 sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
5955 sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
5956 sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
5957
5958 * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
5959 is the memory before, not after, the operation. Clarify
5960 barrier requirements.
5961
0e61db61
NS
59622005-04-21 Nathan Sidwell <nathan@codesourcery.com>
5963
5964 * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
5965 * lambda.h (lambda_vector_min_nz): Likewise.
5966 * langhooks.h (struct lang_hooks_for_types,
5967 struct lang_hooks): Likewise.
5968 * output.h (assemble_integer, this_is_asm_operands): Likewise.
5969 * tree.h: Likewise.
5970 * vec.h: Likewise.
5971 * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
1ed17cd5 5972
0e61db61
NS
5973 * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
5974 comments to avoid 'abort'. Use gcc_assert as necessary.
5975 * opts.c (common_handle_option): Likewise.
5976 * pretty-print.c (pp_base_format_text): Likewise.
5977 * print-rtl.c (print_rtx): Likewise.
5978 * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
5979 * regmove.c (try_auto_increment): Likewise.
5980 * reload.c (find_valid_class, find_reloads_toplev,
5981 find_equiv_reg): Likewise.
1ed17cd5 5982 * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
0e61db61
NS
5983 merge_assigned_reloads): Likewise.
5984 * tree-inline.c (inline_forbidden_p_1,
5985 estimate_num_insns_1): Likewise.
5986 * tree-optimize.c (execute_todo): Likewise.
5987 * tree-outof-ssa.c (eliminate_phi): Likewise.
5988 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
5989 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
5990 * tree-ssa-operands.c (parse_ssa_operands,
5991 get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
5992 * tree-ssa-pre.c (find_or_generate_expression): Likewise.
5993 * tree-ssanames.c (release_ssa_name): Likewise.
1ed17cd5 5994 * tree.c (int_bit_position, int_byte_position, tree_low_cst,
0e61db61
NS
5995 walk_tree): Likewise.
5996
5997 * tree-ssa-operands.c (verify_abort): Fold into ..
5998 (verify_imm_links): ... here.
5999
aa0f9c73
RH
60002005-04-21 Richard Henderson <rth@redhat.com>
6001
6002 * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
6003 on non-memory operand for previous inversion.
6004
1c280337
DP
60052005-04-21 Devang Patel <dpatel@apple.com>
6006
6007 PR optimization/20994
6008 * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
6009 x = !(a == b) : p , q;.
6010 (pass_if_conversion): Verify stmts and flow.
1ed17cd5 6011
41806d92
NS
60122005-04-21 Nathan Sidwell <nathan@codesourcery.com>
6013
de3eb46f
NS
6014 * optabs.c (gen_conditional_trap): Restore #define.
6015
41806d92
NS
6016 * alias.c (true_dependence): Remove 'abort' from comments. Use
6017 gcc_assert and gcc_unreachable as appropriate.
6018 (canon_true_dependence): Likewise.
6019 * bb-reorder.c (connect_traces): Likewise.
6020 * c-common.c (c_add_case_label): Likewise.
6021 * c-decl.c (finish_function): Likewise.
6022 * caller-save.c (insert_restore, insert_save): Likewise.
6023 * cfg.c (update_bb_profile_for_threading): Likewise.
6024 * cfganal.c (flow_active_insn_p): Likewise.
6025 * cfgexpand.c (add_reg_br_prob_note): Likewise.
6026 * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
6027 cfg_layout_merge_blocks): Likewise.
6028 * ifcvt.c (cond_exec_process_insns, merge_if_block,
6029 find_if_block): Likewise.
6030 * integrate.c (allocate_initial_values): Likewise.
6031 * jump.c (reverse_condition, reverse_condition_maybe_unordered,
6032 swap_condition, unsigned_condition, signed_condition,
6033 mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
6034 reg_or_subregno): Likewise.
6035 * lambda-code.c (lambda_compute_auxillary_space,
6036 lambda_transform_legal_p): Likewise.
6037 * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
6038 * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
6039 lhd_incomplete_type_error, lhd_expand_expr,
6040 lhd_types_compatible_p, lhd_tree_size): Likewise.
6041 * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
6042 * local-alloc.c (update_equiv_regs): Likewise.
6043 * loop-unroll.c (peel_loop_completely
6044 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
6045 peel_loop_simple, unroll_loop_stupid,
6046 analyze_iv_to_split_insn): Likewise.
6047 * loop.c (gen_prefetch, find_and_verify_loops,
6048 basic_induction_var): Likewise.
6049 * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
6050 * value-prof.c (tree_find_values_to_profile): Likewise.
6051 * varasm.c (named_section, default_assemble_integer,
6052 decode_addr_const): Likewise.
6053
ac7e839c 60542005-04-21 Alan Modra <amodra@bigpond.net.au>
bd08db74 6055 Fariborz Jahanian <fjahanian@apple.com>
ac7e839c 6056
41806d92
NS
6057 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
6058 portion of argument passed in fpr.
6059 * expr.c (emit_push_insn): Fix computation of 'offset' used to
6060 decide on partial argument save on stack.
ac7e839c 6061
dbcc9ccc
KH
60622005-04-21 Kazu Hirata <kazu@cs.umass.edu>
6063
6064 * config/sparc/predicates.md, config/sparc/sparc.md: Fix
6065 comment typos.
6066
b4861090
JH
60672005-04-21 Jan Hubicka <jh@suse.cz>
6068
6069 * cgraphunit.c: Include tree-pass.h
6070 (cgraph_decide_recursive_inlining,
6071 cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
6072 cgraph_decide_inlining): Dump goes to dump_file.
6073 (cgraph_optimize): Call ipa passes instead of inliner.
6074 (cgraph_gate_inlining, pass_ipa_inline): New.
6075 * tree-optimize.c (all_ipa_passes): New static variable.
6076 (register_one_dump_file): Dead with IPA passes.
6077 (register_dump_files): Likewise.
6078 (init_tree_optimization_passes): Initialize IPA passes.
6079 (execute_todo): Do cgraph dump when asked to, do not dump function body
6080 for IPA pass.
6081 * tree-pass.h (TODO_dump_cgraph): New macro.
6082 (ipa_passes): Declare.
6083 * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
6084
d0396b79
NS
60852005-04-21 Nathan Sidwell <nathan@codesourcery.com>
6086
6087 * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
6088 gcc_assert instead of abort.
6089 (classify_argument, examine_argument, construct_container,
6090 contains_128bit_aligned_vector_p, ix86_check_movabs,
6091 standard_80387_constant_opcode, standard_80387_constant_rtx,
6092 ix86_initial_elimination_offset, ix86_compute_frame_layout,
6093 pro_epilogue_adjust_stack, ix86_expand_epilogue,
6094 ix86_address_cost, legitimate_address_p, legitimize_pic_address,
6095 legitimize_tls_address, output_pic_addr_const,
6096 i386_output_dwarf_dtprel, put_condition_code, print_reg,
6097 get_some_local_dynamic_name, print_operand, print_operand_address,
6098 output_387_binary_op, emit_i387_cw_initialization,
6099 output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
6100 ix86_expand_clear, ix86_expand_binary_operator,
6101 ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
6102 ix86_cc_modes_compatible, ix86_fp_comparison_codes,
6103 ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
6104 ix86_expand_branch, ix86_expand_setcc,
6105 ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
6106 ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
6107 ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
6108 memory_address_length, ix86_attr_length_immediate_default,
6109 ix86_attr_length_address_default, ix86_agi_dependant,
6110 x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
6111 ix86_expand_binop_builtin, ix86_force_to_memory,
6112 ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
6113 x86_emit_floatuns): Likewise.
6114 * config/i386/netware.c (gen_regparm_prefix,
6115 i386_nlm_strip_name_encoding): Likewise.
6116 * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
6117
e3feb571
NS
61182005-04-21 Nathan Sidwell <nathan@codesourcery.com>
6119
6120 * optabs.c (gen_condiational_trap): Remove #define.
6121 (add_equal_note): Assertify. Remove explicit indirection from
6122 call via function pointer.
6123 (expand_ternary_op, expand_simple_binop, expand_binop,
6124 expand_twoval_unop, expand_twoval_binop,
6125 expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
6126 emit_unop_insn, emit_no_conflict_block, prepare_cmp_insn,
6127 prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
6128 prepare_float_lib_cmp, emit_conditional_move,
6129 emit_conditional_add, gen_add2_insn, gen_add3_insn,
6130 have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
6131 expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
6132 vector_compare_rtx, expand_vec_cond_expr): Likewise.
6133
d4e6fecb
NS
61342005-04-21 Nathan Sidwell <nathan@codesourcery.com>
6135
6136 * vec.h: Update API to separate allocation mechanism from type.
6137 (VEC_safe_grow): New.
6138 * vec.c (calculate_allocation): New.
6139 (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
6140 (vec_gc_free, vec_heap_free): Remove.
6141 * gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
6142 (VEC): Likewise.
6143 (mangle_macro_name): New.
6144 (struct macro_def): New.
6145 (struct macro): Add multiple argument values.
6146 (macro_expans_end): New.
6147 (push_macro_expansion): Chain on new macro. Process multiple
6148 args, create follow on expansion. Return follow on argument.
6149 (macro_input): Deal with multiple arguments.
1ed17cd5 6150
d4e6fecb
NS
6151 * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
6152 (struct tree_binfo): Adjust.
6153 * basic-block.h: Define VEC(edge,gc).
6154 (struct edge_def): Adjust.
6155 (struct basic_block_def, struct edge_iterator): Likewise.
6156 (ei_container, ei_start_1, ei_last_1): Likewise.
6157 * cfg.c (connect_src, connect_dest): Likewise.
6158 * cfgrtl.c (force_nonfallthru_and_redirect)
6159 * dbxout.c (dbxout_type)
6160 * dwarf2out.c (gen_member_die)
6161 * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
6162 (gcc_tree_to_linear_expression): Adjust.
6163 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
6164 lbv_to_gcc_expression, lle_to_gcc_expression,
6165 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
6166 perfect_nestify): Likewise.
6167 * lambda.h (gcc_loopnest_to_lambda_loopnest,
6168 lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
6169 * profile.c (instrument_values): Adjust.
6170 * tree-cfg.c (modified_noreturn_calls): Adjust.
6171 (remove_fallthru_edge): Likewise.
6172 * tree-dump.c (dequeue_and_dump): Adjust.
6173 * tree-flow-inline.h (mark_stmt_modified): Adjust.
6174 * tree-flow.h (modified_noreturn_calls): Adjust.
6175 (tree_on_heap): Remove. (yay!)
6176 (register_new_def): Adjust.
6177 * tree-into-ssa.c: Define VEC(int,heap).
6178 (block_defs_stack): Adjust.
6179 (find_idf, insert_phi_nodes, register_new_def,
6180 rewrite_initialize_block, rewrite_finalize_block,
6181 register_new_update_single, rewrite_update_init_block,
6182 rewrite_update_fini_block, rewrite_blocks,
6183 ssa_rewrite_finalize_block, ssa_register_new_def,
6184 ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
6185 * tree-loop-linear.c (linear_transform_loops): Adjust.
6186 * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
6187 (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
6188 * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
6189 stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
6190 vrp_variables_stack): Adjust declarations.
6191 (tree_ssa_dominator_optimize): Adjust.
6192 (dom_opt_initialize_block, remove_local_expressions_from_table,
6193 restore_nonzero_vars_to_original_value,
6194 restore_vars_to_original_value,
6195 restore_currdefs_to_original_value, dom_opt_finalize_block,
6196 record_var_is_nonzero, record_cond, record_const_or_copy_1,
6197 optimize_stmt, update_rhs_and_lookup_avail_expr,
6198 lookup_avail_expr, record_range): Likewise.
6199 * tree-ssa-pre.c: Define VEC(basic_block,heap).
6200 (compute_antic_aux): Adjust.
1ed17cd5
ZW
6201 (inserted_exprs, create_expression_by_pieces,
6202 insert_into_preds_of_block, eliminate, mark_operand_necessary,
d4e6fecb
NS
6203 remove_dead_inserted_code, fini_pre): Likewise.
6204 * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1ed17cd5 6205 (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
d4e6fecb
NS
6206 ssa_prop_init): Likewise.
6207 * tree-ssa.c: Define VEC(bitmap,heap).
6208 (verify_name_tags): Adjust.
6209 * value-prof.c (rtl_divmod_values_to_profile): Adjust.
6210 (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
6211 tree_divmod_values_to_profile, tree_find_values_to_profile,
6212 value_profile_transformations): Likewise.
6213 * value-prof.h: Define VEC(histogram_value,heap).
6214 * varasm.c: Remove alias_pair pointer typedef, define
6215 VEC(alias_pair,gc).
6216 (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1ed17cd5 6217
d4e6fecb
NS
6218 * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
6219 not a pointer to it. Create an object vector.
6220 (extern_symbols): Turn into an object vector.
6221 (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
6222
2412d35c
SP
62232005-04-21 Sebastian Pop <pop@cri.ensmp.fr>
6224
6225 PR/20742
6226 * Makefile.in (tree-chrec.o): Depend on params.h.
6227 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
6228 default value 20.
6229 * tree-chrec.c: Depend on params.h. Replace build with buildN,
6230 and fold build with fold_buildN.
6231 (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
6232 the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
6233 (tree_contains_chrecs): Compute an estimation of the size of the
6234 given expression.
6235 * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
6236 (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
6237 * tree-scalar-evolution.c (simple_iv): Ditto.
6238 * doc/invoke.texi (scev-max-expr-size): Documented.
6239
6ac49599
RS
62402005-04-21 Richard Sandiford <rsandifo@redhat.com>
6241
6242 * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
6243 (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
6244 (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
6245 (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
6246 (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
6247 (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
6248 * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
6249 (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
6250 * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
6251 (darwin_fix_and_continue_switch): Delete.
6252 * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
6253 (SUBTARGET_SWITCHES): Delete.
6254 * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
6255 (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
6256 (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
6257 (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
6258 (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
6259 (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
6260 (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
6261 (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
6262 (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
6263 (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
6264 (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
6265 (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
6266 (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
6267 (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
6268 (TARGET_64BIT): Undef before redefining.
6269 (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
6270 (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
6271 (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
6272 (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
6273 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
6274 (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
6275 (ix86_asm_string, ix86_regparm, ix86_regparm_string)
6276 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
6277 (ix86_debug_arg_string, ix86_debug_addr_string)
6278 (ix86_align_loops_string, ix86_align_jumps_string)
6279 (ix86_align_funcs_string): Delete.
6280 * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
6281 (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
6282 * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
6283 (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
6284 * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
6285 * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
6286 (SUBTARGET_SWITCHES): Delete.
6287 * config/i386/i386.c (ix86_debug_arg_string): Delete.
6288 (ix86_debug_addr_string): Delete.
6289 (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
6290 (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
6291 (ix86_align_loops_string, ix86_align_jumps_string)
6292 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
6293 (ix86_align_funcs_string): Make static.
6294 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6295 (ix86_handle_option): New function.
6296 (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
6297 (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
6298 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
6299 of darwin_fix_and_continue_switch.
6300 (darwin_one_byte_bool): Delete.
6301 * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
6302 * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
6303 to darwin_one_byte_bool.
6304 * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
6305 * config/i386/djgpp.opt, config/i386/i386.opt,
6306 * config/i386/sco5.opt: New files.
6307
0e5d569c
EB
63082005-04-21 Eric Botcazou <ebotcazou@libertysurf.fr>
6309
6310 * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
6311 fp_zero_operand, fp_register_operand, intreg_operand,
6312 fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
6313 call_operand, call_operand_address, tgd_symbolic_operand,
6314 tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
6315 symbolic_operand, symbolic_memory_operand, label_ref_operand,
6316 sp64_medium_pic_operand, data_segment_operand,
6317 text_segment_operand, splittable_symbolic_memory_operand,
6318 reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
6319 eq_or_neq, normal_comp_operator, noov_compare_op,
6320 noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
6321 cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
6322 const64_operand, const64_high_operand, arith11_operand,
6323 arith10_operand, arith_double_operand, arith_double_4096_operand,
6324 arith_double_add_operand, arith11_double_operand,
6325 arith10_double_operand, small_int, small_int_or_double,
6326 uns_small_int, uns_arith_operand, clobbered_register,
6327 input_operand, compare_operand): Delete.
6328 (sparc_emit_set_const32): Use predicates in assertion. Remove special
6329 code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
6330 (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
6331 (GEN_HIGHINT64, GEN_INT64): Delete.
6332 (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
6333 gen_safe_XOR64): Adjust for above deletion.
6334 (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
6335 Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
6336 (legitimate_constant_p): Use const_zero_operand instead.
6337 (sparc_extra_constraint_check): Likewise.
6338 * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
6339 (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
6340 (PREDICATE_CODES): Delete.
6341 * config/sparc/sparc.md: Include predicates.md.
6342 (All patterns): Adjust for new predicate names.
6343 (cmpdi, cmpdi_sp64): Use arith_operand predicate.
6344 (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
6345 (movdi): Use general_operand predicate.
6346 (movdi_sp64_dbl): Delete.
6347 (movdi_const64_special): Add 'N' constraint.
6348 (movdicc): Use arith10_operand predicate.
6349 (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
6350 (movdi_cc_reg_sp64): Use arith10_operand predicate.
6351 (movdi_cc_reg_sp64_trunc): Delete.
6352 (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
e6db6225 6353 (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
0e5d569c
EB
6354 (subdi3_sp32): Delete.
6355 (subdi3_insn_sp32): Change to define_insn_and_split.
6356 (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
6357 (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
6358 (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
6359 umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
6360 small_int_operand predicate.
6361 (divdi3, udivdi3): Use arith_operand predicate.
6362 (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
6363 (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
6364 xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
6365 (xordi3_sp64_dbl): Delete.
6366 (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
6367 cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
6368 cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
6369 cmp_ccx_set_not): Use arith_operand predicate.
6370 (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
6371 * config/sparc/predicates.md: New file.
6372
a94400fd
KH
63732005-04-21 Kazu Hirata <kazu@cs.umass.edu>
6374
6375 PR tree-optimization/14846
6376 * fold-const.c (fold_single_bit_test_into_sign_test): New,
6377 split out from ...
6378 (fold_single_bit_test): ... here.
6379 (fold_binary): Call fold_single_bit_test_into_sign_test
6380 instead of fold_single_bit_test.
6381
78ecf64c
JW
63822005-04-20 James E Wilson <wilson@specifixinc.com>
6383
6384 PR c++/20805
6385 * dwarf2out.c (gen_variable_die): Don't emit a specification if this
6386 is another declaration.
6387
68a81332
HPN
63882005-04-21 Hans-Peter Nilsson <hp@axis.com>
6389
6390 * config/cris/predicates.md: New file.
6391 * config/cris/cris-protos.h (cris_store_multiple_op_p)
6392 (cris_movem_load_rest_p): Declare.
6393 * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
6394 (cris_movem_load_rest_p): Ditto. Globalize.
6395 (cris_bdap_operand, cris_bdap_biap_operand,
6396 cris_orthogonal_operator, cris_commutative_orth_op,
6397 cris_operand_extend_operator,
6398 cris_additive_operand_extend_operator, cris_extend_operator,
6399 cris_plus_or_bound_operator, cris_mem_op,
6400 cris_general_operand_or_symbol,
6401 cris_general_operand_or_gotless_symbol,
6402 cris_general_operand_or_plt_symbol, cris_mem_call_operand,
6403 cris_load_multiple_op): Remove predicate functions.
6404 (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
6405 abort, for UNSPECs other than CRIS_UNSPEC_PLT.
6406 * config/cris/cris.h (PREDICATE_CODES): Don't define.
6407 * config/cris/cris.md: Include predicates.md.
6408 ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
6409
c3e5898b
ILT
64102005-04-20 Ian Lance Taylor <ian@airs.com>
6411
6412 * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
6413 * c-common.h (STMT_EXPR_STMT): Don't define.
6414 (STMT_EXPR_NO_SCOPE): Don't define.
6415 * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
6416 * c-pretty-print.c (pp_c_primary_expression): Likewise.
6417 (pp_c_expression): Likewise.
6418
02d98c0d
RH
64192005-04-20 Richard Henderson <rth@redhat.com>
6420
6421 PR target/21100
6422 * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
6423
ad1032fd
JL
64242005-04-20 Jeff Law <law@redhat.com>
6425
6426 * reload1.c (reload): Ignore equivalences between pseudos and
6427 read only memory.
6428
187230a7
JM
64292005-04-20 Joseph S. Myers <joseph@codesourcery.com>
6430
6431 PR c/12913
6432 * c-tree.h (struct c_label_list): Update comment.
6433 (struct c_label_context): Rename to struct c_label_context_se.
6434 (label_context_stack): Rename to label_context_stack_se.
6435 (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
6436 c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
6437 c_end_vm_scope): New.
6438 (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
6439 * c-decl.c (pop_scope): Call c_end_vm_scope.
6440 (pushdecl): Call c_begin_vm_scope for variably modified
6441 declarations.
6442 (define_label): Check for jumping into scope of identifier with
6443 variably modified type. Push label on stack for those defined at
6444 current context of identifiers with variably modified type.
6445 (start_function): Create stack level for context of identifiers
6446 with variably modified type.
6447 (finish_function): Pop stack level for context of identifiers with
6448 variably modified type.
6449 * c-typeck.c (label_context_stack): Rename to
6450 label_context_stack_se.
6451 (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
6452 (c_finish_goto_label): Check for jumping into scope of identifier
6453 with variably modified type. Push label on stack for those jumped
6454 to from current context of identifiers with variably modified
6455 type.
6456 (struct c_switch): Add blocked_vm.
6457 (c_start_case): Initialize blocked_vm.
6458 (do_case): Check blocked_vm.
6459 (c_finish_case): Add comment.
6460 (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
6461 variable label_context_stack.
6462
e5206274
KH
64632005-04-20 Kazu Hirata <kazu@cs.umass.edu>
6464
6465 * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
6466 conditional_replacement, value_replacement, abs_replacement,
6467 minmax_replacement.
6468 (replace_phi_edge_with_variable): Remove argument BB.
6469 (conditional_replacement, value_replacement,
6470 minmax_replacement, abs_replacement): Remove argument PHI_BB.
6471 Update a call to replace_phi_edge_with_variable.
6472
2a925431
KH
6473 * tree-ssa-phiopt.c: Fix comments.
6474
687b527d
MM
64752005-04-20 Michael Matz <matz@suse.de>
6476
6477 PR20973
6478 * reload.c (push_reload, find_dummy_reload): Check for uninitialized
6479 pseudos.
6480
edef5476
KH
64812005-04-20 Kazu Hirata <kazu@cs.umass.edu>
6482
6483 * tree-ssa-phiopt.c: Fix comment typos.
6484
3d040dbc
KH
6485 PR tree-optimization/21116
6486 * tree-ssa-phiopt.c: Fix a typo.
6487
f12b785d
RH
64882005-04-19 Richard Henderson <rth@redhat.com>
6489
6490 * builtins.c (expand_builtin_sync_operation): Revert last change.
6491 * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
6492 not vs new value.
6493 (expand_compare_and_swap_loop): Likewise.
6494 (expand_sync_operation): Remove fallback from NAND to AND; invert
6495 memory operand when expanding from cmpxchg.
6496 (expand_sync_fetch_operation): Likewise.
6497 * doc/extend.texi (Atomic Builtins): Fix docs for nand and
6498 compare-and-swap.
6499
6500 * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
6501 when implementing NAND. Fix double-add for AFTER.
6502 * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
6503 (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
6504 (sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old
6505 memory value.
6506 (sync_lock_test_and_set<I48MODE>): Remove extra label and last
6507 memory barrier.
6508
6509 * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
6510 to return old memory value.
6511 (sync_compare_and_swap_cc<IMODE>): Likewise.
6512
6513 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
6514 return pre-reload. Don't consider output or anti dependencies.
6515 * config/ia64/sync.md (IMODE): New.
6516 (modesuffix): Add QI and HI.
6517 (memory_barrier): Simplify expansion.
6518 (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
6519 (cmpxchg_acq_<IMODE>): Likewise.
6520 (sync_lock_test_and_set<IMODE>): Likewise.
6521 (sync_lock_release<IMODE>): Likewise.
6522
f242e769
JM
65232005-04-19 James A. Morrison <phython@gcc.gnu.org>
6524
6525 * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
6526 ~X or ~Y simplify.
6527
33ab6245
JM
65282005-04-19 James A. Morrison <phython@gcc.gnu.org>
6529
6530 * fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y.
6531
53a2494e 65322005-04-20 Michael Pogue <michael.pogue@sun.com>
bd08db74 6533 Joseph S. Myers <joseph@codesourcery.com>
53a2494e
JM
6534
6535 * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
6536 * c-typeck.c (build_c_cast): Check these options.
6537 * doc/invoke.texi: Document these options.
6538
7195b414
KH
65392005-04-20 Kazu Hirata <kazu@cs.umass.edu>
6540
6541 * tree-ssa-phiopt.c: Update a comment about the pass.
6542
696e78bf
KH
65432005-04-19 Kazu Hirata <kazu@cs.umass.edu>
6544
6545 * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
6546 config/mcore/mcore.c: Fix comment typos.
6547
30ee829f
DJ
65482005-04-19 Daniel Jacobowitz <dan@codesourcery.com>
6549
6550 * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
6551 * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
6552
01c19d47
PB
65532005-04-19 Paul Brook <paul@codesourcery.com>
6554
1ed17cd5 6555 * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
01c19d47 6556
b8621d81
AH
65572005-04-19 Andrew Haley <aph@redhat.com>
6558
6559 PR java/21022
6560 * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
6561 looking at a field's bitpos.
6562
042630ad
KG
65632005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6564
6565 * system.h (fopen, fdopen, freopen): Define these to the unlocked
6566 libiberty functions.
6567
c5f083ef
KH
65682005-04-19 Kazu Hirata <kazu@cs.umass.edu>
6569
6570 PR tree-optimization/21096
6571 * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
6572
1334b570
AM
65732005-04-19 Alan Modra <amodra@bigpond.net.au>
6574
6575 PR target/21098
6576 * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
6577 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
6578
32a87d45
AO
65792005-04-19 Alexandre Oliva <aoliva@redhat.com>
6580
6581 * tree-cfg.c (dump_function_to_file): Use cfun info only if it
6582 refers to the function being dumped.
6583
0d620686
DJ
65842005-04-18 Daniel Jacobowitz <dan@codesourcery.com>
6585
6586 * varasm.c (assemble_start_function): Remove reset of in_section.
6587
a3885f54
JM
65882005-04-18 James A. Morrison <phython@gcc.gnu.org>
6589
6590 PR tree-optimization/21085
6591 * fold-const (fold_binary): Don't change X % -C to X % C if C has
6592 overflowed.
6593
ec7dea0a
BE
65942005-04-19 Ben Elliston <bje@au.ibm.com>
6595
6596 * doc/invoke.texi (Optimize Options): Refer to the correct
6597 optimisation flag -ftree-dominator-opts, not -ftree-dom.
6598
89da1f32
CJ
65992005-04-18 Christopher Jaillet <christophe.jaillet@wanadoo.fr>
6600
6601 * config/rs6000/rs6000.c (machopic_output_stub): Increase
6602 alloca argument to be big enough.
6603
ab54a8fc
AO
66042005-04-18 Alexandre Oliva <aoliva@redhat.com>
6605
e3df2571 6606 PR middle-end/21049
ab54a8fc
AO
6607 * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
6608 cfun->cfg are NULL.
6609
9d203871
TT
66102005-04-18 Tom Tromey <tromey@redhat.com>
6611
6612 * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
6613 typo.
6614
0b196b18
RH
66152005-04-18 Richard Henderson <rth@redhat.com>
6616
6617 * config/alpha/alpha.c (alpha_split_atomic_op): New.
6618 (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
6619 (alphaev4_insn_pipe): Likewise. Correct IST and LDSYM pipes.
6620 * config/alpha/alpha-protos.h: Update.
6621 * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
6622 (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
6623 (attr type): Add ld_l, st_c, mb.
6624 (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
6625 iornotsi3, xorsi_internal, xornotsi3): New.
6626 * config/alpha/ev4.md (ev4_ld): Add ld_l.
6627 (ev4_ist_c, ev4_mb): New.
6628 * config/alpha/ev5.md (ev5_st): Add st_c, mb.
6629 (ev5_ld_l): New.
6630 * config/alpha/ev6.md (ev6_ild): Add ld_l.
6631 (ev6_ist): Add st_c.
6632 (ev6_mb): New.
6633 * config/alpha/sync.md: New file.
6634
e2939e75
RH
66352005-04-18 Richard Henderson <rth@redhat.com>
6636
6637 * builtins.c (expand_builtin_sync_operation): Fold nand to and
6638 for constants.
6639
46c94db6
RH
6640 * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
6641
a45f6936
DP
66422005-04-18 Devang Patel <dpatel@apple.com>
6643
6644 * config/rs6000/atlivec.md (mulv4si3): New pattern.
1ed17cd5 6645
0eeb03e6
JM
66462005-04-18 James A. Morrison <phython@gcc.gnu.org>
6647
6648 PR tree-optimization/20922
6649 * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
6650 Fold X + c >= X and fold X - c <= X to true.
6651
8f6c5889
JM
66522005-04-18 James A. Morrison <phython@gcc.gnu.org>
6653
6654 * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
6655 unsigned int.
6656 (emergency_labeled_state_free): Likewise.
6657
df3a97a8
NC
66582005-04-18 Nick Clifton <nickc@redhat.com>
6659
4bac3ef8
NC
6660 * config/h8300/h8300.md (jump): Remove prescan parameter from
6661 calls to final_scan_insn.
6662
3e1dec29
NC
6663 * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
6664 parameter from calls to final_scan_insn.
6665
df3a97a8
NC
6666 * config.gcc (m68hc12): Use the m68hc11.opt file for target
6667 specific options.
6668 (v850e, v850e1): Use the v850.opt file for target specific
6669 options.
6670
0d21c2a2
KH
66712005-04-18 Kazu Hirata <kazu@cs.umass.edu>
6672
6673 PR tree-optimization/21001
6674 * tree-optimize.c (init_tree_optimization_passes): Move the
6675 first pass_forwprop immediately before pass_vrp.
6676
03a08664
ILT
66772005-04-17 Ian Lance Taylor <ian@airs.com>
6678
6679 * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
6680 * c-common.c (c_sizeof_or_alignof_type): Change second parameter
6681 from enum tree_code op to bool is_sizeof.
6682 * c-common.h (c_sizeof_or_alignof_type): Update declaration.
6683 (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
6684 * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
6685 case.
6686 (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
6687 cases.
6688 (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
6689 ALIGNOF_EXPR cases.
6690
81a60083
ILT
66912005-04-17 Ian Lance Taylor <ian@airs.com>
6692
6693 * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
6694
3f620b5f
RH
66952005-04-17 Richard Henderson <rth@redhat.com>
6696
6697 * config/alpha/alpha.c (va_list_skip_additions): Only define if
6698 TARGET_ABI_OSF.
6699 (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
6700 (alpha_stdarg_optimize_hook): Likewise. Allow for one more round
6701 of indirection through ssa names while looking for the gpr counter
6702 field.
6703 (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
6704 saved va_list_gpr_size and va_list_fpr_size.
6705
30abf793
KH
67062005-04-17 Kazu Hirata <kazu@cs.umass.edu>
6707
6708 * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
6709 both pointers or both integers.
6710
838bdb35
KH
6711 * tree-vrp.c (maybe_add_assert_expr): Don't assert
6712 ASSERT_EXPRs for single-use variable.
6713
deac2284
KH
6714 * tree-into-ssa.c: Fix a comment typo.
6715
2adc1e9c
RS
67162005-04-17 Richard Sandiford <rsandifo@redhat.com>
6717
6718 * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
6719 -mipsN before forcing a default of -mips2.
6720
00c00def
KH
67212005-04-17 Kazu Hirata <kazu@cs.umass.edu>
6722
6723 * predict.h (IS_TAKEN): Remove.
6724 * rtl.h (NOTE_PREDICTION): Likewise.
6725
378e4d93
KH
6726 * modulo-sched.c (CFG_HOOKS): Remove.
6727
911204fe
KH
6728 * c-parser.c (N_C_TTYPES): Remove.
6729
1e6a5d3c
KH
6730 * tree-flow-inline.h (get_stmt_operands): Remove.
6731 * lambda-code.c, tree-ssa-loop-unswitch.c,
6732 tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
6733 tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
6734 tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
6735 calls to get_stmt_operands.
6736 * doc/tree-ssa.texi: Don't mention get_stmt_operands.
6737
bae47977
RH
67382005-04-17 Richard Henderson <rth@redhat.com>
6739
6740 PR target/20375
6741 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
6742 of CUMULATIVE_ARGS past the last named argument.
6743 (alpha_va_start): Expect pretend_args_size only if strictly less than
6744 6 named arguments.
6745
10dcf221
KH
67462005-04-17 Kazu Hirata <kazu@cs.umass.edu>
6747
6748 PR middle-end/21024
6749 * builtins.c (expand_builtin_strcat): Convert the result of
6750 strlen to the right type.
6751 * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
6752 avoid creating type mismatches.
6753 <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
6754 type mismatches.
6755
a5cb820a
KH
6756 * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
6757
5b5513d0
RH
67582005-04-16 Richard Henderson <rth@redhat.com>
6759
6760 PR target/21051
6761 * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
6762 Use the mode of boolean_type_node when the user doesn't provide one.
6763 * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
6764
29836d07
AO
67652005-04-16 Alexandre Oliva <aoliva@redhat.com>
6766
92750a39
AO
6767 PR target/20126
6768 * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
6769 (const)).
6770
29836d07
AO
6771 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
6772 comment.
6773
41704a38
RS
67742005-04-16 Roger Sayle <roger@eyesopen.com>
6775 Steven Bosscher <stevenb@suse.de>
6776
6777 * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
6778 (fold_unary_to_constant): Likewise.
6779
da190657
KH
67802005-04-16 Kazu Hirata <kazu@cs.umass.edu>
6781
6782 * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
6783 PROP_ASM_SCAN.
6784
5a4c9b10
GP
67852005-04-16 Gerald Pfeifer <gerald@pfeifer.com>
6786
6787 * doc/install.texi (Specific): Avoid using asterisks in @anchor
6788 names related to target triplets.
6789 Remove i?86-*-esix from platform directory.
6790 Remove powerpc-*-eabiaix from platform directory.
6791
077bc924
JM
67922005-04-16 Joseph S. Myers <joseph@codesourcery.com>
6793
6794 PR middle-end/20491
6795 * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
6796 falling through from SUBREG case to REG.
6797
054632e8
RS
67982005-04-15 Roger Sayle <roger@eyesopen.com>
6799
6800 * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
6801 (fold_binary): Update comment mentioning fold_relational_hi_lo.
6802 (fold_binary_to_constant): Simplify using fold_binary.
6803 (fold_unary_to_constant): Likewise, simplify using fold_unary.
6804
35205e8f
RO
68052005-04-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6806
6807 * gthr-posix.c (pthread_cancel): Define.
6808 (pthread_mutexattr_init): Likewise.
6809 (pthread_mutexattr_settype): Likewise.
6810 (pthread_mutexattr_destroy): Likewise.
6811
94fcbf65
DM
68122005-04-15 David S. Miller <davem@davemloft.net>
6813
4e985629 6814 PR target/20673
94fcbf65
DM
6815 * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
6816
9f1054af
KH
68172005-04-15 Kazu Hirata <kazu@cs.umass.edu>
6818
6819 PR tree-optimization/21031
6820 * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
6821 (forward_propagate_into_cond_1): Call it. Forward propagate
6822 integer-integer casts into COND_EXPRs.
6823
6ba40dd7
DK
68242005-04-15 Dave Korn <dave.korn@artimi.com>
6825
6826 * gcc.c (default_compilers): Clarify obscure error message when
6827 reading from standard input.
6828
1b3e32dc
KH
68292005-04-15 Kazu Hirata <kazu@cs.umass.edu>
6830
6831 * basic-block.h (PROP_EQUAL_NOTES): Remove.
6832 * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
6833
192082e7
KH
6834 * tree-ssa-alias.c (init_alias_info): Remove a call to
6835 get_stmt_operands.
6836
b0f81966
AM
68372005-04-15 Andrew MacLeod <amacleod@redhat.com>
6838
6ba40dd7 6839 * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
b0f81966
AM
6840 of non-virtual PHI nodes like we use to.
6841
0ad420fe
PB
68422005-05-15 Paolo Bonzini <bonzini@gnu.org>
6843
6844 * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
6845 (attr_copy_rtx): Do not use it.
6846
c3689350
AM
68472005-04-15 Andrew Macleod <amacleod@redhat.com>
6848
6849 * doc/tree-ssa.texi: Grammer/abbreviation updates.
6850
c764b8b1
DN
68512005-04-15 Diego Novillo <dnovillo@redhat.com>
6852
6853 * tree-vect-transform.c (vectorizable_store): Mark necessary
6854 objects in the vectorized store needing renaming. Update the
6855 SSA graph for V_MAY_DEF operands in the original store.
6856
f5594471
DB
68572005-04-14 Daniel Berlin <dberlin@dberlin.org>
6858
6859 * tree-ssa-pre.c (compute_avail): It's okay to have
6860 TREE_INVARIANT's here, and value number the resulting expressions.
6ba40dd7 6861 (create_expression_by_pieces): Make sure operands that were
f5594471 6862 min_invariant when we started, stay that way.
6ba40dd7 6863
7cc654b8
DE
68642005-04-15 David Edelsohn <edelsohn@gnu.org>
6865
6866 * doc/install.texi (*-ibm-aix*): Add comment about system limits.
6867
3d36fb45
KH
68682005-04-15 Kazu Hirata <kazu@cs.umass.edu>
6869
6870 PR tree-optimization/20936.
6871 * tree-ssa-ccp.c (visit_assignment): Fix a typo.
6872
0bdcd332
VR
68732005-04-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6874
6875 * doc/invoke.texi: Fix typos.
6876 * doc/md.texi: Likewise.
6877 * doc/rtl.texi: Likewise.
6878 * doc/sourcebuild.texi: Likewise.
6879 * doc/tm.texi: Likewise.
6880
1c432a0c
UB
68812005-04-15 Uros Bizjak <uros@kss-loka.si>
6882
6883 PR tree-optimization/21004
6884 * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
6885 and floorl in c99 mode only.
6886 * builtins.c (expand_builtin_int_roundingfn): Assert that
6887 fallback_fndecl is not NULL_TREE.
6888
25cd19de
KH
68892005-04-15 Kazu Hirata <kazu@cs.umass.edu>
6890
6891 * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
6892 * basic-block.h: Update the prototype for
6893 purge_all_dead_edges.
6894 * cfgexpand.c (tree_expand_cfg): Update a call to
6895 purge_all_dead_edges.
6896 * combine.c (combine_instructions): Likewise.
6897 * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
6898 rest_of_handle_cse2, rest_of_handle_gcse,
6899 rest_of_handle_postreload): likewise.
6900
c87ac7e8
AO
69012005-04-15 Alexandre Oliva <aoliva@redhat.com>
6902
6903 PR middle-end/20739
6904 * gimplify.c (gimplify_addr_expr): Compensate for removal of
6905 e.g. cv-qualification conversions.
6906
a68bdb0b
MS
69072005-04-14 Mike Stump <mrs@apple.com>
6908
6909 * config/darwin-c.c (framework_construct_pathname): We must
6910 find all headers of a framework in the first instance of it
6911 found in the seach path.
6912
417ac4e6
KH
69132005-04-14 Kazu Hirata <kazu@cs.umass.edu>
6914
6915 PR tree-optimization/21021
6916 * tree-vrp.c (compare_values): Work around a bug in the front
6917 end that produces a comparison of mismatched types.
6918
af795c3c
RH
69192004-04-14 Richard Henderson <rth@redhat.com>
6920
6921 * config/ia64/ia64.h (enum fetchop_code): Remove.
6922 (enum ia64_builtins): Move ...
6923 * config/ia64/ia64.c (enum ia64_builtins): ... here. Remove all
6924 members except BSP and FLUSHRS.
6925 (ia64_init_builtins): Remove __sync builtins.
6926 (ia64_expand_builtin): Likewise.
6927 (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
6928 (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
6929 (ia64_expand_lock_release): Remove.
6930 * config/ia64/ia64.md (mf): Move to sync.md.
6931 (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
6932 cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
6933 * config/ia64/sync.md: New file.
6934 (memory_barrier): Rename from mf.
6935 (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
6936 (cmpxchg_acq_<I48MODE>): Likewise.
6937 (sync_lock_test_and_set<I48MODE>): Likewise.
6938
6939 * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
6940 to c++. Remove __sync* declarations. s/_si/_4/. s/_di/_8/.
6941
1ef45b77
RH
69422004-04-14 Richard Henderson <rth@redhat.com>
6943
6944 * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
6945 (ix86_compare_emitted): New.
6946 (ix86_expand_compare): Use ix86_compare_emitted if set.
6947 (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
6948 and ix86_compare_op0 are set.
6949 * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
6950 (TARGET_CMPXCHG, TARGET_XADD): New.
6951 (ix86_compare_emitted): Declare.
6952 * config/i386/i386.md: Include sync.md
6953 (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
6954 (UNSPECV_XCHG, UNSPECV_LOCK): New.
6955 * config/i386/sync.md: New file.
6956
48ae6c13
RH
69572004-04-14 Richard Henderson <rth@redhat.com>
6958
6959 PR middle-end/14311
6960 * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
6961 BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
6962 BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
6963 BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
6964 BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
6965 BT_FN_I8_VPTR_I8_I8): New.
6966 * builtins.def (DEF_SYNC_BUILTIN): New.
6967 (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
6968 BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
6969 BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
6970 BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
6971 BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
6972 BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
6973 BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
6974 BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
6975 BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
6976 BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
6977 BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
6978 BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
6979 BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
6980 BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
6981 BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
6982 BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
6983 BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
6984 BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
6985 BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
6986 BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
6987 BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
6988 BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
6989 BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
6990 BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
6991 BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
6992 BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
6993 BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
6994 BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
6995 BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
6996 BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
6997 BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
6998 BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
6999 BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
7000 BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
7001 BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
7002 BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
7003 BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
7004 BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
7005 BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
7006 BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
7007 BUILT_IN_SYNCHRONIZE: New.
7008 * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
7009 as a function. Accept __sync_ as a prefix as well.
7010 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
7011 expand_builtin_lock_test_and_set, expand_builtin_synchronize,
7012 expand_builtin_lock_release): New.
7013 (expand_builtin): Call them.
7014 * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
7015 neither BOTH_P nor FALLBACK_P are defined.
7016 (builtin_type_for_size): New.
7017 (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
7018 (resolve_overloaded_builtin): New.
7019 * c-common.h (resolve_overloaded_builtin): Declare.
7020 (builtin_type_for_size): Declare.
7021 * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
7022 * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
7023 sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
7024 sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
7025 sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
7026 sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
7027 sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
7028 sync_compare_and_swap_cc, sync_lock_test_and_set,
7029 sync_lock_release): New.
7030 * optabs.h: Declare them.
7031 * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
7032 expand_sync_operation, expand_sync_fetch_operation,
7033 expand_sync_lock_test_and_set): Declare.
7034 * genopinit.c (optabs): Add sync optabs.
7035 * optabs.c (init_optabs): Initialize sync optabs.
7036 (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
7037 expand_bool_compare_and_swap, expand_compare_and_swap_loop,
7038 expand_sync_operation, expand_sync_fetch_operation,
7039 expand_sync_lock_test_and_set): New.
7040 * doc/extend.texi (Atomic Builtins): New section
7041 * doc/md.texi (Standard Names): Add sync patterns.
7042
dd58eb5a
AO
70432005-04-14 Alexandre Oliva <aoliva@redhat.com>
7044
7045 * tree-eh.c (lower_try_finally_copy): Generate new code in
7046 response to goto_queue entries as if the queue was sorted by
7047 index, not pointers.
7048 (lower_try_finally_switch): Likewise.
7049
ae46a07a
RH
70502005-04-14 Richard Henderson <rth@redhat.com>
7051
7052 * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
7053 (ix86_expand_sse_movcc): ... here. Take cmp as a pre-computed
7054 register.
7055 (ix86_expand_fp_movcc): Update to match.
7056 (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
7057 * config/i386/i386-protos.h: Update.
7058 * config/i386/sse.md (vcondv4sf, vcondv2df): New.
7059 (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
7060
25f710ba
JM
70612005-04-14 Joseph S. Myers <joseph@codesourcery.com>
7062
7063 * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
7064 refer to 4.0.
7065
07b12652
JB
70662005-04-14 Julian Brown <julian@codesourcery.com>
7067
7068 * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
7069 link failures on ppc64 Linux.
7070
6cecb0aa
AK
70712005-04-14 Andreas Krebbel <krebbel1@de.ibm.com>
7072
7073 * config.gcc: Set cpu_type for s390.
7074
75a7d5d0
DB
70752005-04-14 Daniel Berlin <dberlin@dberlin.org>
7076
7077 Fix PR tree-optimization/20963
7078 * tree-ssa-pre.c (compute_avail): Remove special case for
6ba40dd7 7079 TREE_INVARIANT.
75a7d5d0
DB
7080 (create_expression_by_pieces): Add value numbers for forced out
7081 statements.
7082
f16bb520
HPN
70832005-04-14 Hans-Peter Nilsson <hp@axis.com>
7084
7085 * config/cris/cris.md: Replace references to (reg:SI 16) with
7086 (reg:SI CRIS_SRP_REGNUM).
7087
a0ce7978
KH
70882005-04-14 Kazu Hirata <kazu@cs.umass.edu>
7089
7090 PR tree-optimization/20657
7091 * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
7092 create an appropriate range from it.
7093
4a927664
UB
70942005-04-14 Uros Bizjak <uros@kss-loka.si>
7095
7096 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
7097 <UNSPEC_FIST_CEIL> case.
7098
7099 * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
7100 (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
7101 (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
7102 to implement lfloor and llfloor built-ins as x87 intrinsic function.
7103 (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
7104 (lfloor<mode>2): New expanders.
7105 (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
7106 (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
7107 to implement lceil and llceil built-ins as x87 intrinsic function.
7108 (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
7109 (lceil<mode>2): New expanders.
7110
2ec76fdb
UB
71112005-04-14 Uros Bizjak <uros@kss-loka.si>
7112
7113 * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
7114 and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
7115
559be41a
UW
71162005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
7117
7118 PR target/20927
7119 * config/s390/s390-modes.def: Define TFmode.
7120
568e700e
RS
71212005-04-13 Richard Sandiford <rsandifo@redhat.com>
7122
7123 * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
7124 (JUMP_TABLES_IN_TEXT_SECTION): Define.
7125 * config/mips/mips.c (mips16_insn_length): Remove reference to
7126 JUMP_TABLES_IN_TEXT_SECTION.
7127
6bd13540
FJ
71282005-04-13 Fariborz Jahanian <fjahanian@apple.com>
7129
7130 * simplify-rtx.c (simplify_binary_operation_1): Return
6ba40dd7 7131 scalar or vector of constant 0, depending on the xor's
6bd13540
FJ
7132 mode.
7133
43f479d6
DJ
71342005-04-13 Dale Johannesen <dalej@apple.com>
7135
48ae6c13
RH
7136 * objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
7137 (objc-act.o): Ditto.
7138 * objc/objc-act.c (objc_gimplify_expr): New.
7139 (objc_get_callee_fndecl): New.
7140 * objc/objc-act.h: Include tree-gimple.h. Declare new functions.
7141 * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
7142 (LANG_HOOKS_GET_CALLEE_FNDECL): Define.
43f479d6 7143
f3b2c506
DP
71442005-04-13 Devang Patel <dpatel@apple.com>
7145
7146 * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
7147 temp variables.
6ba40dd7 7148
a6dfafa0
HPN
71492005-04-13 Hans-Peter Nilsson <hp@axis.com>
7150
d29b4b1b
HPN
7151 CRIS prologue as RTL.
7152 * config/cris/cris-protos.h (cris_emit_movem_store)
7153 (cris_expand_prologue): Prototype.
7154 * config/cris/cris.c (struct machine_function): New member
7155 stdarg_regs.
7156 (cfa_label_num, cris_target_asm_function_prologue): Remove.
7157 (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
7158 (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
7159 (cris_load_multiple_op, cris_return_address_on_stack)
7160 (cris_return_address_on_stack_for_return): ISO-Cify.
7161 (cris_store_multiple_op): New predicate function.
7162 (cris_expand_prologue, cris_emit_movem_store): New functions.
7163 (cris_print_operand) <case 'O'>: Handle modifications other than
7164 post-increment.
7165 (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
7166 (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
7167 (cris_gen_movem_load): Rearrange slightly to make local variable
7168 src a parameter, removing osrc.
7169 (cris_setup_incoming_varargs): Set machine_function member
7170 stdarg_regs to correspond to the number of registers that need to
7171 be saved.
7172 * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
7173 CRIS_UNSPEC_GOT.
7174 (PREDICATE_CODES): Add cris_store_multiple_op. Make
7175 cris_general_operand_or_gotless_symbol accept UNSPEC.
7176 * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
7177 ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
7178 ("*cris_store_multiple"): New pattern. Tweak common comment above
7179 this and "*cris_load_multiple".
7180 ("prologue"): New define_expand.
7181
a6dfafa0
HPN
7182 * config/cris/cris.md ("epilogue"): Conditionalize on
7183 TARGET_PROLOGUE_EPILOGUE.
7184
4a36a3f1
SE
71852005-04-13 Steve Ellcey <sje@cup.hp.com>
7186
7187 PR target/20924
7188 * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
7189 fpsr 0 instead of fpsr 1.
7190 (divsf3_internal_thr): Ditto.
7191 (divdf3_internal_lat): Ditto.
7192 (divdf3_internal_thr): Ditto.
7193 (divxf3_internal_lat): Ditto.
7194 (divxf3_internal_thr): Ditto.
7195
9fb6cbd9
KH
71962005-04-13 Kazu Hirata <kazu@cs.umass.edu>
7197
7198 PR tree-optimization/20913
7199 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
7200
60b4ccde
KH
7201 PR tree-optimization/20702
7202 * tree-vrp.c (maybe_add_assert_expr): Recurse into
7203 dominator children that haven't been walked into.
7204
e22a7bcf
JB
72052005-04-13 Julian Brown <julian@codesourcery.com>
7206
7207 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
7208 being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
6ba40dd7 7209 is true.
e22a7bcf 7210
f0e4ea10
KH
72112005-04-13 Kazu Hirata <kazu@cs.umass.edu>
7212
7213 * basic-block.h, tree-ssa-uncprop.c, varasm.c,
7214 config/i386/sse.md: Fix comment typos.
7215
fddc29b1
KH
7216 * genattrtab.c (NULL_ATTR): Remove.
7217 * ifcvt.c (NULL_EDGE): Likewise.
7218
978fb452
KH
7219 * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
7220
2c43a149
KH
7221 * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
7222 NOTE_PREDICT): Remove.
7223
367e8319
EB
72242005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
7225
7226 * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
7227 * configure: Regenerate.
7228 * config.in: Likewise.
7229 * system.h: Declare vsnprintf if not already declared.
7230
e8bb9922
EB
72312005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
7232
7233 * optc-gen.awk: Handle stand-alone Mask records.
7234 * opth-gen.awk: Likewise.
7235 * doc/options.texi (Option file format): Document them.
7236 * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
7237 sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
7238 (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
7239 * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
7240 MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
7241 MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
7242 MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
7243 MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
7244 MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
7245 (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
7246 TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
7247 TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
7248 TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
7249 TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
7250 TARGET_LONG_DOUBLE_128): Likewise.
7251 (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
7252 (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
7253 * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
7254 * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
7255 * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
7256 * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
7257 * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
7258 * config/sparc/sparc.c (fpu_option_set): New global.
7259 (sparc_handle_option): New function.
7260 (sparc_override_options): Test fpu_option_set.
7261 (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
7262 (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
7263 * config/sparc/sparc.opt: New file.
7264 * config/sparc/little-endian.opt: Likewise.
7265 * config/sparc/long-double-switch.opt: Likewise.
7266
c8de0f3b
BS
72672005-04-13 Bernd Schmidt <bernd.schmidt@analog.com>
7268
7269 * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
7270 (bfin_handle_options): Set it if -mshared-library-id= is seen.
7271 * config/bfin/bfin.opt (mshared-library-id=): Lose
7272 Var(bfin_lib_id_given).
7273
6348db1f 72742005-04-13 Matt Thomas <matt@3am-software.com>
6ba40dd7 7275
099ff66c
AJ
7276 * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
7277 defining.
6348db1f 7278
a0ec266c
KH
72792005-04-13 Kazu Hirata <kazu@cs.umass.edu>
7280
7281 * rtl.h (CLEAR_RTX_FLAGS): Remove.
7282
8450a170
KH
7283 * cgraphunit.c (INSNS_PER_CALL): Remove.
7284
bec44647
KH
7285 * tree-ssa-forwprop.c (vars,
7286 record_single_argument_cond_exprs,
7287 substitute_single_use_vars): Remove.
7288 (forward_propagate_into_cond_1, forward_propagate_into_cond):
7289 New.
7290 (tree_ssa_forward_propagate_single_use_vars): Call
7291 forward_propagate_into_cond for each COND_EXPR.
7292
556a791c
KH
7293 * tree-inline.c (INSNS_PER_STMT): Remove.
7294
ab8efbd8
RH
72952005-04-12 Richard Henderson <rth@redhat.com>
7296
7297 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
6ba40dd7 7298 (ix86_expand_sse_fp_minmax): ... from ...
ab8efbd8
RH
7299 (ix86_expand_fp_movcc): ... here.
7300 (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
7301 * config/i386/i386-protos.h: Update.
7302 * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
7303 (sse_setccsf, sse_setccdf): Allow before reload.
7304 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
7305 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
7306 (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
7307 * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
7308 (anddf3, nanddf3, iordf3, xordf3): New.
7309
fef0657c
JL
73102005-04-12 Jeff Law <law@redhat.com>
7311
7312 * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
7313 (tree-ssa-uncprop.o): Add dependencies.
7314 * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
7315 * tree-flow.h (remove_useless_stmts): Remove prototype.
7316 * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
7317 remove_useless_stmts.
7318 * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
7319 * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
7320 * tree-pass.h (pass_uncprop): Declare.
7321 * tree-ssa-uncprop.c: New file.
7322
43a07983
JW
73232005-04-12 James E. Wilson <wilson@specifixinc.com>
7324
7325 PR target/20670
7326 * unwind-ia64.c (uw_intall_context): Add missing load of r27.
7327
b3b51ded
CT
73282005-04-12 Caroline Tice <ctice@apple.com>
7329
7330 Temporary fix for partitioning problems.
6ba40dd7 7331 * passes.c (rest_of_handle_final): Remove code that
b3b51ded
CT
7332 frees unlikely_text_section_name,
7333 * varasm.c (assemble_start_function): Test for partitioning
7334 flag before writing out section labels.
7335 (assemble_end_function): Test for partitioning flag before
7336 writing out section labels.
6ba40dd7 7337
997de8ed
SB
73382005-04-12 Steven Bosscher <stevenb@suse.de>
7339 Stuart Hastings <stuart@apple.com>
7340 Jan Hubicka <jh@suse.cz>
7341
7342 * Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
7343 references to gt-tree-cfg.h.
7344 * basic-block.h (struct basic_block_def): Don't skip rbi
7345 for garbage collection.
7346 (struct reorder_block_def): Make GTY-able.
7347 (struct control_flow_graph): New structure.
7348 (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
7349 BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
7350 but instead defines to the control_flow_graph for cfun.
7351 (label_to_block_map): New define, points to the label map of
7352 the control_flow_graph for cfun.
7353 (n_edges_for_function, n_basic_blocks_for_function,
7354 last_basic_block_for_function, basic_block_info_for_function,
7355 EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
7356 basic_block_info_for_function, label_to_block_map_for_function):
7357 Counterparts for the above, taking a struct function as an extra
7358 argument.
7359 (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
7360 * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
7361 basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
7362 (alloc_rbi_pool, free_rbi_pool): Remove.
7363 (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
7364 * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
7365 here...
7366 (cfg_layout_finalize) ... and don't free it here.
7367 * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
7368 garbage collected.
7369 * flow.c (free_basic_block_vars): Set label_to_block_map and
7370 n_edges to zero too.
7371 * function.h (struct function): Add cfg field.
7372 * function.c (allocate_struct_function): Allocate the cfg.
7373 * tree-cfg.c (label_to_block_map): Remove.
7374 (build_tree_cfg): Don't allocate the rbi pool here...
7375 (delete_tree_cfg_annotations): ...and don't free it here.
7376 Also don't nullify label_to_block_map for cfun.
7377
fee97812
CT
73782005-04-12 Caroline Tice <ctice@apple.com>
7379
7380 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
7381 Revert my patch from April 9.
7382 (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
7383 (reorder_basic_blocks): Revert my patch from April 9.
7384 (insert_section_boundary_note): Revert my patch from April 9.
7385 * dbxout.c (dbxout_function_end): Revert my patch from April 9.
7386 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
7387 (COLD_END_LABEL): Revert my patch from April 9.
7388 (cold_text_section_label): Revert my patch from April 9.
7389 (cold_end_label): Revert my patch from April 9.
7390 (dwarf2out_switch_text_section): Revert my patch from April 9.
7391 (output_aranges): Revert my patch from April 9.
7392 (output_ranges): Revert my patch from April 9.
7393 (output_line_info): Revert my patch from April 9.
7394 (add_location_or_const_value_attribute): Revert my patch from April 9.
7395 (dwarf2out_var_location): Revert my patch from April 9.
7396 (dwarf2out_init): Revert my patch from April 9.
7397 (dwarf2out_finish): Revert my patch from April 9.
7398 * function.h (struct function): Revert my patch from April 9.
7399 * opts.c (decode_options): Revert my patch from April 9.
7400 * output.h (unlikely_section_label, hot_section_label,
6ba40dd7 7401 hot_section_end_label, cold_section_end_label,
fee97812
CT
7402 unlikely_text_section_name): Revert my patch from April 9.
7403 * passes.c (rest_of_handle_final): Revert my patch from April 9.
7404 * varasm.c (unlikely_section_label, hot_section_label,
7405 hot_section_end_label, cold_section_end_label,
7406 unlikely_text_section_name): Revert my patch from April 9.
7407 (initialize_cold_section_name): Revert my patch from April 9.
7408 (unlikely_text_section): Revert my patch from April 9.
7409 (in_unlikely_text_section): Revert my patch from April 9.
7410 (named_section): Revert my patch from April 9.
7411 (function_section): Revert my patch from April 9.
7412 (current_function_section): Revert my patch from April 9.
7413 (assemble_start_function): Revert my patch from April 9.
7414 (assemble_end_function): Revert my patch from April 9.
7415 (default_section_type_flags_1): Revert my patch from April 9.
6ba40dd7 7416
d24088cc
EB
74172005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
7418
7419 * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
7420 * config/sparc/sparc.md (untyped_call): Save the registers manually.
7421
7422 * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
7423
ca11b3fb
UW
74242005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
7425
7426 PR middle-end/20917
7427 * config/s390/s390.md ("*set_tp"): Use SET in pattern.
7428 ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
7429
d7b4b07a
RH
74302004-04-12 Richard Henderson <rth@redhat.com>
7431
7432 * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
7433 UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
7434 UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
7435 (UNSPEC_*, UNSPECV_*): Renumber.
7436
a08a479f
FCE
74372005-04-12 Frank Ch. Eigler <fche@redhat.com>
7438
7439 PR mudflap/19266
7440 From Richard Henderson <rth@redhat.com>:
7441 * tree-mudflap.c (mf_build_check_statement_for): Correct block
7442 splitting logic.
7443
b7d1c15e
DN
74442005-04-12 Dorit Naishlos <dorit@il.ibm.com>
7445
7446 * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
7447
f02a5d0e
BS
74482005-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
7449
7450 * config/bfin/bfin.c (bfin_library_id_string): Remove.
7451 (bfin_library_id): New variable.
7452 (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
7453 instead of bfin_library_id_string.
7454 (bfin_handle_option): New function.
7455 (override_options): Remove most code to deal with shared library IDs,
7456 just check they aren't used without -mid-shared-library.
7457 (TARGET_HANDLE_OPTION): Define.
7458 * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
7459 * config/bfin/bfin.opt (mshared-library-id=): New.
7460
a82635d0
KH
74612005-04-12 Kazu Hirata <kazu@cs.umass.edu>
7462
7463 * tree-vect-transform.c: Fix comment typos.
7464
303f6390
MH
74652005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
7466
7467 * postreload-gcse.c (eliminate_partially_redundant_load): Don't
7468 split critical edges when not possible/profitable.
7469
a6d1d980
RS
74702005-04-12 Richard Sandiford <rsandifo@redhat.com>
7471
7472 * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
7473 (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
7474 (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
7475 (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
7476 (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
7477 (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
7478 (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
7479 * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
7480 MASK_NO_BITFIELD.
7481 * config/ns32k/ns32k.c (ns32k_handle_option): New function.
7482 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7483 * config/ns32k/ns32k.opt: New file.
7484
4af06170
RS
74852005-04-12 Richard Sandiford <rsandifo@redhat.com>
7486
7487 * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
7488 * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
7489 (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
7490 (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
7491 (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
7492 (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
7493 (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
7494 (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
7495 (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
7496 (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
7497 (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
7498 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
7499 (MASK_COLDFIRE): Formatting fixes.
7500 (TARGET_COLDFIRE): Turn into a boolean value for consistency.
7501 * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
7502 * config/m68k/m68k.c (m68k_library_id_string): Initialize to
7503 "_current_shared_library_a5_offset_".
7504 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7505 (MASK_ALL_CPU_BITS): New macro.
7506 (m68k_handle_option): New function.
7507 (override_options): Remove handling of m68k_library_id_string.
7508 * config/m68k/m68k.opt: New file.
7509 * config/m68k/ieee.opt: New file.
7510
1e731102
MM
75112005-04-11 Mark Mitchell <mark@codesourcery.com>
7512
7513 * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
7514 (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
7515 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
7516 (TARGET_CXX): Adjust accordingly.
7517 * target.h (struct gcc_target): Remove epxort_class_data. Add
7518 determine_class_data_visibility and class_data_always_comdat.
7519 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
7520 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
7521 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
7522 * config/arm/arm.c (arm_cxx_export_class_data): Remove.
7523 (arm_cxx_determine_class_data_visibility): New.
7524 (arm_cxx_class_data_always_comdat): Likewise.
7525 (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
7526 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
7527 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
7528 * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
7529 * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
7530 Define.
7531
b52485c6
DP
75322005-04-11 Devang Patel <dpatel@apple.com>
7533
48ae6c13
RH
7534 * tree-data-ref.c (build_classic_dist_vector,
7535 compute_subscript_distance): Make externally visible.
7536 * tree-data-ref.h (build_classic_dist_vector,
7537 compute_subscript_distance): Same.
7538 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
7539 Check distance vector against vectorization factor.
7540 (vect_analyze_loop): Determine vectorizaion factor before
7541 analyzing data dependences.
7542 * tree-vectorizer.c (loops_num): Make it externally visible and
7543 rename ...
7544 * tree-vectorizer.c (vect_loops_num): ... new name.
7545 * tree-vectorizer.h (vect_loops_num): New.
b52485c6
DP
7546
75472005-04-11 Devang Patel <dpatel@apple.com>
7548
48ae6c13
RH
7549 * tree-vect-analyze.c (vect_analyze_operations): Check
7550 vectorizable codition.
7551 * tree-vect-transform.c (vect_is_simple_cond): New function.
7552 (vectorizable_condition): New function.
7553 (vect_transform_stmt): Handle condition_vec_info_type.
7554 * tree-vectorizer.h (enum stmt_vec_info_type): Add
7555 condition_vec_info_type.
7556 (vectorizable_condition): New.
6ba40dd7 7557
dcc58b08
GK
75582005-04-11 Geoffrey Keating <geoffk@apple.com>
7559
004d3859
GK
7560 * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
7561 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
7562 * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
7563
7564 * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
7565 (SUBTARGET_EXTRA_SPECS): Always 'i386'.
7566
92b0bb67
GK
7567 * dwarf2out.c (output_line_info): Don't try to dereference
7568 a NULL current_function_decl.
7569
dcc58b08
GK
7570 * config/t-slibgcc-darwin: Don't put shared libraries in
7571 directories other than $(slibdir).
7572 * config/rs6000/darwin.h: Find -m64 libgcc under the name the
7573 OS uses for it.
7574
f8d66d34
DN
75752005-04-11 Diego Novillo <dnovillo@redhat.com>
7576
7577 PR tree-optimization/20933
7578 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
7579 logic to reject aliases between read-only and writable
7580 variables ...
7581 (may_alias_p): ... here.
7582 (get_tmt_for): Do not associate read-only tags to pointers
7583 whose pointed-to type is not read-only.
7584 * tree-ssa.c (verify_ssa): Check that memory stores have at
7585 least one V_MAY_DEF or V_MUST_DEF.
7586
0d667716
KG
75872005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7588
7589 PR/17092
7590 * configure.ac (gcc_UNLOCKED_FUNCS): New.
7591 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
7592 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
7593 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
7594 _unlocked function.
7595 (fwrite_unlocked): Fix prototype.
6ba40dd7 7596
0d667716
KG
7597 * configure, config.in: Regenerate.
7598
37cca405
DE
75992005-04-11 David Edelsohn <edelsohn@gnu.org>
7600
7601 * tree-ssa-loop-im.c: Include real.h.
7602 (determine_invariantness_stmt): If real division divisor is
7603 invariant and flag_unsafe_math_optimizations enabled, generate
7604 invariant reciprocal for hoisting.
7605 * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
7606
94589120
DB
76072005-04-11 Daniel Berlin <dberlin@dberlin.org>
7608
7609 Fix PR tree-optimization/20926
6ba40dd7 7610
94589120 7611 * tree-ssa-alias.c (add_type_alias): Handle subvars.
6ba40dd7 7612
19f1ebc7
DP
76132005-04-11 Devang Patel <dpatel@apple.com>
7614
7615 * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
7616 operand ordering.
6ba40dd7 7617
6405f32f
AP
76182005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
7619
7620 * fold-const.c (fold_binary_op_with_conditional_arg):
7621 use fold_buildN instead of "fold (buildN" in some
7622 non obvious places.
7623 (fold_unary): Likewise.
7624 (fold_binary): Likewise.
7625
e5e656a4 76262005-04-11 Daniel Berlin <dberlin@dberlin.org>
6ba40dd7 7627
e5e656a4
DB
7628 Fix PR tree-optimization/20612
7629 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
7630 handling
7631 (perfect_nestify): preheaderbb is *not* part of loop of the
7632 old destination.
7633
d3010d72
AP
76342005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
7635
7636 * tree-ssa-alias.c (may_alias_p): If the variable
7637 is a global variable and the pointer is parameter
7638 and -fargument-noalias-global is used, then
7639 the pointer cannot alias the variable.
7640
f5f7d171
JM
76412005-04-11 James A. Morrison <phython@gcc.gnu.org>
7642
7643 * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
7644 * config/sparc/sparc.h: Likewise.
7645 * config/sparc/sparc.md: Likewise.
7646
8e774944
KH
76472005-04-11 Kazu Hirata <kazu@cs.umass.edu>
7648
7649 * tree-vrp.c (maybe_add_assert_expr): Move a comment.
7650
977ec5f8
KH
7651 * tree-vrp.c: Fix a comment typo.
7652
9fabf0d4
DN
76532005-04-11 Diego Novillo <dnovillo@redhat.com>
7654
7655 PR tree-optimization/20920
7656 * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
7657 SSA_NAME flows through an abnormal edge.
7658 * tree-vrp.c (infer_value_range): Ignore SSA names that flow
7659 through abnormal edges.
7660 (maybe_add_assert_expr): Likewise.
7661
f5db779b
RS
76622005-04-11 Richard Sandiford <rsandifo@redhat.com>
7663
7664 * config/s390/s390.h (s390_tune_string, s390_arch_string)
7665 (s390_warn_framesize_string, s390_warn_dynamicstack_string)
7666 (s390_stack_size_string, s390_stack_guard_string, target_flags)
7667 (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
7668 (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
7669 (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
7670 (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
7671 (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
7672 (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
7673 (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
7674 * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
7675 (TARGET_HANDLE_OPTION): Likewise.
7676 (s390_tune): Initialize to PROCESSOR_max.
7677 (s390_arch_string): Make static.
7678 (s390_tune_string, s390_warn_framesize_string): Delete.
7679 (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
7680 (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
7681 (s390_handle_arch_option, s390_handle_option): New functions.
7682 (override_options): Remove parsing of option strings.
7683 * config/s390/s390.opt: New file.
7684
84971f01
PB
76852005-04-11 Paolo Bonzini <bonzini@gnu.org>
7686
7687 * tree-complex.c (expand_vector_operations): Call
7688 update_stmt_if_modified.
7689
57d1677d
PB
76902005-04-11 Paolo Bonzini <bonzini@gnu.org>
7691
7692 * tree-vect-analyze (vect_determine_vectorization_factor):
7693 Do not use GET_MODE_NUNITS.
7694 * tree-vect-transform.c (vect_get_vec_def_for_operand,
7695 (vectorizable_load, vect_transform_loop): Likewise.
7696
f94b1661
UB
76972005-04-11 Uros Bizjak <uros@kss-loka.si>
7698
7699 * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
7700 (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
7701 * optabs.h (enum optab_index): Add new OTI_lceil.
7702 (lceil_optab): Define corresponding macro.
7703 * optabs.c (init_optabs): Initialize lceil_optab.
7704 * genopinit.c (optabs): Implement lceil_optab using lceilsi2
7705 and lceildi2 patterns.
7706 * builtins.c (expand_builtin_int_roundingfn): Handle
7707 BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
7708 (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
7709 BUILT_IN_LLCEIL{,F,L}.
7710 (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
7711 BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
7712 (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
7713 (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
7714 BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
7715 * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
7716 into lceil built-in function and (long long int)ceil{,f,l} into
7717 llceil built-in function.
7718 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
7719 BUILT_IN_LLCEIL.
7720
0dbca307
JDA
77212005-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7722
7723 * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
7724 zero.
7725
c5d34bb2
KH
77262005-04-10 Kazu Hirata <kazu@cs.umass.edu>
7727
7728 * config/arm/arm.c: Fix a comment typo.
7729 * doc/tree-ssa.texi: Fix a typo.
7730
eb232f4e
SB
77312005-04-10 Steven Bosscher <stevenb@suse.de>
7732
7733 * cselib.c (clear_table): Rename to cselib_clear_table.
7734 * cselib.h (cselib_clear_table): Add prototype.
7735 * gcse.c (gcse_main): Make 'f' argument unused.
7736 (alloc_gcse_mem): Do not walk the insn chain, walk the contents
7737 of each basic block instead.
7738 (compute_sets, compute_hash_table_work): Likewise.
7739 (constprop_register): Change int 'alter_jumps' argument to bool.
7740 (do_local_cprop): Likewise.
7741 (local_cprop_pass): Likewise. Also walk basic blocks instead of
7742 the insn chain. Explicitly clear the cselib tables after finishing
7743 one basic block. Make sure there are no unterminated libcall blocks.
7744 Update compute_sets call.
7745 (cprop): Walk basic blocks instead of the insn chain.
7746 (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
7747 Likewise.
7748 (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
7749 one_cprop_pass calls.
7750
ecf9c079
RS
77512005-04-10 Richard Sandiford <rsandifo@redhat.com>
7752
7753 * combine.c (combine_simplify_rtx): Remove a transformation that
7754 relies on an invalid assumption about rtl sign-extension semantics.
7755
f1ac52cd
RS
77562005-04-10 Richard Sandiford <rsandifo@redhat.com>
7757
7758 * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
7759 to build_int_cst_wide.
7760
46382283
AO
77612005-04-09 Alexandre Oliva <aoliva@redhat.com>
7762
7763 PR target/20126
7764 * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
7765 set the original address pseudo to the correct value before the
7766 original insn, if possible, and leave the insn alone, otherwise
7767 create a new pseudo, set it and replace it in the insn.
7768 * recog.c (validate_change_maybe_volatile): New.
7769 * recog.h (validate_change_maybe_volatile): Declare.
7770
e5e625da
CT
77712005-04-09 Caroline Tice <ctice@apple.com>
7772
7773 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
7774 Remove targetm.have_named_sections test.
7775 (fix_edges_for_rarely_executed_code): Likewise.
7776 (insert_section_boundary_note): Likewise.
7777 (reorder_basic_blocks): Check partitioning flag before calling
7778 verify_hot_cold_block_grouping.
7779 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
7780 the function struct rather than global variables.
7781 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
7782 (COLD_END_LABEL): Likewise
7783 (cold_text_section_label): New static global variable.
7784 (cold_end_label): Likewise.
7785 (dwarf2out_switch_text_section): Get hot/cold section labels from
7786 the function struct rather than global variables.
7787 (output_aranges): Use cold_text_section_label and cold_end_label;
7788 check partitioning flag before putting out delta.
7789 (output_ranges): Remove incorrect code attempting to use
7790 hot/cold labels.
7791 (output_line_info): Get cold section label from function struct.
7792 (add_location_or_const_value_attribute): Likewise.
7793 (get_subprogram_die): Get hot/cold section labels from function struct.
7794 (dwarf2out_var_location): Likewise.
7795 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
7796 write out cold_text_section_label if partition flag is set.
7797 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
7798 * function.h (struct function): Add new fields to point to hot/cold
7799 section labels: hot_section_label, cold_section_label,
7800 hot_section_end_label and cold_section_end_label; also add new field
7801 for cold text section name, unlikely_text_section_name.
7802 * opts.c (decode_options): Turn off partitioning flag if
7803 !targetm.have_named_sections.
7804 * output.h (hot_section_label): Remove.
7805 (hot_section_end_label): Remove.
7806 (cold_section_end_label): Remove.
7807 (unlikely_section_label): Remove.
7808 (unlikely_text_section_name): Remove.
7809 * passes.c (rest_of_handle_final): Remove code that frees
7810 unlikely_text_section_name.
7811 * varasm.c (unlikely_section_label): Remove.
7812 (hot_section_label): Remove.
7813 (hot_section_end_label): Remove.
7814 (cold_section_end_label): Remove.
7815 (unlikely_text_section_name): Remove.
7816 (initialize_cold_section_name): Modify to call
7817 targetm.strip_name_encoding; to store cold section name in current
7818 function struct, if it exists; and to only use the decl_section_name
7819 if flag_named_sections is true.
7820 (unlikely_text_section): Modify to get section name out of current
7821 function struct, if there is one; otherwise build it from
7822 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
7823 (in_unlikely_text_section): Likewise.
7824 (named_section): Modify to get/put cold section name in current function
7825 struct, if there is one.
7826 (function_section): Change 'bool unlikely' to 'int reloc'; check
7827 targetm.have_named_sections before calling named_section.
7828 (current_function_section): Likewise.
7829 (assemble_start_function): Modify to get/put unlikely_text_section_name
7830 in current function struct; modify to get hot/cold section labels
6ba40dd7 7831 from function struct; initialize labels using
e5e625da
CT
7832 ASM_GENERATE_INTERNAL_LABEL;
7833 test partitioning flag before writing out hot section label.
7834 (assemble_end_function): Test partitioning flag before writing out
7835 hot/cold section labels.
7836 (default_section_type_flags_1): Modify to use array instead of
7837 char* for unlikely_text_section_name; set flags correctly for
7838 cold text section if there is not a current function decl.
7839
9d30f3c1
JJ
78402005-04-09 Jakub Jelinek <jakub@redhat.com>
7841
7842 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
7843 and TI_VA_LIST_FPR_COUNTER_FIELD.
7844 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
7845 * tree-pass.h (pass_stdarg): Add.
7846 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
7847 * tree-stdarg.c: New file.
7848 * tree-stdarg.h: New file.
7849 * Makefile.in (OBJS-common): Add tree-stdarg.o.
7850 (tree-stdarg.o): Add dependencies.
7851 * function.h (struct function): Add va_list_gpr_size and
7852 va_list_fpr_size fields.
7853 * function.c (allocate_struct_function): Initialize them.
7854 * target.h (struct gcc_target): Add stdarg_optimize_hook.
7855 * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
7856 (TARGET_INITIALIZER): Add it.
7857
7858 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
7859 va_list_{g,f}pr_counter_field.
7860 (ix86_setup_incoming_varargs): Don't do anything if reg_save
7861 area will not be used. Only save registers that tree-stdarg.c
7862 detected they need saving.
7863 (ix86_va_start): Don't set up fields that won't be used.
7864
7865 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
7866 va_list_{g,f}pr_counter_field.
7867 (setup_incoming_varargs): Don't do anything if reg_save
7868 area will not be used. Only save registers that tree-stdarg.c
7869 detected they need saving.
7870 (rs6000_va_start): Don't set up fields that won't be used.
7871
7872 * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
7873 (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
7874 (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
7875 (TARGET_STDARG_OPTIMIZE_HOOK): Define.
7876
1b803355
JJ
78772005-04-09 Jakub Jelinek <jakub@redhat.com>
7878
7879 PR target/20795
7880 * config/i386/i386.c (construct_container): Pass empty aligned
7881 struct, union or class in memory.
7882
f3b569ca
KH
78832005-04-09 Kazu Hirata <kazu@cs.umass.edu>
7884
7885 * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
7886 tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
7887 config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
7888 config/rs6000/predicates.md: Fix comment typos.
7889
728522c3
KH
7890 * sched-int.h (haifa_insn_data): Remove blockage and units.
7891 (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
7892 ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
7893 MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
7894
7b0cab99
JH
78952005-04-09 Jan Hubicka <jh@suse.cz>
7896 Steven Bosscher <stevenb@suse.de>
7897
7898 * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
7899 * cfgloop.c (get_loop_exit_edges): Likewise.
7900 * cfgloopmanip.c (fix_irreducible_loops): Likewise.
7901 (unloop): Likewise.
7902 * loop-unroll.c (analyze_insns_in_loop): Likewise.
7903 * tree-cfg.c (dump_cfg_status): Likewise.
7904
5b296c8a
DE
79052005-04-09 David Edelsohn <edelsohn@gnu.org>
7906
7907 * config/rs6000/predicates.md (altivec_register_operand): Remove
7908 redundant match_code test.
7909 (gpc_reg_operand): Same.
7910 (cc_reg_operand): Same.
7911 (cc_reg_not_cr0_operand): Same.
7912
0be0a2be
JH
79132005-04-09 Jan Hubicka <jh@suse.cz>
7914
7915 Forgotten hunk from my last merge patch:
7916 * final.c (output_addr_const): Do not call mark_referenced.
7917
43ae1e1c
AM
79182005-04-09 Andrew MacLeod <amacleod@redhat.com>
7919
7920 * doc/tree-ssa.texi: Add immediate use documentation.
7921
abac3b49
RE
79222005-04-09 Richard Earnshaw <richard.earnshaw@arm.com>
7923
7924 * arm.c (FL_WBUF): Define.
7925 (arm_tune_strongarm): Renamed from arm_is_strong. All uses changed.
7926 (arm_is_6_or_7): Delete.
7927 (arm_tune_wbuf): New.
7928 (arm_override_options): Set arm_tune_wbuf.
7929 * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
7930 (arm_is_6_or_7): Delete declaration.
7931 (arm_tune_wbuf): New declartion.
7932 * arm.md (is_strongarm): Derive from arm_tune_strongarm.
7933 (model_wbuf): Derive from arm_tune_wbuf.
7934 * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
7935 (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
7936 (arm740t): Mark CPUs as having a write buffer.
7937
17153653
UB
79382005-04-09 Uros Bizjak <uros@kss-loka.si>
7939
7940 * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
7941 of 'const_double_operand' in operand 2 constraints. Update enable
7942 condition.
7943
d8b42d06
UB
79442005-04-09 Uros Bizjak <uros@kss-loka.si>
7945
7946 * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
7947 (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
7948 * optabs.h (enum optab_index): Add new OTI_lfloor.
7949 (lfloor_optab): Define corresponding macro.
7950 * optabs.c (init_optabs): Initialize lfloor_optab.
7951 * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
7952 and lfloordi2 patterns.
7953 * builtins.c (expand_builtin_int_roundingfn): New prototype.
7954 (expand_builtin_int_roundingfn): New function.
7955 (fold_builtin_int_roundingfn): New prototype.
7956 (fold_builtin_int_roundingfn): New function, renamed from
7957 fold_builtin_lround.
7958 Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
7959 BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
7960 (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
7961 BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
7962 (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
7963 (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
7964 BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
7965 * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
7966 into lfloor built-in function and (long long int)floor{,f,l} into
7967 llfloor built-in function.
7968 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
7969 BUILT_IN_LLFLOOR.
7970
fbc315db
ILT
79712005-04-08 Ian Lance Taylor <ian@airs.com>
7972
7973 * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
7974 CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
7975 * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
7976 (DO_COND, DO_BODY): Likewise.
7977 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
7978 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
7979 (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
7980 BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
7981 (build_continue_stmt, build_break_stmt): Don't declare.
7982 (c_do_switch_warnings): Update declaration.
7983 * c-gimplify.c (enum bc_t): Remove.
7984 (struct c_gimplify_ctx, ctxp): Remove.
7985 (push_context, pop_context): Remove static functions.
7986 (c_genericize): Don't call push_context or pop_context.
7987 (begin_bc_block, finish_bc_block): Remove static functions.
7988 (build_bc_goto): Likewise.
7989 (gimplify_c_loop): Likewise.
7990 (gimplify_for_stmt, gimplify_while_stmt): Likewise.
7991 (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
7992 (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
7993 DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
7994 * c-common.c (c_do_switch_warnings): Rename from
7995 c_do_switch_warnings_1.
7996 (c_do_switch_warnings) [old version]: Remove.
7997 (c_do_switch_expr_warnings): Remove.
7998 * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
7999 function instead of c_do_switch_expr_warnings.
8000 * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
8001 CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
8002 * c-pretty-print.c (pp_c_statement): Likewise.
8003 * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
8004
edc2eb9e
DP
80052005-04-08 Devang Patel <dpatel@apple.com>
8006
8007 * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
8008 While selecting replacement condition pay attention to loop header.
8009
0bca51f0
DN
80102005-04-08 Diego Novillo <dnovillo@redhat.com>
8011
8012 Merge from tree-cleanup-branch: VRP, store CCP, store
8013 copy-prop, incremental SSA updating of FUD chains and
8014 newly exposed symbols.
8015
8016 * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
8017 (OBJS-common): Add tree-vrp.o.
8018 (tree-vrp.o): New rule.
8019 * basic-block.h (nearest_common_dominator_for_set): Declare.
8020 * common.opt (ftree-store-ccp): New flag.
8021 (ftree-copy-prop): New flag.
8022 (ftree-vrp): New flag.
8023 (ftree-store-copy-prop): New flag.
8024 * dominance.c (nearest_common_dominator_for_set): New.
8025 * domwalk.c (walk_dominator_tree): Only traverse
8026 statements in blocks marked in walk_data->interesting_blocks.
8027 * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
8028 * fold-const.c (fold): Handle ASSERT_EXPR.
8029 * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
8030 Set flag_tree_store_ccp, flag_tree_store_copy_prop and
8031 flag_tree_vrp at -O2.
8032 * timevar.def (TV_TREE_VRP): Define.
8033 (TV_TREE_COPY_PROP): Define.
8034 (TV_TREE_STORE_COPY_PROP): Define.
8035 (TV_TREE_SSA_INCREMENTAL): Define.
8036 (TV_TREE_STORE_CCP): Define.
8037 * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
8038 to kill_redundant_phi_nodes from comment.
8039 (verify_expr): Handle ASSERT_EXPR.
8040 * tree-dfa.c (mark_new_vars_to_rename): Remove second
8041 argument. Update all users.
8042 (mark_call_clobbered_vars_to_rename): Remove. Update all
8043 users.
8044 * tree-flow-inline.h (unmodifiable_var_p): New.
8045 * tree-flow.h (enum value_range_type): Declare.
8046 (struct value_range_def): Declare.
8047 (value_range): Declare.
8048 (remove_all_phi_nodes_for): Remove. Update all users.
8049 (find_phi_node_for): Declare.
8050 (add_type_alias): Declare.
8051 (count_uses_and_derefs): Declare.
8052 (kill_redundant_phi_nodes): Remove.
8053 (rewrite_into_ssa): Remove.
8054 (rewrite_def_def_chains): Remove.
8055 (update_ssa, register_new_name_mapping, create_new_def_for,
8056 need_ssa_update_p, name_registered_for_update_p,
8057 release_ssa_name_after_update_ssa, dump_repl_tbl,
8058 debug_repl_tbl, dump_names_replaced_by,
8059 debug_names_replaced_by, mark_sym_for_renaming,
8060 mark_set_for_renaming, get_current_def, set_current_def,
8061 get_value_range, dump_value_range, debug_value_range,
8062 dump_all_value_ranges, debug_all_value_ranges,
8063 expr_computes_nonzero, loop_depth_of_name,
8064 unmodifiable_var_p): Declare.
8065 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
8066 ASSERT_EXPR.
8067 * tree-into-ssa.c (block_defs_stack): Update comment.
8068 (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
8069 syms_to_rename, names_to_release, repl_tbl,
8070 need_to_initialize_update_ssa_p, need_to_update_vops_p,
8071 need_to_replace_names_p): New locals.
8072 (NAME_SETS_GROWTH_FACTOR): Define.
8073 (struct repl_map_d): Declare.
8074 (struct mark_def_sites_global_data): Add field
8075 interesting_blocks.
8076 (enum rewrite_mode): Declare.
8077 (REGISTER_DEFS_IN_THIS_STMT): Define.
8078 (compute_global_livein): Use last_basic_block instead of
8079 n_basic_blocks.
8080 (set_def_block): Remove last argument. Update all callers.
8081 (prepare_use_operand_for_rename): Remove. Update all callers.
8082 (prepare_def_operand_for_rename): Remove. Update all callers.
8083 (symbol_marked_for_renaming): New.
8084 (is_old_name): New.
8085 (is_new_name): New.
8086 (repl_map_hash): New.
8087 (repl_map_eq): New.
8088 (repl_map_free): New.
8089 (names_replaced_by): New.
8090 (add_to_repl_tbl): New.
8091 (add_new_name_mapping): New.
8092 (mark_def_sites): Assume that all the operands in the
8093 statement are in normal form.
8094 (find_idf): Assert that the block in the stack is valid.
8095 (get_default_def_for): New.
8096 (insert_phi_nodes_for): Add new argument 'update_p'.
8097 Add documentation.
8098 If update_p is true, add a new mapping between the LHS of
8099 each new PHI and the name that it replaces.
8100 (insert_phi_nodes_1): Only call find_idf if needed.
8101 (get_reaching_def): Call get_default_def_for.
8102 (rewrite_operand): Remove.
8103 (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
8104 and REWRITE_THIS_STMT are false.
8105 Assume that all the operands in the statement are in
8106 normal form.
8107 (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
8108 (rewrite_virtual_phi_arguments): Remove.
8109 (invalidate_name_tags): Remove.
8110 (register_new_update_single, register_new_update_set,
8111 rewrite_update_init_block, replace_use,
8112 rewrite_update_fini_block, rewrite_update_stmt,
8113 rewrite_update_phi_arguments): New.
8114 rewrite_blocks): Remove argument 'fix_virtual_phis'.
8115 Add arguments 'entry', 'what' and 'blocks'.
8116 Initialize the dominator walker according to 'what' and
8117 'blocks'.
8118 Start the dominator walk at 'entry'.
8119 (mark_def_site_blocks): Add argument 'interesting_blocks'.
8120 Use it to configure the dominator walker.
8121 (rewrite_into_ssa): Remove argument 'all'.
8122 Make internal.
8123 (rewrite_all_into_ssa): Remove.
8124 (rewrite_def_def_chains): Remove.
8125 (mark_def_interesting, mark_use_interesting,
8126 prepare_phi_args_for_update, prepare_block_for_update,
8127 prepare_def_site_for, prepare_def_sites,
8128 dump_names_replaced_by, debug_names_replaced_by,
8129 dump_repl_tbl, debug_repl_tbl, init_update_ssa,
8130 delete_update_ssa, create_new_def_for,
8131 register_new_name_mapping, mark_sym_for_renaming,
8132 mark_set_for_renaming, need_ssa_update_p,
8133 name_registered_for_update_p, ssa_names_to_replace,
8134 release_ssa_name_after_update_ssa,
8135 insert_updated_phi_nodes_for, update_ssa): New.
8136 * tree-loop-linear.c (linear_transform_loops): Call
8137 update_ssa instead of rewrite_into_ssa.
8138 * tree-optimize.c (vars_to_rename): Remove.
8139 Update all users.
8140 (init_tree_optimization_passes): Replace
8141 pass_redundant_phi with pass_copy_prop.
8142 Add pass_vrp.
8143 Replace pass_ccp with pass_store_ccp.
8144 Add pass_store_copy_prop after pass_store_ccp.
8145 (execute_todo): If the TODO_ flags don't include updating
8146 the SSA form, assert that it does not need to be updated.
8147 Call update_ssa instead of rewrite_into_ssa and
8148 rewrite_def_def_chains.
8149 If TODO_verify_loops is set, call verify_loop_closed_ssa.
8150 (tree_rest_of_compilation):
8151 * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
8152 TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
8153 TODO_cleanup_cfg): Renumber.
8154 (TODO_verify_loops, TODO_update_ssa,
8155 TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
8156 TODO_update_ssa_only_virtuals): Define.
8157 (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
8158 Declare.
8159 * tree-phinodes.c (make_phi_node): Update documentation.
8160 (remove_all_phi_nodes_for): Remove.
8161 (find_phi_node_for): New.
8162 * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
8163 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
8164 (interpret_rhs_modify_expr): Likewise.
8165 * tree-sra.c (decide_instantiations): Mark all symbols in
8166 SRA_CANDIDATES for renaming.
8167 (mark_all_v_defs_1): Rename from mark_all_v_defs.
6ba40dd7 8168 (mark_all_v_defs): New function. Update all users to call it
0bca51f0
DN
8169 with the whole list of scalarized statements, not just the
8170 first one.
8171 * tree-ssa-alias.c (count_ptr_derefs): Make extern.
8172 (compute_flow_insensitive_aliasing): If the tag is
8173 unmodifiable and the variable isn't or vice-versa, don't
8174 make them alias of each other.
8175 (setup_pointers_and_addressables): If the type tag for
8176 VAR is about to change, mark the old one for renaming.
8177 (add_type_alias): New.
8178 * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
8179 (ccp_lattice_t): Rename from latticevalue.
8180 (value): Remove. Update all users.
8181 (const_val): New local variable.
8182 (do_store_ccp): New local variable.
8183 (dump_lattice_value): Handle UNINITIALIZED.
8184 (debug_lattice_value): New.
8185 (get_default_value): Re-write.
8186 (set_lattice_value): Re-write.
8187 (def_to_varying): Remove. Update all users.
8188 (likely_value): Return VARYING for statements that make
8189 stores when STORE_CCP is false.
8190 Return VARYING for any statement other than MODIFY_EXPR,
8191 COND_EXPR and SWITCH_EXPR.
8192 (ccp_initialize): Re-write.
8193 (replace_uses_in, replace_vuse_in, substitute_and_fold):
8194 Move to tree-ssa-propagate.c.
8195 (ccp_lattice_meet): Handle memory stores when
8196 DO_STORE_CCP is true.
8197 (ccp_visit_phi_node): Likewise.
8198 (ccp_fold): Likewise.
8199 (evaluate_stmt): Likewise.
8200 (visit_assignment): Likewise.
8201 (ccp_visit_stmt): Likewise.
8202 (execute_ssa_ccp): Add argument 'store_ccp'. Copy it
8203 into DO_STORE_CCP.
8204 (do_ssa_ccp): New.
8205 (pass_ccp): Use it.
8206 (do_ssa_store_ccp): New.
8207 (gate_store_ccp): New.
8208 (pass_store_ccp): Declare.
8209 * tree-ssa-copy.c: Include tree-ssa-propagate.h.
8210 (may_propagate_copy): Reformat.
8211 Don't abort if ORIG is a virtual and DEST isn't.
8212 If NEW does not have alias information but DEST does,
8213 copy it.
8214 (copy_of, cached_last_copy_of, do_store_copy_prop, enum
8215 copy_prop_kind, which_copy_prop): Declare.
8216 (stmt_may_generate_copy, get_copy_of_val,
8217 get_last_copy_of, set_copy_of_val, dump_copy_of,
8218 copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
8219 copy_prop_visit_stmt, copy_prop_visit_phi_node,
8220 init_copy_prop, fini_copy_prop, execute_copy_prop,
8221 gate_copy_prop, do_copy_prop, gate_store_copy_prop,
8222 store_copy_prop): New.
8223 (pass_copy_prop, pass_store_copy_prop): Declare.
8224 * tree-ssa-dom.c (struct opt_stats_d): Add fields
8225 'num_const_prop' and 'num_copy_prop'.
8226 (cprop_operand): Update them.
8227 (dump_dominator_optimization_stats): Dump them.
8228 (tree_ssa_dominator_optimize): Call update_ssa instead of
8229 rewrite_into_ssa.
8230 (loop_depth_of_name): Declare extern.
8231 (simplify_cond_and_lookup_avail_expr): Guard against NULL
8232 values for LOW or HIGH.
8233 (cprop_into_successor_phis): Only propagate if NEW != ORIG.
8234 (record_equivalences_from_stmt): Call expr_computes_nonzero.
8235 (cprop_operand): Only propagate if VAL != OP.
8236 * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
8237 statement for renaming.
8238 * tree-ssa-loop-im.c (move_computations): Call update_ssa.
8239 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
8240 add_type_alias if necessary.
8241 Call mark_new_vars_to_rename.
8242 (tree_ssa_iv_optimize): If new symbols need to be renamed,
8243 mark every statement updated, call update_ssa and
8244 rewrite_into_loop_closed_ssa.
8245 * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
8246 from LIVEIN if VAR is a virtual.
8247 * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
8248 * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
8249 (get_call_expr_operands): Reformat statement.
8250 (add_stmt_operand): Don't create V_MAY_DEFs for read-only
8251 symbols.
8252 * tree-ssa-propagate.c (ssa_prop_init): Initialize
8253 SSA_NAME_VALUE for every name.
8254 (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
8255 get_value_loaded_by): New.
8256 (replace_uses_in, replace_vuses_in, replace_phi_args_in,
8257 substitute_and_fold): Move from tree-ssa-ccp.c.
8258 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
8259 first_vdef, stmt_makes_single_load, stmt_makes_single_store,
8260 get_value_loaded_by, replace_uses_in, substitute_and_fold):
8261 Declare.
8262 * tree-ssa.c (verify_use): Fix error message.
8263 (propagate_into_addr, replace_immediate_uses, get_eq_name,
8264 check_phi_redundancy, kill_redundant_phi_nodes,
8265 pass_redundant_phi): Remove. Update all users.
8266 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8267 add_type_alias, if necessary.
8268 * tree-vectorizer.h (struct _stmt_vect_info): Update
8269 documentation for field 'memtag'.
8270 * tree-vrp.c: New file.
8271 * tree.def (ASSERT_EXPR): Define.
8272 * tree.h (ASSERT_EXPR_VAR): Define.
8273 (ASSERT_EXPR_COND): Define.
8274 (SSA_NAME_VALUE_RANGE): Define.
8275 (struct tree_ssa_name): Add field 'value_range'.
8276 (PHI_REWRITTEN): Remove.
8277 (struct tree_phi_node): Remove field 'rewritten'.
8278 * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
8279 -ftree-store-copy-prop): Document.
8280 * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
8281 Document usage of update_ssa.
8282
334269b9
DE
82832005-04-08 David Edelsohn <edelsohn@gnu.org>
8284
8285 PR target/20814
8286 * config/rs6000/predicates.md (altivec_register_operand): Accept
6ba40dd7 8287 SUBREG.
334269b9
DE
8288 (and64_operand): Do not limit CONST_INT to mask64_operand.
8289 (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
8290 (and_operand): Do not limit CONST_INT to mask_operand.
8291
797e15eb
HPN
82922005-04-09 Hans-Peter Nilsson <hp@axis.com>
8293
8294 PR rtl-optimization/20466
8295 * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
8296 for overlap of the address of each list member.
8297 (mark_set_1): Call invalidate_mems_from_set for MEMs too.
8298
ad6aaeb6
MS
82992005-04-08 Mike Stump <mrs@apple.com>
8300
8301 * config/darwin.c (indirect_data): Fix typo in strncmp logic.
6ba40dd7 8302
de2ab0ca
MS
8303 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
8304 instead of 4.
ad6aaeb6 8305
da25d93e
KH
83062005-04-08 Kazu Hirata <kazu@cs.umass.edu>
8307
8308 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
8309
5acbdd12
KH
8310 * function.c (push_function_context_to): Don't set
8311 contains_functions.
8312 * function.h (function): Remove contains_functions.
8313 (current_function_contains_functions): Remove.
8314
bdad3e2d
KH
8315 * function.h (function): Remove instrument_entry_exit.
8316 (current_function_instrument_entry_exit): Remove.
8317
df696025
KH
8318 * function.h (nonlocal_labels): Remove.
8319
54c1f920
KH
8320 * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
8321
db77171d
KH
8322 * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
8323 (check_attr_value, write_attr_get, write_expr_attr_cache,
8324 find_attr, make_internal_attr): Don't reference negative_ok or
8325 unsigned_p.
8326 * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
8327 ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
8328 (ATTR_STATIC): Adjust the value.
8329
9ff7d88e
KH
8330 * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
8331
937d85ba
UW
83322005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
8333
8334 * config/s390/tpf.h (ASM_SPEC): Define.
8335
e7e09446
KH
83362005-04-08 Kazu Hirata <kazu@cs.umass.edu>
8337
8338 * tree-flow.h: Remove the prototype for
8339 redirect_immediate_uses.
8340 (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
8341
b4a58f80
RE
83422005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
8343
8344 * arm.c (arm_const_double_by_parts): New function.
8345 * arm-protos.h (arm_const_double_by_parts): Add prototype.
8346 * arm.md (define_split for 64-bit constants): Add another one.
8347
3623aa70
AM
83482005-04-08 Andrew MacLeod <amacleod@redhat.com>
8349
8350 * tree-ssa-operands.c (correct_use_link): Remove linear scan.
8351
627aa08a
KG
83522005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8353
8354 * system.h: Revert last change.
8355
66beb87a
RS
83562005-04-08 Richard Sandiford <rsandifo@redhat.com>
8357
8358 * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
8359 (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
8360 (TARGET_SWITCHES): Delete.
8361 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
8362 * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
8363 TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
8364 * config/xtensa/xtensa.opt: New file.
8365
1a269cbb
BE
83662005-04-08 Ben Elliston <bje@au.ibm.com>
8367
8368 * config/fp-bit.c: Include L_mul_tf in #endif comment.
8369 * config/fp-bit.h: Tidy comments.
8370
d502f210
KG
83712005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8372
8373 * system.h: Poison PARAMS.
8374
80529cc0
RS
83752005-04-07 Richard Sandiford <rsandifo@redhat.com>
8376
8377 * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
8378 (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
8379 (TARGET_SWITCHES): Delete.
8380 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
8381 * config/vax/vax.opt: New file.
8382
773168c7
DB
83832005-04-07 Daniel Berlin <dberlin@dberlin.org>
8384
8385 * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
8386
03359b57
ILT
83872005-04-07 Ian Lance Taylor <ian@airs.com>
8388
8389 * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
8390 define.
8391 * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
8392 * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
8393 Likewise.
8394
ab798313
KH
83952005-04-07 Kazu Hirata <kazu@cs.umass.edu>
8396
8397 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
8398 all immediate uses in PHI nodes.
8399
9b901d50
RE
84002005-04-07 Richard Earnshaw <richard.earnshaw@arm.com>
8401
8402 * arm.c (arm_const_double_inline_cost): Handle any constant by
8403 using gen_lowpart and gen_highpart_mode.
8404 (note_invalid_constants): All constants in an RTX with a constraint
8405 that permits memory are now pushed to the constant pool.
6ba40dd7 8406 (output_move_double): Delete code to handle reg to reg and
9b901d50
RE
8407 constant to reg moves.
8408 (const_double_needs_minipool, output_mov_immediate): Delete.
8409 * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
8410 CONST_INT and CONST_VECTOR.
8411 * arm.md (ANY64): New mode macro.
8412 (arm_movdi): Split reg-reg and const-reg moves. Simplify constraints.
8413 (movdf_soft_insn): Split reg-reg and const-reg moves.
8414 (split patterns for 64-bit constant and register moves): New.
8415 * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
8416 (cirrus_movdf_hard_insn): Likewise.
8417 * fpa.md (movdf_fpa): Likewise.
8418 * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
8419 (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
8420 constraints.
8421 (movv2si_internal_2): Likewise.
8422 * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
8423 (movdf_vfp): Likewise.
8424 * arm-protos.h (output_mov_immediate): Delete prototype.
8425
7443a71d
JM
84262005-04-07 Joseph S. Myers <joseph@codesourcery.com>
8427
8428 PR target/20093
8429 * simplify-rtx.c (simplify_unary_operation_1): Check
8430 SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
8431
c7bcbc2c
JW
84322005-04-06 James E Wilson <wilson@specifixinc.com>
8433
8434 PR target/20717
8435 * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
8436 ADDR_EXPR.
8437
070e3969
RS
84382004-04-06 Richard Sandiford <rsandifo@redhat.com>
8439
8440 * coverage.h (GCOV_TYPE_NODE): Delete.
8441 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
8442 (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
8443 * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
8444 (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
8445 * value-prof.c (tree_divmod_fixed_value_transform): Delete.
8446
fb72a0a3
RS
84472004-04-06 Richard Sandiford <rsandifo@redhat.com>
8448
8449 PR other/20792
8450 * Makefile.in (gcc.pot): Remove options.c dependency.
8451 * optc-gen.awk: Don't quote help strings with N_().
8452
3425638a
JM
84532005-04-06 James A. Morrison <phython@gcc.gnu.org>
8454
8455 * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
8456 the function returns a pointer type.
8457
31617ef1
DB
84582005-04-06 Daniel Berlin <dberlin@dberlin.org>
8459
8460 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
8461 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
8462 * doc/invoke.texi: Documnet salias-max-implicit-fields.
8463 * tree-ssa-alias.c (struct used_part): Add implicit_uses and
8464 explicit_uses members.
8465 (get_or_create_used_part_for): Initialize new fields.
8466 (fieldoff_compare): New function.
8467 (create_overlap_variables_for): Count number of fields, use
8468 heuristic to determine whether to create subvars for vars with
8469 only implicit uses.
8470 Sort the field list by offset and avoid creating duplicate SFT's.
8471
4e994432
RS
84722005-04-06 Richard Sandiford <rsandifo@redhat.com>
8473
8474 * c.opt (-F): Remove trailing whitespace from help string.
8475 (-finput-charset): Use a tab to separate the switch name and help
8476 string.
8477 * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
8478 (-ftree-vectorizer-verbose): Likewise.
8479
55b12f0d
KH
84802005-04-06 Kazu Hirata <kazu@cs.umass.edu>
8481
8482 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
8483 a PHI argument where a use occurs instead of all PHI arguments.
8484
3693d46c
JM
84852005-04-06 Joseph S. Myers <joseph@codesourcery.com>
8486
8487 * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
8488 scope.
8489
f652d14b
KH
84902005-04-06 Kazu Hirata <kazu@cs.umass.edu>
8491
8492 * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
8493 tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
8494 config/bfin/bfin.h: Fix comment typos.
8495
5a4ffc2a
RM
84962005-04-06 Ranjit Mathew <rmathew@hotmail.com>
8497
8498 * doc/install.texi: Update the URL for Jacks.
8499 * doc/sourcebuild.texi: Likewise.
8500
f1b259d5
EB
85012005-04-06 Eric Botcazou <ebotcazou@libertysurf.fr>
8502
8503 PR target/17245
8504 * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
8505 Revert 2004-10-08 patch. Reject TFmode LO_SUM in 32-bit mode.
8506
fb201aa4
KC
85072005-04-06 Kelley Cook <kcook@gcc.gnu.org>
8508
8509 * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
8510
0a0da1bc
RS
85112005-04-06 Richard Sandiford <rsandifo@redhat.com>
8512
8513 * config/v850/v850-protos.h (override_options): Delete.
8514 * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
8515 (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
8516 (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
8517 (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
8518 (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
8519 (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
8520 (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
8521 (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
8522 (OVERRIDE_OPTIONS): Delete.
8523 (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
8524 (small_memory_info): Remove the value field.
8525 (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
8526 TARGET_NO_APP_REGS.
8527 * config/v850/v850.c (small_memory): Remove the value field.
8528 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8529 (override_options): Delete.
8530 (v850_handle_memory_option, v850_handle_option): New functions.
8531 * config/v850/v850.opt: New file.
8532
ed23bd30
GK
85332005-04-06 Geoffrey Keating <geoffk@apple.com>
8534
8535 * config.host: Add a section for generic hosts, and a subsection
8536 for Darwin. Add a case for x86-darwin. Update ppc-darwin case.
8537 * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
8538 * config/host-darwin.h: New.
8539 * config/x-darwin: New.
8540 * config/i386/host-i386-darwin.c: New.
8541 * config/i386/x-darwin: New.
8542 * config/rs6000/host-darwin.c: Include host-darwin.h.
8543 (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
8544 (darwin_rs6000_gt_pch_use_address): Likewise.
8545 * config/rs6000/x-darwin: Change name of .o built, update
8546 dependencies for changes to rs6000/host-darwin.c.
8547
0df9bf63
RC
85482005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
8549
8550 PR target/17824
8551 * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
8552
d401de95
DN
85532005-04-06 Dorit Naishlos <dorit@il.ibm.com>
8554
8555 * tree-vect-analyze.c (vect_analyze_loop_form): Call
6ba40dd7 8556 split_loop_exit_edge instead of loop_split_edge_with.
d401de95 8557
27ffac37
PB
85582005-04-06 Paolo Bonzini <bonzini@gnu.org>
8559
8560 * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
8561 UNSPEC_SET_VSCR): New constants, used throughout.
8562 (*andc3_v4sf): New.
8563 (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
8564 Replace with...
8565 (altivec_vspltis<VI_char>): ... this pattern, using
8566 a QImode const_int_operand for the immediate.
8567 (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
8568 define_expands.
8569
05b205e8
RC
85702005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
8571
8572 PR target/17822
8573 * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
8574
d34a464a
KC
85752005-04-06 Kelley Cook <kcook@gcc.gnu.org>
8576
8577 * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
8578
8ecf5a68
BE
85792005-04-06 Ben Elliston <bje@au.ibm.com>
8580
8581 * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
8582 DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
8583 macros as living in "this file" and not gcc.h.
8584
3c632d89
BE
85852005-04-06 Ben Elliston <bje@au.ibm.com>
8586
8587 * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
8588 -ftree-live_range_split. Perhaps renamed at some point?
8589
d482f417
ZD
85902005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
8591
8592 PR target/20625
8593 * tree-ssa-loop-ivopts.c (generic_type_for): New function.
8594 (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
8595
c33e657d
ZD
85962005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
8597
8598 * tree-flow.h (number_of_iterations_cond): Declaration removed.
8599 * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
8600 (number_of_iterations_special): New function.
8601 (number_of_iterations_exit): Use number_of_iterations_special.
8602 Use simplify_using_outer_evolutions only at -O3.
8603 (number_of_iterations_cond, tree_simplify_using_condition,
8604 simplify_using_initial_conditions, loop_niter_by_eval,
8605 compare_trees, can_count_iv_in_wider_type_bound,
8606 simplify_using_outer_evolutions): Use fold_build.
8607
c33b7bf0
TF
86082005-04-05 Thomas Fitzsimmons <fitzsim@redhat.com>
8609
8610 * doc/install.texi (Configuration): Document --with-java-home.
8611
b4e82619
RH
86122005-04-05 Richard Henderson <rth@redhat.com>
8613
8614 PR target/20342
8615 PR target/20447
8616 * config/i386/i386.c (print_operand): Handle vector zeros.
8617 (ix86_split_to_parts): Handle CONST_VECTOR.
8618 (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
8619 (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
8620 what modes to tie for MMX and SSE registers.
8621 * config/i386/i386.h (MMX_REG_MODE_P): Remove.
8622 * config/i386/i386.md: Extend move 0 -> xor peephole to apply
8623 to vector modes as well.
8624 * config/i386/predicates.md (const0_operand): Handle VOIDmode
8625 properly as an input mode.
8626
13148dd2
AM
86272005-04-05 Andrew MacLeod <amacleod@redhat.com>
8628
8629 * tree-ssa-operands.c (verify_abort): Use %p for pointers.
8630
dbb9a00f
AM
86312005-04-05 Andrew MacLeod <amacleod@redhat.com>
8632
8633 * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
8634
f19e3a64
JJ
86352005-04-05 Jakub Jelinek <jakub@redhat.com>
8636
8637 * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
8638 and local functions, set sse_nregs to 8 and float_in_sse.
8639 (function_arg_advance, function_arg): If float_in_sse, pass
8640 SFmode and DFmode arguments in SSE registers.
8641 * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
8642
8643 * config/i386/i386.c (ix86_value_regno): Only optimize local functions
8644 of -funit-at-a-time.
8645
86462005-04-05 Paolo Bonzini <bonzini@gnu.org>
8647
8648 * config/i386/i386-protos.h (ix86_function_value): Accept two
8649 arguments, like the target macro.
8650 * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
8651 * config/i386/i386.c (ix86_function_value): Accept the second
8652 argument of the target macro.
8653 (ix86_function_ok_for_sibcall): Pass a function pointer to
8654 ix86_function_value.
8655 (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
8656 call to ix86_value_regno).
8657 (ix86_value_regno): Add support for returning floating point values
8658 in SSE registers.
8659
4b284111
JJ
86602005-04-05 Jakub Jelinek <jakub@redhat.com>
8661
8662 PR tree-optimization/20076
8663 * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
8664 that call __builtin_return or __builtin_apply_args.
8665
f430bae8
AM
86662005-04-05 Andrew MacLeod <amacleod@redhat.com>
8667
8668 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
8669 Use immediate use iterator.
8670 (stmt_is_bumper_for_loop): Use immediate use iterator.
8671 * predict.c (strip_builtin_expect): Use update_stmt.
8672 * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
8673 on all elements of a STATEMENT_LIST.
8674 (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
8675 (bsi_remove): Remove imm_use links and mark the stmt as modified.
8676 (bsi_replace): Mark stmt as modified and the update it.
8677 * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
8678 (expand_complex_libcal): Call update_stmt.
8679 (expand_complex_comparison): Call mark_stmt_modified.
8680 (expand_complex_operations_1): Call update_stmt_if_modified.
8681 (expand_vector_operations_1): Call mark_stmt_modified.
8682 * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
8683 compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
8684 add_immediate_use, redirect_immediate_use,
8685 redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
8686 dump_immediate_uses_for, debug_immediate_uses_for): Delete.
8687 (mark_new_vars_to_rename): Call update_stmt.
8688 * tree-dump.c (dump_option_value_in): Add "stmtaddr".
6ba40dd7 8689 * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
f430bae8
AM
8690 Ignore PHI nodes.
8691 (unmodify_stmt): Delete.
8692 (update_stmt): New. Force an update of a stmt.
8693 (update_stmt_if_modified): update a stmt if it is out of date.
6ba40dd7 8694 (get_stmt_operands): Verify stmt is NOT modified.
f430bae8
AM
8695 (stmt_modified_p): Update comment.
8696 (delink_imm_use): Remove a use node from its immuse list.
8697 (link_imm_use_to_list): Link a use node to a specific list.
8698 (link_imm_use): Link a node to the correct list.
8699 (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
8700 it in the correct list, if appropriate.
8701 (link_imm_use_stmt): Link a use node, and set the stmt pointer.
8702 (relink_imm_use): Link a use node in place of another node in a list.
8703 (relink_imm_use_stmt): LInk a node in place of another node, and set
8704 the stmt pointer.
8705 (end_safe_imm_use_traverse): New. Terminate a safe immuse iterator.
8706 (end_safe_imm_use_p): New. Check for the end of a safe immuse iterator.
8707 (first_safe_imm_use): New. Initialize a safe immuse iterator.
8708 (next_safe_imm_use): New. Proceed to next safe immuse iterator value.
8709 (end_readonly_imm_use_p): New. Check for end of a fast immuse iterator.
8710 (first_readonly_imm_use): New. Initialize a fast immuse iterator.
8711 (next_readonly_imm_use): New. Get the next fast immuse iterator value.
8712 (has_zero_uses): New. Return true if there are no uses of a var.
8713 (has_single_use): New. Return true if there is only a single use of a
8714 variable.
8715 (single_imm_use): New. Return the simgle immediate use.
8716 (num_imm_uses): New. Return the number of immediate uses.
8717 (get_v_must_def_ops): Use is now a pointer.
8718 (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
6ba40dd7 8719 get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
f430bae8
AM
8720 the use node.
8721 (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
8722 (delink_stmt_imm_use): Delink all immuses from a stmt.
8723 (phi_arg_index_from_use): New. Return a phi arg index for a use.
8724 * tree-flow.h (struct dataflow_d): Delete.
8725 (immediate_use_iterator_d): New. Immediate use iterator struct.
8726 (FOR_EACH_IMM_USE_FAST): New. Macro for read only immuse iteration.
8727 (FOR_EACH_IMM_USE_SAFE): New. Macro for write-safe immuse iteration.
6ba40dd7 8728 (BREAK_FROM_SAFE_IMM_USE): New. Macro for earlyu exit from write-safe
f430bae8
AM
8729 iteration.
8730 (struct stmt_ann_d): Remove dataflow_t from struct.
8731 * tree-if-conv.c (tree_if_conversion). Don't call free_df.
8732 (if_convertible_phi_p): Use FAST immuse iterator.
8733 (if_convertible_loop_p): Don't call compute_immediate_uses.
8734 (replace_phi_with_cond_modify_expr): Call update_stmt.
6ba40dd7 8735 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
f430bae8
AM
8736 update_stmt_if_modified.
8737 (rewrite_all_into_ssa): Initialize ssa operands.
8738 * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
8739 compute_immediate_uses.
6ba40dd7 8740 * tree-optimize.c (execute_todo): Call verify_ssa whenever the
f430bae8
AM
8741 ssa_property is available.
8742 (execute_one_pass): Change parameters passed to execute_todo.
8743 * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
8744 (remove_ssa_form): Call fini_ssa_operands.
8745 (insert_backedge_copies): Delete call to modify_stmt.
8746 * tree-phinodes.c (make_phi_node): Initialize use nodes.
8747 (release_phi_node): Delink any use nodes before releasing.
8748 (resize_phi_node): Relink any use nodes.
8749 (remove_phi_arg_num): Delink the use node.
8750 (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
8751 (remove_all_phi_nodes_for): Release phi node first.
8752 * tree-pretty-print.c (dump_generic_node): Print stmt address.
8753 * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
8754 (scalarize_use, scalarize_copy): Call update_stmt.
8755 * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
8756 (compute_points_to_and_addr_escape): Call mark_stmt_modified.
8757 * tree-ssa-cpp.c (need_imm_uses_for): Delete.
8758 (ccp_initialize): Remove call to compute_immediate_uses.
8759 (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
6ba40dd7 8760 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
f430bae8
AM
8761 stmts.
8762 (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
8763 (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
8764 (eliminate_redundant_computations): Call mark_stmt_modified.
8765 (cprop_operand): Call mark_stmt_modified.
8766 (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
8767 * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
8768 (dse_optimize_stmt): Use new immuse interface.
8769 (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
8770 * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
8771 (substitute_single_use_vars): Use new immuse interface.
8772 (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
8773 and compute_immediate_uses.
6ba40dd7 8774 * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
f430bae8
AM
8775 interface.
8776 (rewrite_mem_refs): Call update_stmt.
8777 (determine_lsm): Remove call to compute_imm_uses and free_df.
8778 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
8779 (try_unroll_loop_completely): Call update_stmt.
8780 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
8781 (rewrite_use_compare): Call update_stmt.
8782 (compute_phi_arg_on_exit): Insert each stmt before trying to process.
8783 (rewrite_use) : Call update_stmt.
8784 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
6ba40dd7 8785 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
f430bae8
AM
8786 update_stmt.
8787 * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
8788 (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
8789 (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
8790 use nodes.
8791 (initialize_vuse_operand): New. Initialize a vuse operand.
8792 (initialize_v_may_def_operand): New. Initialize a maydef operand.
8793 (initialize_v_must_def_operand): New. Initialize a mustdef operand.
8794 (finalize_ssa_defs): Use stmt parameter.
8795 (correct_use_link): Ensure a use node is in the correct list, and has
8796 the correct stmt pointer.
8797 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
8798 finalize_ssa_v_must_defs): Also initialize use nodes.
8799 (finalize_ssa_stmt_operands): Pass extra stmt operands.
8800 (build_ssa_operands): Seperate parsing from final operand construction.
8801 (parse_ssa_operands): New. Parse entry point for operand building.
8802 (swap_tree_operands): New. Swap 2 tree operands.
8803 (update_stmt_operands): Ranamed from get_stmt_operands. Always builds
8804 operands.
8805 (get_expr_operands): Call swap_tree_operands when needed.
8806 (copy_virtual_operands): Use initialize routines for virtual use ops.
8807 (create_ssa_artficial_load_stmt): Add extra stmt parameter.
8808 (verify_abort): New. Issue imm_use error.
8809 (verify_imm_links): New Verify imm_use links for a var.
8810 (dump_immediate_uses_for): New. Dump imm_uses for a var to file.
8811 (dump_immediate_uses): New. Dump imm_uses for all vars to file.
8812 (debug_immediate_uses): New. Dump imm_uses for all vars to stderr.
8813 (debug_immediate_uses_for): New. Dump imm_uses for a var to stderr.
8814 * tree-ssa-operands.h (struct use_operand_ptr): Delete.
8815 (NULL_USE_OPERAND_P) Define.
8816 (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
8817 use node.
8818 (struct vuse_operand_type): New struct.
8819 (SET_USE): Call set_ssa_use_from_ptr.
8820 (USE_STMT): Define.
8821 (PHI_ARG_INDEX_FROM_USE): Define.
6ba40dd7 8822 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
f430bae8
AM
8823 argument via SET_USE, not PHI_ARG_DEF_TREE.
8824 * tree-ssa-pre.c (eliminate): Call update_stmt.
8825 * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators. Don't
8826 call free_df.
8827 * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
8828 (nearest_common_dominator_of_uses): Use imm_use iterator.
8829 (statement_sink_location): Use imm_use iterator and interface.
8830 (execute_sink_code): Don't call compute_immediate_uses or free-df.
8831 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
8832 PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
8833 * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
8834 (verify_ssa): Ensure no stmt is marked modify after optimization pass
8835 if new parameter is true.
8836 (init_tree_ssa): Don't initialize operand cache here.
8837 (delete_tree_ssa): Don't destroy operand cache here.
8838 (propagate_into_addr): Pass in a use pointer, return true if anything
8839 was changed.
8840 (replace_immediate_uses): Use imm_use iterator, call update_stmt.
8841 (check_phi_redundancy): Use imm_use iterator.
6ba40dd7 8842 (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
f430bae8
AM
8843 free_df.
8844 * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
8845 (release_ssa_name): Delink node and all elements in its imm_use list.
8846 * tree-tailcall.c (adjust_return_value): Call update_stmt.
8847 * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
8848 * tree-vectorizer.c (need_imm_uses_for): Delete.
8849 (vectorize_loops): Dont call compute_immediate_uses or free_df.
8850 * tree.h (struct ssa_imm_use_d): Define.
8851 (SSA_NAME_IMM_USE_NODE): Define.
8852 (struct tree_ssa_name): Add imm_use node.
8853 (PHI_DF): Delete.
8854 (PHI_ARG_IMM_USE_NODE): Define.
8855 (struct phi_arg_d): Add imm_use node.
8856 (struct tree_phi_node): Remove struct dataflow_d element.
8857 (TDF_STMTADDR): Define.
8858
3450cbc4
DJ
88592005-04-05 Dale Johannesen <dalej@apple.com>
8860
8861 * doc/invoke.texi (Optimization Options): Remove
8862 duplicate -fcse-follow-jumps. Add -fweb.
8863 (-ftree-lim): Fix spelling (-ftree-loop-im, invariants).
8864 (-fivcanon): Fix spelling (-ftree-loop-ivcanon).
8865
bb0a4525
PB
88662005-04-05 Per Bothner <per@bothner.com>
8867
8868 * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
8869 to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
8870 (warn_uninit): Get EXPR_LOCUS from context now instead.
8871 This fixes a USE_MAPPED_LOCATION testsuite failure.
8872
8873 * tree-ssa.c (warn_uninitialized_var): Remove useless local.
8874
b747e45d
PB
88752005-04-05 Per Bothner <per@bothner.com>
8876
8877 * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
8878 of the artification 'return 0' in main() to BUILTINS_LOCATION.
8879 * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
6ba40dd7 8880 before warning.
b747e45d 8881
3e0de9d1
DP
88822004-04-05 Devang Patel <dpatel@apple.com>
8883
8884 * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
8885 (lhsr<mode>3): ... new name.
8886 (altivec_vsra<VI_char>): Rename to ..
8887 (ashr<mode>3): ... new name.
8888 * config/rs6000/rs6000.c (builtin_description): Rename shift
8889 operations.
6ba40dd7 8890
bf667275
PB
88912004-04-05 Paolo Bonzini <bonzini@gnu.org>
8892
8893 * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
8894 gen_lowpart_for_combine.
8895 * cse.c (gen_lowpart_if_possible): Move...
8896 * rtlhooks.c (gen_lowpart_if_possible): ... here. Also try
8897 gen_lowpart_SUBREG.
8898 (gen_lowpart_no_emit_general): Use it.
8899
c81739f7
EB
89002005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
8901
8902 * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
8903 overriding.
8904
9e9126f3
PB
89052005-04-05 Paolo Bonzini <bonzini@gnu.org>
8906
8907 * system.h: Fix typo.
8908
0d4a78eb
BS
89092005-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
8910
8911 * config/bfin/bfin-modes.def: New file.
8912 * config/bfin/bfin-protos.h: New file.
8913 * config/bfin/bfin.c: New file.
8914 * config/bfin/bfin.h: New file.
8915 * config/bfin/bfin.md: New file.
8916 * config/bfin/bfin.opt: New file.
8917 * config/bfin/crti.s: New file.
8918 * config/bfin/crtn.s: New file.
8919 * config/bfin/elf.h: New file.
8920 * config/bfin/lib1funcs.asm: New file.
8921 * config/bfin/predicates.md: New file.
8922 * config/bfin/t-bfin: New file.
8923 * config/bfin/t-bfin-elf: New file.
8924 * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
8925 Document new attributes.
8926 (interrupt, interrupt_handler, saveall): Update documentation for
8927 these attributes.
8928 * doc/install.texi (Specific): Add entry for the Blackfin.
8929 * doc/invoke.texi (Blackfin Options): New section.
8930 * doc/md.texi (Blackfin family): New section to document constraints.
8931 * config.gcc: Add bfin*-* and bfin*-elf configurations.
8932
1de2bc2a 89332005-04-05 Olivier Hainque <hainque@adacore.com>
6ba40dd7 8934
1de2bc2a
OH
8935 * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
8936 match what the system unwinder expects.
8937 * config/mips/mips.c (mips_frame_set): If we're saving the return
8938 address register and the dwarf return address column number differs
8939 from the hard register number, adjust the note reg to refer to the
8940 former.
8941
13dd556c
RS
89422004-04-05 Richard Sandiford <rsandifo@redhat.com>
8943
8944 * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
8945 * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
8946 (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
8947 (processor_type): New enum.
8948 (mn10300_processor): New variable.
8949 (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
8950 (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
8951 * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
8952 (PROCESSOR_DEFAULT): New macro.
8953 * config/mn10300/mn10300.c (mn10300_processor): New variable.
8954 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8955 (mn10300_handle_option, mn10300_override_options): New functions.
8956 * config/mn10300/mn10300.opt: New file.
8957
c4cdbeb4 89582005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
eb232f4e 8959 Sebastian Pop <sebastian.pop@cri.ensmp.fr>
c4cdbeb4
EB
8960
8961 PR tree-optimization/19903
8962 * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
8963 that don't fit in their type after conversion.
8964
d8b42d06 89652005-04-05 Uros Bizjak <uros@kss-loka.si>
c9d3aede
UB
8966
8967 PR target/20421
8968 * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
8969 (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
8970 Allocate local stack slots here. Set ix86_optimize_mode_switching.
6ba40dd7 8971 flag here. Implement using define_insn_and_split.
c9d3aede
UB
8972 (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
8973 (frndintxf2_mask_pm_i387): New insn patterns.
8974 (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
8975 Do not set ix86_optimize_mode_switching flag.
8976 (ceilsf2, ceildf2, ceilxf2): Same.
8977 (btruncsf2, btruncdf2, btruncxf2): Same.
8978 (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
8979
3ce9c824
ILT
89802005-04-05 Ian Lance Taylor <ian@airs.com>
8981
8982 PR debug/9963
8983 * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
8984 i386_pe_record_external_function.
8985 (i386_pe_record_external_function): Update declaration.
8986 * config/i386/winnt.c (struct extern_list): Add decl field.
8987 (i386_pe_record_external_function): Add decl parameter.
8988 (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
8989 identifier.
8990 * config/i386/i386-protos.h (i386_pe_record_external_function):
8991 Update declaration.
8992
41b6a5e2
KH
89932005-04-05 Kazu Hirata <kazu@cs.umass.edu>
8994
8995 * config/m68k/m68k-protos.h: Add a prototype for
8996 valid_dbcc_comparison_p_2.
8997 * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
8998 extend_operator, const_uint32_operand, const_sint32_operand,
8999 general_src_operand, nonimmediate_src_operand,
9000 memory_src_operand, post_inc_operand, pre_dec_operand,
9001 pcrel_address): Move to predicates to predicates.md.
9002 * config/m68k/m68k.h (PREDICATE_CODES): Remove.
9003 * config/m68k/m68k.md: Include predicates.md.
9004 * config/m68k/predicates.md: New.
9005
acaa3bf7
RS
90062005-04-04 Roger Sayle <roger@eyesopen.com>
9007
9008 * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
9009
9010 * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
9011
604f5adf
ILT
90122005-04-04 Ian Lance Taylor <ian@airs.com>
9013
9014 * c-typeck.c (struct c_switch): Rename switch_stmt field to
9015 switch_expr.
9016 (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
9017 (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
9018 (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
9019 Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
9020 * c-common.c (c_do_switch_warnings_1): New static function broken
9021 out of c_do_switch_warnings.
9022 (c_do_switch_warnings): Call c_do_switch_warnings_1.
9023 (c_do_switch_expr_warnings): New function.
9024 * c-common.h (c_do_switch_expr_warnings): Declare.
9025
f9013075
DE
90262005-04-04 David Edelsohn <edelsohn@gnu.org>
9027 Daniel Jacobowitz <dan@codesourcery.com>
9028
9029 * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
9030 trapping divide.
9031 * rtlanal.c (may_trap_p): Same.
9032
57e921bc
DJ
90332005-04-04 Dale Johannesen <dalej@apple.com>
9034
9035 * ChangeLog: remove reference to ChangeLog.12.
9036
04539954
HPN
90372005-04-05 Hans-Peter Nilsson <hp@axis.com>
9038
9039 CRIS epilogue as RTL.
9040 * config/cris/cris.md: Change all 0 in unspec 0 to
9041 CRIS_UNSPEC_PLT.
eb232f4e 9042 (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
04539954
HPN
9043 ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
9044 patterns.
9045 ("return"): Change to define_expand. Call cris_expand_return for
9046 actual expansion.
9047 ("*return_expanded"): New pattern.
9048 ("epilogue"): New define_expand.
9049 * config/cris/cris.h (PREDICATE_CODES): Add
9050 cris_load_multiple_op.
9051 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
9052 type.
9053 (enum cris_retinsn_type): New.
9054 (struct machine_function): New member return_type.
9055 (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
9056 (cris_target_asm_function_epilogue): Remove, moving RTLified
9057 contents to...
9058 (cris_expand_epilogue): New function.
9059 (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
9060 (cris_gen_movem_load, cris_load_multiple_op)
9061 (cris_return_address_on_stack_for_return, cris_expand_return): New
9062 functions.
9063 (cris_target_asm_function_prologue)
9064 (cris_initial_frame_pointer_offset): Call
9065 cris_reg_saved_in_regsave_area instead of complicated expression.
9066 Call cris_return_address_on_stack instead of an expression.
9067 (cris_print_operand) <case 'o', case 'O'>: New cases.
9068 (cris_return_address_on_stack): Change return-type to bool.
9069 (cris_simple_epilogue): Ditto. Return false if registers are
9070 saved.
9071 * config/cris/cris-protos.h (cris_simple_epilogue)
9072 (cris_return_address_on_stack): Adjust prototype return type.
9073 (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
9074 (cris_return_address_on_stack_for_return): New prototypes.
9075
71294e1e
KH
90762005-04-04 Kazu Hirata <kazu@cs.umass.edu>
9077
9078 * config/frv/frv.h (PREDICATE_CODES): Add CONST to
9079 gpr_or_int12_operand.
9080
6d26dc3b
KH
9081 * config/frv/frv-protos.h: Add a prototype to
9082 frv_legitimate_memory_operand and frv_const_unspec_p.
9083 (frv_unspec): Move from frv.c.
9084 * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
9085 (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
9086 (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
9087 gpr_or_fpr_operand, gpr_or_int12_operand,
9088 gpr_fpr_or_int12_operand, fpr_or_int6_operand,
9089 gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
9090 int6_operand, int5_operand, uint5_operand, uint4_operand,
9091 uint1_operand, int_2word_operand, uint16_operand,
9092 upper_int16_operand, integer_register_operand,
9093 gpr_no_subreg_operand, fpr_operand, even_reg_operand,
9094 odd_reg_operand, even_gpr_operand, odd_gpr_operand,
9095 quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
9096 dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
9097 move_destination_operand, movcc_fp_destination_operand,
9098 frv_function_symbol_referenced_p, move_source_operand,
9099 condexec_dest_operand, condexec_source_operand,
9100 reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
9101 const_unspec_operand, gpr_or_memory_operand,
9102 gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
9103 icc_operand, fcc_operand, cc_operand, icr_operand,
9104 fcr_operand, cr_operand, call_operand, sibcall_operand,
9105 symbolic_operand, relational_operator,
9106 integer_relational_operator, float_relational_operator,
9107 ccr_eqne_operator, minmax_operator,
9108 condexec_si_binary_operator, condexec_si_media_operator,
9109 condexec_si_divide_operator, condexec_si_unary_operator,
9110 condexec_sf_conv_operator, condexec_sf_add_operator,
9111 condexec_memory_operand, intop_compare_operator, acc_operand,
9112 even_acc_operand, quad_acc_operand, accg_operand: Move to
9113 predicates.md.
9114 * config/frv/frv.h (PREDICATE_CODES): Remove.
9115 * config/frv/frv.md: Include predicates.md.
9116 * config/frv/predicates.md: New.
9117
39b4020c
RS
91182004-04-04 Richard Sandiford <rsandifo@redhat.com>
9119
ac69316a 9120 PR target/19537
39b4020c
RS
9121 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
9122 * tree-ssa-loop-ivopts.c: Include langhooks.h.
9123 (add_standard_iv_candidates_for_size): New function, extracting code
9124 from add_standard_iv_candidates and parameterizing it by type size.
9125 (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
9126
251e2ff2
RS
91272004-04-04 Richard Sandiford <rsandifo@redhat.com>
9128
9129 * system.h (GCOV_SIZE_TYPE): Unposion.
9130 * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
9131 (GCOV_TYPE_SIZE): ...this new macro.
9132 * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
9133 * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
9134 (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
9135 (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
9136 (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
9137 instead of unsigned_intSI_type_node.
9138 * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
9139 (rtl_gen_one_value_profiler_no_edge_manipulation)
9140 (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
9141 * value-prof.c: Include coverage.h.
9142
b89361c6
DB
91432005-04-02 Daniel Berlin <dberlin@dberlin.org>
9144 Diego Novillo <dnovillo@redhat.com>
6ba40dd7 9145
b89361c6
DB
9146 Fix PR tree-optimization/20703
9147 Fix PR tree-optimization/20725
6ba40dd7 9148
b89361c6
DB
9149 * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
9150 (create_expression_by_pieces): Ditto.
9151 (valid_in_set): Ditto. Also handle tcc_declaration.
9152 (find_or_generate_expression): Handle comparison class.
9153 (insert_into_preds_of_block): Ditto.
9154 (insert_aux): Ditto.
9155 (create_value_expr_from): Handle comparison class, recursively
9156 handle reference nodes.
9157 (compute_avail): Handle comparison classes, rewrite a little cleaner.
9158 (execute_pre): Fix spacing.
9159 (do_fre): Renamed to execute_fre.
9160
d4e1591f
EB
91612005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
9162
9163 * doc/invoke.texi (SPARC options): Document that
9164 -mlittle-endian is not supported on Linux either.
9165
6d6f2d08
EB
91662005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
9167
9168 PR target/4198
9169 PR target/12027
9170 * config.gcc (Obsolete configurations): Remove
92e9e0ca 9171 sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
6d6f2d08
EB
9172 (sparclite-*-coff*): Delete.
9173 (sparclite-*-elf*): Likewise.
9174 (sparc86x-*-elf*): Likewise.
9175 (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
9176 * config/sparc/lite.h: Delete.
9177 * config/sparc/litecoff.h: Likewise.
9178 * config/sparc/liteelf.h: Likewise.
9179 * config/sparc/sp86x-elf.h: Likewise.
9180 * config/sparc/t-sparclite: Likewise.
9181 * config/sparc/t-sp86x: Likewise.
9182
91832005-04-04 Adrian Straetling <straetling@de.ibm.com>
0bfc3f69
AS
9184
9185 * config/s390/s390-protos.h: (s390_comparison,
9186 s390_alc_comparison, s390_slb_comparison, const0_operand,
9187 consttable_operand, larl_operand, s_operand,
9188 shift_count_operand, bras_sym_operand, load_multiple_operation,
9189 store_multiple_operation, s390_plus_operand): Remove prototypes.
9190 (s390_legitimate_address_without_index_p): New prototype.
9191 * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
9192 to s390.h.
9193 (s390_comparison, s390_alc_comparison, s390_slb_comparison,
9194 const0_operand, consttable_operand, larl_operand, s_operand,
9195 shift_count_operand, bras_sym_operand, load_multiple_operation,
9196 store_multiple_operation, s390_plus_operand): Move to
9197 predicates.md.
9198 (check_mode): Remove.
9199 (s390_branch_condition_mask): Remove 'static'. Move prototype to
9200 s390-protos.h.
9201 (s390_legitimate_address_without_index_p): New.
9202 * config/s390/s390.h (PREDICATE_CODES): Remove.
9203 * config/s390/s390.md: Include predicates.md.
9204 * config/s390/predicates.md: New.
9205
5e77eb53
EB
92062005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
9207
9208 PR target/20446
9209 * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
9210 * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
9211 (NEED_INDICATE_EXEC_STACK): Define to 1.
9212 * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
9213 (NEED_INDICATE_EXEC_STACK): Define to 1.
9214 * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
9215 (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
9216 (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
9217 (pic_helper_emitted_p): New global.
9218 (emit_pic_helper): New function extracted from...
9219 (load_pic_register): ...here. Add 'delay_pic_helper' parameter.
9220 Do not call emit_pic_helper if delay_pic_helper is true.
9221 (sparc_expand_prologue): Pass 'false' to load_pic_register.
9222 (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
9223 (sparc_file_end): New function.
9224
54d58eaf
KH
92252005-04-04 Kazu Hirata <kazu@cs.umass.edu>
9226
9227 * config/mcore/mcore-protos.h: Remove the prototypes for
9228 mcore_arith_reg_operand, mcore_general_movsrc_operand,
9229 mcore_general_movdst_operand, mcore_reload_operand,
9230 mcore_arith_J_operand, mcore_arith_K_operand,
9231 mcore_arith_K_operand_not_0, mcore_arith_M_operand,
9232 mcore_arith_K_S_operand, mcore_arith_imm_operand,
9233 mcore_arith_any_imm_operand, mcore_arith_O_operand,
9234 mcore_literal_K_operand, mcore_addsub_operand,
9235 mcore_compare_operand, mcore_load_multiple_operation,
9236 mcore_store_multiple_operation, mcore_call_address_operand.
9237 Add a prototype for const_ok_for_mcore.
9238 * config/mcore/mcore.c (mcore_call_address_operand,
9239 mcore_general_movsrc_operand, mcore_general_movdst_operand,
9240 mcore_arith_reg_operand, mcore_reload_operand,
9241 mcore_arith_J_operand, mcore_arith_K_operand,
9242 mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
9243 mcore_arith_M_operand, mcore_arith_imm_operand,
9244 mcore_arith_any_imm_operand, mcore_arith_O_operand,
9245 mcore_literal_K_operand, mcore_addsub_operand,
9246 mcore_compare_operand, mcore_load_multiple_operation,
9247 mcore_store_multiple_operation): Move to predicates.md.
9248 (const_ok_for_mcore): Export.
9249 * config/mcore/mcore.h (PREDICATE_CODES): Remove.
9250 * config/mcore/mcore.md: Include predicates.md.
9251 * config/mcore/predicates.md: New.
9252
105d7df6
KH
9253 * config/mcore/predicates.md: Fix a comment typo.
9254
ed0e512a
AK
92552005-04-04 Andreas Krebbel <krebbel1@de.ibm.com>
9256 Adrian Straetling <straetling@de.ibm.com>
9257
9258 * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
9259 * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
9260 * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
9261 attribute.
9262 ("imul"): Removed from "type" attribute.
9263 ("*muldi3_sign", "muldi3"): Changed type to imuldi.
6ba40dd7 9264 ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
ed0e512a
AK
9265 Changed type to imulsi.
9266 ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
9267
78fb8038
RS
92682005-04-04 Richard Sandiford <rsandifo@redhat.com>
9269
9270 * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
9271 (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
9272 (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
9273 (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
9274 (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
9275 (TARGET_SWITCHES, mcore_stack_increment_string)
9276 (TARGET_OPTIONS): Delete.
9277 (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
9278 than *_BIT constants.
9279 (TARGET_8ALIGN): #undef old definition before redefining to 1.
9280 * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
9281 (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
9282 (mcore_override_options): Delete mcore_stack_increment code.
9283 Change use of M340_BIT to MASK_M340.
9284 * config/mcore/mcore.opt: New file.
9285
09c3c5dc
ILT
92862005-04-04 Ian Lance Taylor <ian@airs.com>
9287
9288 * config/arm/arm.c (replace_symbols_in_block): Remove static
9289 function.
9290
f17178cf
KH
92912005-04-04 Kazu Hirata <kazu@cs.umass.edu>
9292
9293 * config/fr30/fr30-protos.h: Remove the prototypes for
9294 stack_add_operand, add_immediate_operand,
9295 high_register_operand, low_register_operand, call_operand,
9296 di_operand, and nonimmediate_di_operand.
9297 * config/fr30/fr30.c (stack_add_operand,
9298 add_immediate_operand, high_register_operand,
9299 low_register_operand, call_operand, di_operand,
9300 nonimmediate_di_operand): Move to predicates.md.
9301 * config/fr30/fr30.h (PREDICATE_CODES): Remove.
9302 * config/fr30/fr30.md: Include predicates.md.
9303 * config/fr30/predicates.md: New.
9304
a9563ea3
KH
9305 * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
9306 LABEL_REF to mcore_general_movsrc_operand. Add SYMBOL_REF to
9307 mcore_call_address_operand.
9308
48c961ad
KH
9309 * config/sh/sh.h (PREDICATE_CODES): Add CONST to
9310 general_movsrc_operand.
9311
8785e81a
AM
93122005-04-04 Alan Modra <amodra@bigpond.net.au>
9313
9314 * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
9315 after freeing.
9316
04d8b819
RE
93172005-04-04 Richard Earnshaw <richard.earnshaw@arm.com>
9318
9319 PR target/14812
9320 * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
9321 a negated value.
9322
4b8d544b
JJ
93232005-04-04 Richard Henderson <rth@redhat.com>
9324 Jakub Jelinek <jakub@redhat.com>
9325
9326 PR rtl-optimization/16104
9327 * fold-const.c (fold_unary): Fix folding of vector conversions.
9328
d45d2353
RS
93292005-04-04 Richard Sandiford <rsandifo@redhat.com>
9330
9331 * config.gcc (xstormy16-*-elf): Set extra_options.
9332 * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
9333 * config/stormy16/stormy16.opt: New file.
9334
06ed4795
RS
93352005-04-04 Richard Sandiford <rsandifo@redhat.com>
9336
9337 * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
9338 (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
9339 (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
9340 (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
9341 (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
9342 (TARGET_UNIX_ASM): Delete.
9343 (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
9344 * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
9345 * config/pdp11/pdp11.c (pdp11_handle_option): New function.
9346 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9347 * config/pdp11/pdp11.opt: New file.
9348
283da5df
RS
93492005-04-03 Roger Sayle <roger@eyesopen.com>
9350 Alexandre Oliva <aoliva@redhat.com>
9351
9352 PR c++/19199
9353 * fold-const.c (non_lvalue): Split tests into...
9354 (maybe_lvalue_p): New function.
9355 (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
9356 C++ front-end prior to lowering into gimple form.
9357
e905ac64
KG
93582005-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9359
9360 * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
9361 BUILT_IN_STRNCASECMP): New.
9362 * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
9363 and strndup.
9364
1ac3e311
RE
93652005-04-03 Richard Earnshaw <richard.earnshaw@arm.com>
9366
9367 PR target/14812
9368 * arm.md (addsi3_compare0_for_combiner): Delete.
9369 (addsi3_compare0_scratch_for_combiner): Delete.
9370 (cmpsi_neg_shiftsi): Delete.
9371 (compare_negsi_si): New pattern.
9372 (cmpsi_negshiftsi_si): New pattern.
9373 (negated_cbranchsi4): Restrict to equality_operator.
6ba40dd7 9374
1ac3e311
RE
9375 * arm.md (movhi_insn_arch4): delete trailing white space from assembler
9376 template.
9377
315682fb
KH
93782005-04-03 Kazu Hirata <kazu@cs.umass.edu>
9379
9380 * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
9381 Fix comment typos.
9382
e5080aa6
KH
9383 * doc/install.texi: Fix a typo.
9384
00b28cb0
SB
93852005-04-03 Steven Bosscher <stevenb@suse.de>
9386
9387 PR middle-end/20648
9388 * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
9389 a computed goto if the edge to the computed goto block has
9390 incoming abnormal edges. Clarify how the function works.
9391
e16acfcd
NS
93922005-04-03 Nathan Sidwell <nathan@codesourcery.com>
9393
9394 * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
9395 * passes.c (open_dump_file, rest_of_handle_final): Likewise.
9396 * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
9397 hash_scan_set, reg_set_between_after_reload_p,
9398 reg_used_between_after_reload_p, get_avail_load_store_reg,
9399 eliminate_partially_redundant_load): Likewise.
9400 * postreload.c (reload_cse_simplify_set,
9401 reload_combine_note_use): Likewise.
9402 * predict.c (predict_insn, expected_value_to_br_prob,
9403 propagate_freq, expensive_function_p): Likewise.
9404 * print-rtl.c (print_rtx): Likewise.
9405 * profile.c (instrument_edges, instrument_values,
9406 compute_branch_probabilities, branch_prob, union_groups,
9407 tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
9408 * protoize.c (in_system_include_dir, file_could_be_converted,
9409 file_normally_convertible, gen_aux_info_file, seek_to_line,
9410 do_cleaning): Likewise.
9411 * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
9412 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
9413 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
9414
f73d5666
MH
94152005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
9416
9417 * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
9418 * modulo-sched.c (undo_replace_buff_elem): New structure.
9419 (kernel_number_of_cycles, ps_unschedule_node,
9420 undo_generate_reg_moves,free_undo_replace_buff,
099ff66c 9421 undo_permute_partial_schedule, loop_single_full_bb_p,
f73d5666
MH
9422 SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
9423 build_loops_structure, get_sched_window): New.
9424 (generate_reg_moves): Return undo_replace_buff_elem and other
9425 fixes.
9426 (generate_prolog_epilog): Remove old loop versioning.
9427 (sms_schedule): Use loop information and loop_version.
9428 (sms_schedule_by_order): Split part of it to get_sched_window.
9429 * passes.c (rest_of_handle_sms): call cfg_layout_initialize
9430 cfg_layout_finalize and free_dominance_info before/after SMS.
9431
1cb7dfc3
MH
94322005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
9433
9434 * cfghooks.c (lv_flush_pending_stmts,
9435 cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
9436 lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
9437 * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
9438 lv_add_condition_to_bb,
9439 lv_adjust_loop_header_phi, extract_cond_bb_edges,
9440 flush_pending_stmts): New in cfg_hooks structure.
9441 (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
9442 extract_cond_bb_edges, lv_adjust_loop_header_phi,
9443 lv_add_condition_to_bb): New declarations.
9444 * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
9445 bool.
9446 (loop_version): Declare.
9447 * cfgloopmanip.c (cfghooks.h): Include.
9448 (duplicate_loop_to_header_edge): Change return type to bool.
9449 (loop_version, lv_adjust_loop_entry_edge): Move here.
9450 * cfgrtl.c (cfgloop.h): Include.
9451 (rtl_verify_flow_info_1): Fix.
9452 (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
9453 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
9454 initialization.
9455 * tree-cfg.c (tree_lv_adjust_loop_header_phi,
9456 tree_lv_add_condition_to_bb): New.
9457 (tree_cfg_hooks): Add new hooks to initialization.
9458 * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
9459 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
9460
c8db7af2
KH
94612005-04-03 Kazu Hirata <kazu@cs.umass.edu>
9462
9463 * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
9464 xstormy16_below100_or_register,
9465 xstormy16_splittable_below100_or_register, and
9466 nonimmediate_nonstack_operand.
9467
25af5506
KH
9468 * config/stormy16/stormy16-protos.h: Remove the prototypes for
9469 xstormy16_ineqsi_operator, equality_operator,
9470 inequality_operator, shift_operator,
9471 xstormy16_below100_operand, xstormy16_below100_or_register,
9472 xstormy16_splittable_below100_or_register,
9473 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
9474 * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
9475 equality_operator, inequality_operator,
9476 xstormy16_below100_operand, xstormy16_below100_or_register,
9477 xstormy16_splittable_below100_or_register,
9478 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
9479 nonimmediate_nonstack_operand, shift_operator): Move to
9480 predicates.md.
9481 * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
9482 * config/stormy16/stormy16.md: Include predicates.md.
9483 * config/stormy16/predicates.md: New.
9484
80ad92e9
KH
94852005-04-02 Kazu Hirata <kazu@cs.umass.edu>
9486
9487 * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
9488 small_int, large_int, reg_or_0_operand, simple_memory_operand,
9489 equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
9490 move_operand, power_of_2_operand): Move to predicates.md.
9491 * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
9492 PREDICATE_CODE): Remove.
9493 * config/iq2000/iq2000.md: Include predicates.md.
9494 * config/iq2000/predicates.md: New.
9495
43849cfa
RS
94962005-04-02 Richard Sandiford <rsandifo@redhat.com>
9497
9498 * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
9499 (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
9500 (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
9501 (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
9502 (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
9503 (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
9504 (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
9505 (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
9506 (TARGET_M68HC11): Delete.
9507 (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
9508 * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
9509 * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
9510 (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
9511 (nb_soft_regs): Delete.
9512 (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
9513 (m68hc11_override_options): Remove the code that caters for MASK_M6811
9514 and MASK_M6812 being set simultaneously. Change the code that sets
9515 the default m68hc11_soft_reg_count to use integers instead of strings.
9516 (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
9517 m68hc11_soft_reg_count (which now has an int type) as the number
9518 of soft registers.
9519 * config/m68hc11/m68hc11.opt: New file.
9520
8c1d21e6
KH
95212005-04-02 Kazu Hirata <kazu@cs.umass.edu>
9522
9523 * config/fr30/fr30.h (PREDICATE_CODES): Remove
9524 fp_displacement_operand, sp_displacement_operand.
9525
577e5d76
KH
9526 * config/m68hc11/m68hc11-protos.h: Add a prototype for
9527 m68hcc_auto_inc_p.
9528 Remove the prototypes for tst_operand, cmp_operand,
9529 stack_register_operand, d_register_operand,
9530 hard_addr_reg_operand, splitable_operand,
9531 m68hc11_logical_operator, m68hc11_arith_operator,
9532 m68hc11_non_shift_operator, m68hc11_shift_operator,
9533 m68hc11_unary_operator, m68hc11_eq_compare_operator,
9534 non_push_operand, hard_reg_operand, and
9535 reg_or_some_mem_operand.
9536 * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
9537 extern.
9538 (tst_operand, cmp_operand, non_push_operand,
9539 splitable_operand, reg_or_some_mem_operand,
9540 stack_register_operand, d_register_operand,
9541 hard_addr_reg_operand, hard_reg_operand,
9542 m68hc11_eq_compare_operator, m68hc11_logical_operator,
9543 m68hc11_arith_operator, m68hc11_non_shift_operator,
9544 m68hc11_shift_operator, m68hc11_unary_operator): Move to
9545 predicates.md.
9546 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
9547 * config/m68hc11/m68hc11.md: Include predicates.md.
9548 * config/m68hc11/predicates.md: New.
9549
596b98ce
AO
95502005-04-02 Alexandre Oliva <aoliva@redhat.com>
9551
9552 PR debug/19345
9553 * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
9554 change checked in along with 2005-03-03's patch for debug/20253.
9555 * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
9556 (remap_decl): Insert type decl in map earlier.
9557
e18d4a19
AO
95582005-04-02 Alexandre Oliva <aoliva@redhat.com>
9559
9560 PR tree-optimization/20640
9561 * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
9562 post-dominator if it has phi nodes.
9563 (eliminate_unnecessary_stmts): Remove dead phis in all blocks
9564 before dead statements.
9565
bbe37912
AO
95662005-04-02 Alexandre Oliva <aoliva@redhat.com>
9567
9568 PR middle-end/20491
9569 * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
9570
9f05ff0a
AO
95712005-04-02 Alexandre Oliva <aoliva@redhat.com>
9572
9573 PR rtl-optimization/20290
9574 * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
9575 in every iteration if the entry point is the exit test.
9576
3a5afdfc
HPN
95772005-04-02 Hans-Peter Nilsson <hp@axis.com>
9578
9579 * config/cris/cris.md (attribute "length"): Define.
9580
5f89fef6
GK
95812005-04-02 Geoffrey Keating <geoffk@apple.com>
9582
b6d2248c
GK
9583 * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
9584 (word_offset_memref_operand): New.
9585 * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
9586 (indexed_or_indirect_operand): Delete.
9587 * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
9588 (indexed_or_indirect_operand): Delete.
9589
807ecedf
GK
9590 * config/rs6000/t-darwin8: Comment out ppc64 multilib.
9591
51b75924
GK
9592 PR 20650
9593 * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
9594 a register.
9595
5f89fef6
GK
9596 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
9597 * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
9598
821bde61
JBG
95992005-04-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9600
9601 * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
9602
054e88a8
ILT
96032005-04-01 Ian Lance Taylor <ian@airs.com>
9604
9605 * gcc.c: Don't include <sys/resource.h> or declare getrusage.
9606 (rus, prus): Remove static variables.
9607 (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
9608 (process_command): Permit report_times and use_pipes together.
9609
2c83be0c
JM
96102005-04-01 Joseph S. Myers <joseph@codesourcery.com>
9611
9612 * c-decl.c (validate_proto_after_old_defn): Look at
9613 TYPE_MAIN_VARIANT of argument types.
9614
f972113f
PB
96152005-04-01 Paul Brook <paul@codesourcery.com>
9616
9617 * config/arm/arm.c (thumb_call_via_label): Include space for SP.
9618 (arm_output_function_epilogue): Allow call_via_SP.
9619 (thumb_call_via_reg, arm_file_end): Ditto.
9620 * config/arm/arm.h (struct machine_function): Include space for SP.
9621 (thumb_call_via_label): Update declaration.
9622
a2785739
ILT
96232005-04-01 Ian Lance Taylor <ian@airs.com>
9624
9625 * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
9626 doing a peephole optimization, once again put any notes in the
9627 proper position.
9628
830113fd
KH
96292005-04-01 Kazu Hirata <kazu@cs.umass.edu>
9630
9631 * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
9632
cccd217d
NS
96332005-04-01 Nathan Sidwell <nathan@codesourcery.com>
9634
b5e624c6
NS
9635 * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
9636 (block_alloc, find_free_reg): Likewise.
9637 * loop-doloop.c (doloop_modify): Likewise.
9638 * loop-invariant.c (record_use): Likewise.
9639 * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
9640 get_iv_value, canon_condition, eliminate_implied_condition,
9641 eliminate_implied_condition, simplify_using_initial_values,
9642 shorten_into_mode, canonicalize_iv_subregs,
9643 iv_number_of_iterations): Likewise.
9644 * loop-unroll.c (expand_var_during_unrolling): Likewise.
9645 * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
9646 unswitch_loop): Likewise.
9647 * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
9648 move_movables, replace_call_address, find_and_verify_loops,
9649 rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
9650 record_giv, final_giv_value, general_induction_var,
9651 simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
9652 loop_giv_dump): Likewise.
9653
cccd217d
NS
9654 * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
9655 GCOV_CHECK_WRITING): Remove.
9656 (gcov_position, gcov_rewrite): Use gcc_assert.
9657 * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
9658 gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
9659 * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
9660 gcc_assert.
9661
3cf11075
KH
96622005-04-01 Kazu Hirata <kazu@cs.umass.edu>
9663
9664 * tree-inline.c: Fix a typo.
9665
cdce5c16
NS
96662005-04-01 Nathan Sidwell <nathan@codesourcery.com>
9667
9668 * configure.ac (enable-checking): Explicitly set all variables for
9669 collective switch values. Alphabetize variables. Rename
9670 ac_checking_valgrind to ac_valgrind_checking. Allow 'none' as
9671 synonym for 'no'.
9672 * doc/install.texi (enable-checking): Update documentation.
9673 * configure: Rebuilt.
9674
a7818b66
KH
96752005-04-01 Kazu Hirata <kazu@cs.umass.edu>
9676
9677 * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
9678 possible.
9679
15b5c4c1
RE
96802005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
9681
9682 * arm.c (adjacent_mem_locations): Reject volatile memory refs.
9683 Also reject cases where this pattern will cause load delay stalls
9684 unless optimizing for size and it will produce a shorter sequence.
9685 * arm.md (arith_adjacent_mem): Make better use of ldm addressing
9686 variants to avoid pre-adjusting the base when possible.
9687
7fac69e5
RE
96882005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
9689
9690 * arm.md (minmax_arithsi): Reject all eliminable registers, not just
9691 the frame and argument pointers.
9692 (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
9693 (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
9694 (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
9695 (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
9696 (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
9697 (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
9698
a20f6f00
DS
96992005-04-01 Danny Smith <dannysmith@users.sourceforge.net>
9700
9701 * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
9702 with entry for selectany attribute.
9703 * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
9704 Declare.
9705 * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
9706 (i386_pe_asm_named_section): Handle sections generated by
9707 selectany attribute.
9708 * doc/extend.texi (selectany): Document attribute.
9709
7c93c2cc
PB
97102005-04-01 Paolo Bonzini <bonzini@gnu.org>
9711 Jan Hubicka <jh@suse.cz>
9712
9713 * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
9714 to fix addresses involving EBP and ESP.
9715 (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
9716 for SUBREGed registers.
9717 (legitimate_address_p): Accept SUBREGed registers.
9718
a288c5cd
JJ
97192005-04-01 Jakub Jelinek <jakub@redhat.com>
9720
9721 PR c++/19406
9722 * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
9723 (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
9724 for FIELD_DECLs.
9725
38b974a6
KH
97262005-04-01 Kazu Hirata <kazu@cs.umass.edu>
9727
9728 * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
9729
97302005-04-01 James E Wilson <wilson@specifixinc.com>
77270e03
JW
9731
9732 PR c++/20505
9733 * dwarf2out.c (rtl_for_decl_init): New function.
9734 (rtl_for_decl_location): Extracted from here.
9735 (tree_add_const_value_attribute): Call rtl_for_decl_init and
9736 add_const_value_attribute. Delete initializer_constant_valid_p call.
9737
aabcd309
KH
97382005-04-01 Kazu Hirata <kazu@cs.umass.edu>
9739
9740 * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
9741 lambda-code.c, loop.c, machmode.def, mips-tfile.c,
9742 modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
9743 tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
9744 config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
9745 config/i386/i386.md, config/rs6000/predicates.md,
9746 config/rs6000/rs6000.c, config/s390/fixdfdi.h,
9747 config/s390/s390.c, config/stormy16/stormy16.c,
9748 config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
9749 typos.
9750
0223e4f5
JM
97512005-04-01 Joseph S. Myers <joseph@codesourcery.com>
9752
9753 PR c/17855
9754 * gimplify.c (gimplify_expr): Create a temporary for lvalue
9755 COND_EXPR and CALL_EXPR.
9756
96ddf8ef
VM
97572005-03-31 Vladimir Makarov <vmakarov@redhat.com>
9758
9759 PR target/20632
9760 * genautomata.c (first_cycle_unit_presence): Check all alternative
9761 states for unit presence.
9762
9763 * doc/md.texi: Remove remark about impossibility to query unit
9764 presence in non nondeterministic automaton state.
6ba40dd7 9765
96ddf8ef
VM
9766 * config/ia64/ia64.c (get_template): Change order of unit querying.
9767
b08ee07e
KH
97682005-03-31 Kazu Hirata <kazu@cs.umass.edu>
9769
9770 * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
9771 obsolete comment.
9772
2ff3e325
ZD
97732005-03-31 Zdenek Dvorak <dvorakz@suse.cz>
9774
9775 * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
9776 flag for edges outside any loops.
9777
0455fecf
JJ
97782005-03-31 Janis Johnson <janis187@us.ibm.com>
9779
9780 * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
9781
27954bdb
KH
97822005-03-31 Kazu Hirata <kazu@cs.umass.edu>
9783
9784 * tree-ssa-alias.c: Follow spelling conventions.
9785 * doc/tree-ssa.texi: Fix a typo.
9786
3f55b339
R
97872005-03-31 J"orn Rennecke <joern.rennecke@st.com>
9788
9789 * postreload-gcse.c: Include target.h.
9790 (gcse_after_reload_main): Return early if we cannot modify jumps.
9791 * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
9792
b4852851
DE
97932005-03-31 David Edelsohn <edelsohn@gnu.org>
9794
9795 * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
9796 expensive operations.
9797
68ec3111
ILT
97982005-03-31 Ian Lance Taylor <ian@airs.com>
9799
9800 * collect2.c (lderrout): New variable.
9801 (collect_exit): Dump ldout to stdout. Dump and unlink lderrout,
9802 if it is set, to stderr.
9803 (handler): Unlink lderrout if it is set.
9804 (dump_file): Add "to" parameter. Change all callers.
9805 (main): Initialize lderrout.
9806 (collect_execute): Add errname parameter. Change all callers.
9807 Rename redir parameter to outname. Never pass
9808 PEX_STDERR_TO_STDOUT to pex_run.
9809 * collect2.h (collect_execute, dump_file): Update declarations.
9810 * tlink.c (tlink_execute): Add errname parameter. Change all
9811 callers.
9812 (do_tlink): Check lderrout as well as ldout.
9813
f7052523
CT
98142005-03-31 Caroline Tice <ctice@apple.com>
9815
9816 * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
9817 (bb-reorder.o): Add errors.h to list of requirements.
9818 (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
9819 profiledbootstrap flags.
9820 * bb-reorder.c (errors.h): Add new include.
9821 (struct bbro_basic_block_data_def): Add new field, in_trace.
9822 (add_unlikely_executed_notes): Remove function.
9823 (mark_bb_for_unlikely_executed_section): Remove function.
9824 (insert_section_boundary_note): New function.
9825 (verify_hot_cold_block_grouping): New function.
9826 (push_to_next_round_p): Remove variables and tests that push all
9827 cold blocks to last round.
9828 (find_traces): Remove code that added extra round of trace finding
9829 when doing partitioning.
6ba40dd7
DK
9830 (find_traces_1_round) : Remove variable last_round; add code to
9831 update new struct field, in_trace; correct trace_length where it was
9832 incorrect before (after call to copy_bb); change code that pushed all
9833 cold blocks to last round. Instead verify that all blocks going into
f7052523
CT
9834 a trace belong in the same partition.
9835 (connect_traces): Modify to connect the traces in two passes, if the
6ba40dd7
DK
9836 function contains both hot and cold blocks. The first pass connects
9837 all the traces for blocks in the partition that the first block in
9838 the function belongs to; the second pass connnects all the traces
f7052523
CT
9839 containing blocks that belong in the other partition.
9840 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9841 code that automatically put the first block in a function into the
9842 hot partition if the function had any hot blocks.
6ba40dd7 9843 (fix_crossing_unconditional_branches): Check number of succ edges
f7052523
CT
9844 before attempting to get one.
9845 (fix_edges_for_rarely_executed_code): Update comment describing
9846 function.
9847 (reorder_basic_blocks): Add code to initialize new field (in_trace);
6ba40dd7 9848 remove call to add_unlikely_executed_notes; add call to
f7052523 9849 verify_hot_cold_block_grouping.
6ba40dd7 9850 (duplicate_computed_gotos): Don't change computed goto if it's a
f7052523
CT
9851 crossing edge.
9852 (partition_hot_cold_basic_blocks): Update function comment.
6ba40dd7 9853 * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
f7052523
CT
9854 condition.
9855 (try_forward_edges): Likewise.
9856 (merge_blocks_move_predecessor_nojumps): Likewise.
9857 (merge_blocks_move_successor_nojumps): Likewise.
9858 (merge_blocks_move): Likewise.
9859 (try_crossjump_bb): Likewise.
9860 * cfglayout.c (update_unlikely_executed_notes): Remove function.
9861 (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
9862 notes to cold bb's; remove call to update_unlikely_executed_notes.
9863 (duplicate_insn_chain): change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
9864 NOTE_INSN_SWITCH_TEXT_SECTIONS.
9865 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
9866 function declaration.
9867 * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
9868 from consideration.
9869 (rtl_can_merge_blocks): Remove redundancy from condition.
9870 (try_redirect_by_replacing_jump): Likewise.
9871 (force_nonfallthru_and_redirect): Remove code for adding
9872 UNLIKELY_EXECUTED_CODE notes to cold bb's.
9873 (commit_one_edge_insertion): Likewise.
9874 (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
6ba40dd7 9875 * dbxout.c (FORCE_TEXT): Replace function_section with
f7052523
CT
9876 current_function_section.
9877 (struct dbx_debug_h): Add do_nothing function for new debug_hooks
9878 function, switch_text_section.
9879 (struct xcoff_debug): Likewise.
9880 (dbxout_function_end): Add code to put out label diffs for both
9881 hot and cold sections.
9882 * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
9883 for new debug_hooks funciton, switch_text_section..
9884 * debug.h (struct gcc_debug_hooks): Add new function to debug_hooks,
9885 switch_text_section.
6ba40dd7
DK
9886 * dwarf2out.c (struct dw_fde_struct): Add five new fields:
9887 dw_fde_hot_section_label, dw_fde_hot_section_end_label,
9888 dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
f7052523
CT
9889 dw_fde_switched_sections.
9890 (output_call_frame_info): Add test to see if function switches text
6ba40dd7 9891 sections in the middle; if so, use appropriate extra hot and cold
f7052523 9892 section labels to compute size deltas for the hot and cold sections.
6ba40dd7 9893 (dwarf2out_begin_prologue): Add code to initialize new fields in
f7052523 9894 dw_fde_struct.
6ba40dd7 9895 (dwarf2out_switch_text_section): New function (invoked through
f7052523
CT
9896 debug_hook); updates new fields in dw_fde_struct appropriately and
9897 increments separate_line_info_table_in_use.
9898 (dwarf2_debug_hooks): Initialize switch_text_section function to be
9899 dwarf2out_switch_text_section.
9900 (struct var_loc_node): Add new field, section_label.
9901 (output_aranges): Add code to check whether in hot or cold section and
9902 use the appropriate label in calculating deltas.
9903 (output_ranges): Likewise.
9904 (output_line_info): Add code to check which section we're in and
9905 use appropriate hot/cold label.
9906 (add_location_or_constant_value_attribute): Likewise.
9907 (gen_subprogam_die): Modify arange attributes to use correct labels.
9908 (dwarf2out_begin_block): Change call to function_section into call to
9909 current_function_section.
9910 (dwarf2out_end_block): Likewise.
9911 (dwarf2out_source_line): Likewise.
6ba40dd7 9912 (dwarf2out_var_location): Add code to check whether in hot or cold
f7052523 9913 section and use the appropriate label.
6ba40dd7 9914 * except.c (output_function_exception_table): Change call to
f7052523
CT
9915 function_section into call to current_function_section.
9916 * final.c (profile_function): Likewise.
9917 (scan_ahead_for_unlikely_executed_note): Remove function.
6ba40dd7
DK
9918 (final_scan_insn): Remove calls to
9919 scan_ahead_for_unlikely_executed_note, and related code for switching
9920 to cold section, except for the single time
9921 NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered; add calls to
9922 debug_hooks->switch_text_sections; replace appropriate calls to
f7052523 9923 function_section with calls to current_function_section.
6ba40dd7 9924 * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
f7052523
CT
9925 test_bb to condition.
9926 (find_if_case_2): Likewise.
9927 * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
9928 NOTE_INSN_SWITCH_TEXT_SECTIONS. Update comment appropriately.
9929 * opts.c (decode_options): Change warning about hot/cold partitioning
9930 with exceptionss to inform (so as not to cause bootstrap failures);
9931 remove warning about partitioning with DWARF debug info.
9932 * output.h (current_function_section): Add new function decl.
9933 (insert_section_boundary_note): Likewise.
9934 (enum in_section): Move this declaration here from varasm.c.
9935 (unlikely_section_label): Likewise.
9936 (unlikely_text_section_name): Likewise.
9937 (last_text_section_name): New global variable.
9938 (last_text_section): Likewise.
9939 (hot_section_label): Likewise.
9940 (hot_section_end_label): Likewise.
9941 (cold_section_end_label): Likewise.
9942 * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
9943 * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
9944 to NOTE_INSN_SWITCH_TEXT_SECTIONS.
6ba40dd7 9945 * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
f7052523 9946 insn from consideration.
6ba40dd7 9947 * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
f7052523
CT
9948 switch_text_section.
9949 * varasm.c (basic-block.h): Add new include.
9950 (unlikely_section_label_printed): Remove global variable.
9951 (unlikely_section_label): Make global variable not be static any more.
9952 (unlikely_text_section_name): Likewise.
9953 (hot_section_end_label): New global variable (not static)
9954 (first_function_block_is_cold): Likewise.
9955 (hot_section_label): Likewise.
9956 (cold_section_end_label): Likewise..
9957 (last_text_section): New global variable, not static.
9958 (last_text_section_name): New global variable, not static.
9959 (initialize_cold_section_name): New function.
9960 (enum in_section): Move declaration to output.h.
9961 (text_section): Update last_text_section.
6ba40dd7
DK
9962 (unlikely_text_section): Replace code to determine cold section name
9963 with call to initialize_cold_section_name; Add code to update
f7052523 9964 last_text_section; remove code for printing out label.
6ba40dd7 9965 (named_section_real): Add code to update last_text_section and
f7052523
CT
9966 last_text_section_name as appropriate.
9967 (function_section): Change test for 'unlikely' to depend on
6ba40dd7 9968 first_function_block_is_cold (moved old test to
00b28cb0 9969 current_function_section).
f7052523 9970 (current_function_section): New function.
6ba40dd7
DK
9971 (assemble_start_function): Move code that frees
9972 unlikely_text_section_name; initialize hot_section_end_label;
9973 print hot and cold section labels at the start of the function;
f7052523
CT
9974 set first_function_block_is_cold, if appropriate; initialize l
9975 ast_text_section; add call to insert_section_boundary_note.
9976 (assemble_end_function): Add code to write out hot and cold section
9977 end labels.
9978 *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
9979 switch_text_section.
6ba40dd7 9980 * config/darwin.c (machopic_select_section): Replace incorrect
f7052523 9981 function in base_funs; update reloc for cold sections if necessary.
6ba40dd7 9982 * config/darwin.h (SECTION_FUNCTION): Add code to update
f7052523
CT
9983 last_text_section if appropriate.
9984 (text_unlikely_section): Remove.
9985 * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
9986 * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
9987 * config/xtensa/xtensa.c (override_options): Turn off hot/cold
9988 partitioning for this architecture.
9989
0992247b
OH
99902005-03-31 Olivier Hainque <hainque@adacore.com>
9991
00b28cb0
SB
9992 * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
9993 defined and non-zero.
0992247b 9994
4e2db7a8
GDR
99952005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
9996
9997 PR c++/18644
9998 * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
6ba40dd7 9999 semantics.
4e2db7a8 10000
ccbca5e4 100012005-03-31 Alan Modra <amodra@bigpond.net.au>
2767f258 10002
ccbca5e4
AM
10003 PR target/20611
10004 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
10005 label operand. Remove (use (unspec..)). Don't emit a label on
10006 the offset word.
10007 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
10008 generate inline label for load_toc_v4_PIC_1b.
10009 (rs6000_emit_load_toc_table): Likewise.
2767f258 10010
f0d82825
KH
100112005-03-31 Kazu Hirata <kazu@cs.umass.edu>
10012
10013 * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
10014 ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
10015
ae7f3734
DP
100162005-03-29 Devang Patel <dpatel@apple.com>
10017
f0d82825
KH
10018 * tree-sra.c (decide_block_copy): Disable scalarization of
10019 sub-elements.
6ba40dd7 10020
8df673d7
SH
100212005-03-30 Stuart Hastings <stuart@apple.com>
10022 Dale Johannesen <dalej@apple.com>
10023
10024 * Makefile.in (print-tree.o): Depend on tree-iterator.h.
10025 * print-tree.c (print_node): Add case STATEMENT_LIST.
10026
a8e04fe6
AM
100272005-03-31 Alan Modra <amodra@bigpond.net.au>
10028
10029 * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
10030 (powerpc64-*-linux*): Use it. Rearrange tm_file assignment.
10031 (powerpc-*-linux*): Build a biarch compiler when --enable-targets
10032 is given with "powerpc64*" or "all", or when --with-cpu chooses
10033 a 64-bit cpu.
10034
fdfa76bd
JW
100352005-03-30 James E. Wilson <wilson@specifixinc.com>
10036
10037 PR debug/20268
10038 * dwarf2out.c (add_high_low_attributes): New function, extracted from
10039 gen_lexical_block_die.
10040 (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
10041
cd9c7bd2
JH
100422005-03-31 Jan Hubicka <jh@suse.cz>
10043
10044 2004-11-02 Jan Hubicka <jh@suse.cz>
10045
10046 * cgraph.c (cgraph_varpool_node_name): New function.
10047 (dump_cgraph_varpool_node): New function.
10048 (dump_varpool): New function.
10049 * cgraphunit.c (cgraph_optimize): Dump varpool.
10050
10051 2004-10-16 Jan Hubicka <jh@suse.cz>
10052
10053 * cgraph.c (decide_is_variable_needed): New function.
10054 (cgraph_varpool_finalize_decl): Use it.
10055 * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
10056 unit-at-a-time.
10057 * final.c (output_addr_const): Do not call mark_referenced.
10058 * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
10059 always go via cgraph.
10060 * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
10061 (check_global_declarations): Ifdef out code clearing DECL_RTL.
10062 * tree-optimize.c (execute_inline): Mark functions called.
10063 * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
10064
10065 2004-10-11 Jan Hubicka <jh@suse.cz>
10066
10067 * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
10068 (cgraph_varpool_last_needed_node): New static variable.
10069 (enqueue_needed_varpool_node): Break out from ...; add items to the
10070 end of queue; update first pointers.
10071 (cgraph_varpool_mark_needed_node): ... here.
10072 (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
10073 (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
10074 * cgraph.h (cgraph_varpool_node): Add analyzed field.
10075 (cgraph_varpool_first_unanalyzed_node): Declare.
10076 * cgraphunit.c: Include output.h.
10077 (cgraph_varpool_analyze_pending_decls): New function.
10078 (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
10079 for errors, analyze pending decls.
10080 (cgraph_finalize_compilation_unit): Only analyze decls.
10081 (cgraph_optimize): Assemble the decls after expanding.
10082
d19e9499
DB
100832005-03-30 Daniel Berlin <dberlin@dberlin.org>
10084
10085 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
10086 subvars get marked properly in tags for grouping.
10087 (add_pointed_to_var): Mark only actual pointed to
10088 variables/subvars in addresses needed.
10089 (create_overlap_variables_for): Clear call clobbered on original
10090 variable.
10091 * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
10092 addresable vars with subvars into list.
10093 * tree-ssa.c (verify_ssa_name): Verify original is not used where
10094 subvar should be.
10095
12527dce
RH
100962005-03-30 Richard Henderson <rth@redhat.com>
10097
10098 * cgraph.h (struct cgraph_node): Add alias.
10099 * varasm.c (assemble_alias): Set it.
10100 * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
10101 avoid calling cgraph_expand_function.
10102
5662a50d
TT
101032005-03-30 Tom Tromey <tromey@redhat.com>
10104
10105 * tree.def (FILE_TYPE): Removed.
10106 * typeclass.h (enum type_class): Removed file_type_class.
10107 * dwarf2out.c (is_base_type): Updated.
10108 (gen_type_die): Likewise.
10109 * dbxout.c (dbxout_type): Updated.
10110 * builtins.c (type_to_class): Updated.
10111 * tree.c (type_contains_placeholder_1): Updated.
10112 * config/sparc/sparc.c (sparc_type_code): Updated.
10113 * config/ia64/ia64.c (hfa_element_mode): Updated.
10114 * expr.c (count_type_elements): Updated.
10115 * stor-layout.c (layout_type): Updated.
10116 * tree-inline.c (remap_type): Updated.
10117 * tree-pretty-print.c (dump_generic_node): Updated.
10118
0b8495ae
FJ
101192005-03-30 Fariborz Jahanian <fjahanian@apple.com>
10120
10121 * builtins.c (expand_builtin_powi): Fix mode of
10122 2nd argument to match int.
10123 * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
10124 2nd argument type to int.
a8e04fe6 10125 * libgcc2.c: Change prototype of __powi* functions to use
0b8495ae
FJ
10126 int.
10127
63579539
DJ
101282005-03-30 Dale Johannesen <dalej@apple.com>
10129
10130 PR middle-end/19225
10131 * calls.c (expand_call): Flush pending deferrals before
10132 throwing call.
10133
16ef3acc
JM
101342005-03-30 Joseph S. Myers <joseph@codesourcery.com>
10135
10136 PR c/772
10137 PR c/17913
10138 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
10139 C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
10140 c_label_context, label_context_stack): New.
10141 * c-decl.c (define_label): Check for jumps into statement
10142 expressions. Add label to list of defined labels.
10143 (start_function): Push context on label_context_stack.
10144 (finish_function): Pop context from label_context_stack.
10145 * c-typeck.c (label_context_stack): New.
10146 (c_finish_goto_label): Check for jumps into statement
10147 expressions. Add label to list of jumped to labels.
10148 (struct c_switch): Add blocked_stmt_expr.
10149 (c_start_case): Initialize it.
10150 (do_case): Check it.
10151 (c_finish_case): Verify !blocked_stmt_expr.
10152 (c_begin_stmt_expr): Push context on label_context_stack.
10153 Increment blocked_stmt_expr. Mark labels jumped to from outside
10154 as undefinable.
10155 (c_finish_stmt_expr): December blocked_stmt_expr. Mark labels
10156 defined in the statement expression and no longer jumpable to.
10157 Mark labels jumped to from just outside the statement expression
10158 as again definable. Pop context from label_context_stack.
10159 * doc/extend.texi (Statement Exprs): Update.
10160
1e55c0e2
JM
101612005-03-30 Joseph S. Myers <joseph@codesourcery.com>
10162
10163 PR c/20368
10164 * c-decl.c (start_function): Check for old_decl being
10165 error_mark_node.
10166
c9d691e9
ILT
101672005-03-30 Ian Lance Taylor <ian@airs.com>
10168
10169 * final.c (final): Remove prescan parameter. Change all callers.
10170 (final_scan_insn): Remove prescan parameter. Change all callers.
10171
2228adb2
KH
101722005-03-30 Kazu Hirata <kazu@cs.umass.edu>
10173
10174 * tree-vectorizer.c: Fix comment typos.
10175
fca81712
SP
101762005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
10177
a8e04fe6 10178 * tree-scalar-evolution.c (instantiate_parameters_1): Return
fca81712
SP
10179 as soon as a chrec_dont_know is detected.
10180
2d8a7f23
DS
101812005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
10182
10183 Merge from csl-arm-branch.
10184 2004-02-12 Mark Mitchell <mark@codesourcery.com>
10185
10186 * tlink.c (recompile_files): Do not assume that "rename" can
10187 overwrite an existing file.
10188
33da42bc
PB
101892005-03-31 Paolo Bonzini <bonzini@gnu.org>
10190
10191 * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
10192 * gcc/configure: Regenerate.
10193
f0078f86
AM
101942005-03-30 Alan Modra <amodra@bigpond.net.au>
10195
c3a2edb6
AM
10196 * doc/install.texi: Update binutils requirement for powerpc*-linux.
10197
fb63c729
AM
10198 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
10199
f0078f86
AM
10200 * calls.c (struct arg_data): Update "partial" comment.
10201 (load_register_parameters): Update "nregs" comment.
10202
9e1db42d
RS
102032005-03-30 Richard Sandiford <rsandifo@redhat.com>
10204
10205 * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
10206 (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
10207 (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
10208 (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
10209 (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
10210 (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
10211 than target_flags & 0.
10212 * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
10213 (iq2000_arch, iq2000_parse_cpu): Delete.
10214 (TARGET_HANDLE_OPTION): Override default.
10215 (iq2000_handle_option): New function.
10216 (override_options): Remove -march= and -mcpu= handling.
10217 * config/iq2000/iq2000.opt: New file.
10218
d12f3c1f
RS
102192005-03-30 Richard Sandiford <rsandifo@redhat.com>
10220
10221 * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
10222 * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
10223 (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
10224 (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
10225 (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
10226 (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
10227 (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
10228 (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
10229 (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
10230 (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
10231 (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
10232 (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
10233 (c4x_rpts_cycles_string, c4x_cpu_version_string)
10234 (TARGET_OPTIONS): Delete.
10235 (c4x_rpts_cycles, c4x_cpu_version): Declare.
10236 (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
10237 (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
10238 * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
10239 (c4x_cpu_version_string): Delete.
10240 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
10241 (c4x_handle_option): New function. Map -m3x and -m4x options to the
10242 equivalent -mcpu= option.
10243 (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
10244 Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
10245 TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
10246 or clearing the appropriate MASK_* bit.
10247 (c4x_file_start): Use c4x_cpu_version.
10248 * config/c4x/c4x.opt: New file.
10249
f9b4c1db
RS
102502005-03-30 Richard Sandiford <rsandifo@redhat.com>
10251
10252 * doc/options.texi: Document the new MaskExists flag.
10253 * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
10254 if the option has the MaskExists flag.
10255
102562005-03-30 Richard Sandiford <rsandifo@redhat.com>
a56a0779
RS
10257
10258 * opt-functions.awk (flag_set_p, test_flag): New functions.
10259 (switch_flags): Use them.
10260 * opth-gen.awk: Use flag_set_p to check for flags.
10261 * optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
10262
e5948c83
ILT
102632005-03-30 Ian Lance Taylor <ian@airs.com>
10264
10265 * config.host (i[34567]86-*-mingw32*): Don't set
10266 host_can_use_collect2 to no.
10267
6f6e8901
AM
102682005-03-30 Alan Modra <amodra@bigpond.net.au>
10269
10270 PR target/20203
10271 * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
10272 Remove convert_memory_address call duplicating that in memory_address.
10273
aab038d5
RH
102742005-03-29 Richard Henderson <rth@redhat.com>
10275
10276 PR c/20519
10277 * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
10278 (build_compound_literal): Likewise. Propagate decl type into the
10279 initializer.
10280 (finish_decl): Likewise. Use new return value from complete_array_type
10281 for zero sized arrays.
10282 (complete_array_type): Move ...
10283 * c-common.c (complete_array_type): ... here. Change first argument
10284 to pointer-to-type-node. Consistently use sizetype for the index
10285 except for zero sized arrays. Detect zero sized arrays for pedantic
10286 mode diagnostics. Create a new type node instead of modifying the
10287 old node in place.
10288 * c-tree.h (complete_array_type): Move decl ...
10289 * c-common.h (complete_array_type): ... here.
10290
0e2ea9b8
RH
102912005-03-29 Richard Henderson <rth@redhat.com>
10292
10293 PR tree-opt/19108
10294 * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
10295
5f996627
KH
102962005-03-29 Kazu Hirata <kazu@cs.umass.edu>
10297
10298 * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
10299 debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
10300 rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
10301 tree-profile.c, tsystem.h, value-prof.h: Update copyright.
10302
2f1de187
EC
103032005-03-29 Eric Christopher <echristo@redhat.com>
10304
10305 * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
10306 truthvalue conversion removal.
10307
1fff69c9
ILT
103082005-03-29 Ian Lance Taylor <ian@airs.com>
10309
10310 PR bootstrap/14316
10311 * collect2.c: Never include <vfork.h>.
10312 (VFORK_STRING, vfork): Don't define.
10313 (pid): Remove global variable.
10314 (handler): Call raise instead of kill (getpid(), ...).
10315 (collect_wait): Add pex parameter. Change all callers. Use
10316 pex_get_status rather than pwait.
10317 (do_wait): Add pex parameter. Change all callers.
10318 (collect_execute): Return struct pex_obj * rather than void. Use
10319 pex routines rather than pexecute.
10320 (fork_execute): Get pex_obj from collect_execute, and pass it to
10321 do_wait.
10322 (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
10323 Only declare quit_handler if SIGQUIT is defined.
10324 (scan_libraries): Likewise.
10325 * collect2.h (collect_execute): Update declaration.
10326 (collect_wait): Update declaration.
10327 * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
10328 pass it to collect_wait.
10329
d1edc393
JM
103302005-03-29 Joseph S. Myers <joseph@codesourcery.com>
10331
10332 PR c/20672
10333 * c-parser.c (c_parser_compound_statement_nostart): Give error
10334 message for EOF instead of just setting parser->error.
10335
3ce66cf1
DN
103362005-03-29 Dorit Naishlos <dorit@il.ibm.com>
10337
10338 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
10339 (slpeel_update_phi_nodes_for_guard1): New function.
10340 (slpeel_update_phi_nodes_for_guard2): New function.
10341 (slpeel_tree_peel_loop_to_edge): Call above new functions instead
10342 of slpeel_update_phi_nodes_for_guard.
10343 (vectorize_loops): Remove call to loop_closed_rewrite.
10344 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
10345 assertion.
10346
97b73103
RS
103472005-03-29 Richard Sandiford <rsandifo@redhat.com>
10348
10349 * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
10350 (TARGET_LITTLE_ENDIAN): New macro.
10351 * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
10352 (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
10353 (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
10354 (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
10355 (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
10356 (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
10357 (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
10358 (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
10359 (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
10360 (TARGET_OPTIONS): Delete.
10361 (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
10362 (CACHE_FLUSH_TRAP): Turn into an integer.
10363 (TARGET_LITTLE_ENDIAN): Define to 0 by default.
10364 (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
10365 -mflush-trap is in use.
10366 * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
10367 (m32r_cache_flush_trap_string): Delete.
10368 (m32r_model) Initialize to M32R_MODEL_DEFAULT.
10369 (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
10370 (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
10371 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
10372 (m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
10373 -mmodel= and -msdata= handling from...
10374 (m32r_init): ...here.
10375 * config/m32r/m32r.opt: New file.
10376
8bb46326
DN
103772005-03-29 Keith Besaw <kbesaw@us.ibm.com>
10378
10379 * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
10380 (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
10381 * tree-vect-analyze.c (vect_object_analysis): additional parm
10382 pass back a "struct ptr_info_def *" with the points-to info.
10383 (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
10384 statement using info returned from vect_object_analysis.
10385 * tree-vect-transform.c (update_vuses_to_preheader): New function.
10386 (vect_create_data_ref_ptr): Remove updates to vars_to_rename
10387 for virtual uses and defs when creating a replacement vector
10388 reference. Call duplicate_ssa_name_ptr_info to define points-to
10389 info for vector pointer replacement using STMT_VINFO_PTR_INFO.
10390 (vectorizable_store): copy_virtual_operands and update
10391 definition statements.
10392 (vectorizable_load): copy_virtual_operands. Remove call to
10393 mark_call_clobbered_vars_to_rename for call to "const" builtin.
10394 * tree-vectorizer.c (vectorize_loops): Remove calls to
10395 rewrite_into_ssa and bitmap_clear (vars_to_rename).
10396 (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
10397 * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
10398 define macro STMT_VINFO_PTR_INFO for use in accessing.
10399 * tree.h add export of duplicate_ssa_name_ptr_info.
10400 * rs6000.c (altivec_init_builtins): Declare builtin function
10401 __builtin_altivec_mask_for_load to be "const".
10402
1a612e0a
JJ
104032005-03-29 Jakub Jelinek <jakub@redhat.com>
10404
10405 PR middle-end/20622
10406 * cgraph.h (struct cgraph_varpool_node): Add alias field.
10407 * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
10408 assemble_variable on aliases.
10409 * varasm.c (assemble_alias): Set node->alias.
10410 * toplev.c (wrapup_global_declarations): Don't call
10411 rest_of_decl_compilation on aliases again.
10412
64a1ec40
PB
104132005-03-29 Paul Brook <paul@codesourcery.com>
10414
10415 * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
10416 * config/arm/arm.c (arm_dbx_register_number): New function.
10417 * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
10418
360ca054
EB
104192005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
10420
10421 PR middle-end/20263
10422 * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
10423 the DECL_NAME, not the DECL_ASSEMBLER_NAME.
10424
1f1e8527
DJ
104252005-03-29 Dale Johannesen <dalej@apple.com>
10426
10427 * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
10428 $(TREE_H) and $(COVERAGE_H).
10429 * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
10430 * opts.c (common_handle_option): Enable tree-based value transforms.
10431 * toplev.c (process_options): Ditto.
10432 * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
10433 refers to references to this type.
10434 * tree-flow.h: (struct stmt_ann_d): Add histograms field.
10435 * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
10436 for may_be_more, may_be_less.
10437 (rtl_gen_pow2_profiler): Adjust.
10438 (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
10439 (rtl_gen_one_value_profiler): Adjust.
10440 (rtl_gen_const_delta_profiler): Adjust.
10441 * tree-profile.c (tree_gen_interval_profiler): Implement.
10442 (tree_gen_pow2_profiler): Ditto.
10443 (tree_gen_one_value_profiler): Ditto.
10444 (tree_profiling): New.
10445 (pass_tree_profile): Reference it.
10446 * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
10447 tree.h, gcov-io.h.
a8e04fe6 10448 (insn_divmod_values_to_profile): Rename to
1f1e8527
DJ
10449 rtl_divmod_values_to_profile. Adjust.
10450 (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
10451 (insn_prefetch_values_to_profile): Adjust.
10452 (rtl_value_profile_transformations): Adjust.
10453 (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
10454 (gen_mod_pow2): Rename to rtl_mod_pow2.
10455 (gen_mod_subtract): Rename to rtl_mod_subtract.
a8e04fe6 10456 (divmod_fixed_value_transform): Rename to
1f1e8527
DJ
10457 rtl_divmod_fixed_value_transform.
10458 (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
10459 (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
10460 (rtl_find_values_to_profile): Adjust.
10461 (tree_value_profile_transformations): Implement.
10462 (tree_divmod_values_to_profile): New.
10463 (tree_values_to_profile): New.
10464 (tree_divmod_fixed_value): New.
10465 (tree_mod_pow2): New.
10466 (tree_mod_subtract): New.
10467 (tree_divmod_fixed_value_transform): New.
10468 (tree_mod_pow2_value_transform): New.
10469 (tree_mod_subtract_transform): New.
10470 (tree_find_values_to_profile): Implement.
10471 * profile.c (instrument_values): Free histograms.
10472 (compute_value_histograms): Adjust. Implement tree version.
10473
6e858d45
UB
104742005-03-29 Uros Bizjak <uros@kss-loka.si>
10475
10476 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
10477 * config/i386/i386.c (output_fix_trunc): Add new round_mode
10478 variable. Output "fldcw" depending on round_mode.
10479 * config/i386/i386.md (UNSPEC_FIST): New.
10480 (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
10481 New isns patterns to implement lrint and llrint built-ins as x87
10482 intrinsic function.
10483 (fistdi2, fist<mode>2 splitters): New splitters.
10484 (lrint<mode>2): New expanders.
10485
37d93e4f
ILT
104862005-03-28 Ian Lance Taylor <ian@airs.com>
10487
10488 * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
10489 0 when calling final_scan_insn.
10490
c7f599d0
JH
104912005-03-28 Jan Hubicka <jh@suse.cz>
10492
5c55c2e8
JH
10493 PR middle-end/20635
10494 * varasm.c (mark_decl_referenced): Do not mark extern inline functions
10495 as needed.
10496
c7f599d0
JH
10497 * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
10498 types where possible.
10499
8abb6b22
PB
105002005-03-26 Per Bothner <per@bothner.com>
10501
10502 Make -f[no-]show-column also control non-cpp diagnostics.
10503 * c.opt (fshow-column): Move option from here ...
10504 * common.opt (fshow-column): ... to here.
10505 * diagnostic.c (diagnostic_build_prefix): Only print column number
10506 if flag_show_column.
10507
20acd226
SB
105082005-03-27 Steven Bosscher <stevenb@suse.de>
10509
10510 * vax-protos.h (vax_output_int_move, vax_output_int_add,
10511 vax_output_conditional_branch): New prototypes.
10512 * vax.c (vax_output_int_move, vax_output_int_add): New functions,
10513 extracted from vax.md mov and add patterns.
10514 (vax_output_conditional_branch): New function to output conditional
10515 branch instructions.
10516 * vax.md: Use mode macros for arithmetic and mov patterns.
10517 Use code macros for the jump patterns.
10518
f2c79568
AP
105192005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
10520
10521 * Makefile.in (libbackend.o): Depend on version files;
10522 add custom generation command.
10523
d7b1468b
AP
105242005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
10525
10526 PR target/20636
10527 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
10528 sure that we have a REG before getting its REGNO.
10529
1ad81c8e
KG
105302005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10531
10532 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
10533 * builtins.def (BUILT_IN_STRNDUP): New.
10534
a10d70ba
PH
105352005-03-25 Pat Haugen <pthaugen@us.ibm.com>
10536
10537 PR tree-optimization/20470
10538 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
10539 ABS(x-y).
10540
8c3cc7d9
MS
105412005-03-25 Mike Stump <mrs@apple.com>
10542
10543 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
10544 sized objects.
10545
da4c340c
GK
105462005-03-25 Geoffrey Keating <geoffk@apple.com>
10547
7880e30b
GK
10548 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
10549 Use our own structure definitions.
10550
da4c340c
GK
10551 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
10552 (fix_truncdfsi2): Allow registers or memory as destination.
10553 When TARGET_PPC_GFXOPT, generate simplified pattern.
10554 (fix_truncdfsi2_internal): Use define_insn_and_split.
10555 (fix_truncdfsi2_internal_gfxopt): New.
10556 (fctiwz): Don't confuse register allocation by giving it no choices.
10557 (stfiwx): New.
10558 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
10559 (EXTRA_MEMORY_CONSTRAINT): Likewise.
a8e04fe6 10560 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
da4c340c
GK
10561 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
10562
bef87a34
KH
105632005-03-25 Kazu Hirata <kazu@cs.umass.edu>
10564
10565 * dominance.c (free_dominance_info): Speed up by freeing et
10566 data structures without maintaining other nodes.
10567 * et-forest.c (et_free_tree_force): New.
10568 * et-forest.h: Add a prototype for et_free_tree_force.
10569
86f1f858
KH
10570 * tree.c (get_set_constructor_bits,
10571 get_set_constructor_bytes): Remove.
10572 * tree.h: Remove the corresponding prototypes.
10573
ccb527e4
JDA
105742005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
10575
10576 PR target/15491
20acd226 10577 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
ccb527e4
JDA
10578 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
10579 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
10580 PRE_DEC, NEG and NOT.
10581
7f20a5b7
KH
105822005-03-25 Kazu Hirata <kazu@cs.umass.edu>
10583
10584 * fold-const.c: Convert uses of fold (build (...)) to
10585 fold_buildN.
10586
cd928652
ZD
105872005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
10588
10589 PR rtl-optimization/20249
10590 * cse.c (insert_regs): Do not record equivalence of registers in
10591 different modes.
10592
cba9e10a
KH
105932005-03-24 Kazu Hirata <kazu@cs.umass.edu>
10594
10595 * emit-rtl.c (reverse_comparison): Remove.
10596 * rtl.h: Remove the corresponding prototype.
10597
a9f15d83
JW
105982005-03-24 James E Wilson <wilson@specifixinc.com>
10599
10600 * doc/install.texi (--enable-altivec): Delete docs.
10601
b6dc5507
DE
106022005-03-24 David Edelsohn <edelsohn@gnu.org>
10603
10604 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
10605 SFmode and DFmode before reload when
10606 flag_unsafe_math_optimizations not enabled.
10607
0a19d49f
GK
106082005-03-24 Geoffrey Keating <geoffk@apple.com>
10609
d0b07283
GK
10610 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
10611
0a19d49f
GK
10612 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
10613 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
10614
b53ef395
NS
106152005-03-24 Nathan Sidwell <nathan@codesourcery.com>
10616
10617 * configure.ac (enable-checking): Add 'runtime' option.
10618 * doc/install.texi (enable-checking): Document 'runtime' checking.
10619 * tsystem.h (gcc_assert, gcc_unreachable): Define.
10620 * config.in: Regenerated.
10621 * configure: Regenerated.
10622
59d4982b
UB
106232005-03-23 Uros Bizjak <uros@kss-loka.si>
10624
10625 * optabs.h (enum optab_index): Remove OTI_llrint.
10626 (llrint_optab): Remove macro.
10627 * optabs.c (init_optabs): Remove llrint_optab initialization.
10628 * genopinit.c (optabs): Remove llrint_optab implementation.
10629 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
10630 using lrint_optab.
10631
fab2f52c
AO
106322005-03-24 Alexandre Oliva <aoliva@redhat.com>
10633
10634 PR rtl-optimization/20532
10635 * simplify-rtx.c (simplify_binary_operation_1): Protect from
10636 overflow when adding coefficients for PLUS or MINUS.
10637 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
10638 two as multiplier.
10639
d101034c
JM
106402005-03-23 Joseph S. Myers <joseph@codesourcery.com>
10641
10642 * langhooks.h (truthvalue_conversion): Remove.
10643 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
10644 LANG_HOOKS_TRUTHVALUE_CONVERSION.
10645 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
10646 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
10647 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
10648
2e0ea515
KH
106492005-03-23 Kazu Hirata <kazu@cs.umass.edu>
10650
10651 * params.def: Fix a typo.
10652 * config/mips/mips.c: Follow the spelling convensions.
10653 * doc/invoke.texi: Fix typos.
10654
9be09bbc
DB
106552005-03-23 Daniel Berlin <dberlin@dberlin.org>
10656
10657 Fix PR tree-optimization/20601
10658
10659 * tree-ssa-pre.c (insert_aux): Add missing condition to
10660 constification.
10661
17ac08e2
ILT
106622005-03-23 Ian Lance Taylor <ian@airs.com>
10663
10664 * final.c (final_scan_insn): Don't remove no-op instructions.
10665 * reload1.c (reload): Remove simple no-op instructions even when
10666 not optimizing.
10667
0e6b0daf 106682005-03-23 Dorit Naishlos <dorit@il.ib.com>
a8e04fe6 10669
0e6b0daf
DN
10670 PR tree-optimization/20501
10671 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
10672 reporting that peeling for alignment is applied moved to...
10673 * (vect_analyze_data_refs_alignment): Here.
10674
81e974f2
ILT
106752005-03-23 Ian Lance Taylor <ian@airs.com>
10676
10677 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
10678
d432c7a5
RO
106792005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10680
10681 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
10682 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
10683
61158923
HPN
106842005-03-23 Hans-Peter Nilsson <hp@axis.com>
10685
10686 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
10687 imply that this is called once, independent of asms in code.
10688 Adjust to now being pased output and input lists. Mention helper
10689 function decl_overlaps_hard_reg_set_p.
10690 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
10691 hook_tree_tree_identity and to take three trees, returning third.
10692 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
10693 prototype.
10694 * stmt.c: include hard-reg-set.h before tree.h.
10695 (decl_overlaps_hard_reg_set_p): New function, broken out from...
10696 (decl_conflicts_with_clobbers_p): Call
10697 decl_overlaps_hard_reg_set_p.
10698 (expand_asm_operands): Pass output and input lists in call to
10699 targetm.md_asm_clobbers.
10700 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
10701 hook_tree_tree_tree_tree_3rd_identity.
10702 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
10703 parameters.
10704 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
10705 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
10706 parameters, first two unused.
10707 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
10708 parameters. Only add MOF to clobbers if there's no 'h' mentioned
10709 in constraint letters and MOF is not mentioned as a asm-declared
10710 register in neither of the input and output lists.
10711
06cd9d72
DD
107122005-03-23 DJ Delorie <dj@redhat.com>
10713
10714 * optabs.c (expand_binop): Make sure the first subword's result
10715 gets stored.
10716
85498824
JM
107172005-03-23 Joseph S. Myers <joseph@codesourcery.com>
10718
10719 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
10720 Call c_common_truthvalue_conversion rather than
10721 lang_hooks.truthvalue_conversion.
10722 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
10723 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
10724 c-typeck.c.
10725 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
10726 c_common_truthvalue_conversion.
10727 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
10728 c_parser_conditional_expression, c_parser_binary_expression): Call
10729 c_objc_common_truthvalue_conversion.
10730 * c-typeck.c (build_unary_op): Call
10731 c_objc_common_truthvalue_conversion.
10732 (build_conditional_expr): Do not call
10733 lang_hooks.truthvalue_conversion.
10734 (build_binary_op): Call c_common_truthvalue_conversion.
10735 (c_objc_common_truthvalue_conversion): Moved from
10736 c-objc-common.c. Call default_function_array_conversion instead
10737 of default_conversion.
10738
522ddfa2
JM
107392005-03-23 Joseph S. Myers <joseph@codesourcery.com>
10740
10741 * c-common.h (default_conversion): Remove.
10742 (perform_integral_promotions): Add.
10743 * c-tree.h (default_conversion): Add.
10744 * c-typeck.c (perform_integral_promotions): New, split out from
10745 default_conversion.
10746 * c-common.c (check_case_value): Use perform_integral_promotions,
10747 not default_conversion.
10748 (c_add_case_label): Don't continue processing case label after
10749 found to be pointer.
10750
54b73ddf
MM
107512005-03-23 Mark Mitchell <mark@codesourcery.com>
10752
10753 * gcc.c (do_spec_1): Do not add a -L path for a directory in
10754 the prefix list if we have already added a multilib directory
10755 based on that path.
10756 (main): Do not add MD_EXEC_PREFIX to the list of directories to
10757 search with -L.
10758
5983a90e
KH
107592005-03-22 Kazu Hirata <kazu@cs.umass.edu>
10760
10761 * reload1.c (indirect_symref_ok, reload_obstack): Make them
10762 static.
10763 * reload.h: Remove the prototype for indirect_symref_ok.
10764
98af7219
KH
10765 * reload1.c (indirect_symref_ok): Make it global.
10766 * reload.h: Add a prototype for indirect_symref_ok.
10767
39f44b0b
KK
107682005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
10769
10770 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
10771 ashlhi3 expander.
10772
4aa708ba
TS
107732005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
10774
10775 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
10776
9e9945c5
DB
107772005-03-22 Daniel Berlin <dberlin@dberlin.org>
10778
10779 * c-opts.c (c_common_parse_file): Only start/end main source file
10780 if debug hooks says the writer wants it.
10781 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
10782 member.
10783 (xcoff_debug_hooks): Ditto.
10784 * debug.c (do_nothing_hooks): Ditto.
10785 * debug.h (gcc_debug_hooks): Ditto.
10786 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
10787 * sdbout.c (sdb_debug_hooks): Ditto.
10788 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
a8e04fe6 10789
8ff24a79
MM
107902005-03-22 Mark Mitchell <mark@codesourcery.com>
10791
10792 * doc/extend.texi: Deprecate C++ min/max operators.
10793
cf5d1802
ZD
107942005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
10795
10796 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
10797 artificial original candidates.
10798
e5c4f28a
RG
107992005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
10800 Jan Hubicka <jh@suse.cz>
20acd226 10801 Steven Bosscher <stevenb@suse.de>
e5c4f28a
RG
10802
10803 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
10804 call cost based on argument sizes.
4aa708ba 10805 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
e5c4f28a
RG
10806 inlining.
10807 * params.def: (max-inline-inssn-single): Set to 450.
10808 (max-inline-insns-auto): Set to 90.
10809 (max-inline-insns-recursive): Set to 450
10810 (max-inline-insns-recursive-auto): Set to 450.
10811 (large-function-insns): Set to 2700.
10812 (inline-call-cost): New parameter.
10813 * tree-inline.c (estimate_move_cost): New function.
10814 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
10815 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
10816 based on arguments.
10817 * tree-inline.h (estimate_move_cost): Declare.
10818 * invoke.texi: (max-inline-inssn-single): Change default to 450.
10819 (max-inline-insns-auto): Change default to 90.
10820 (max-inline-insns-recursive): Change default to 450
10821 (max-inline-insns-recursive-auto): Change default to 450.
10822 (large-function-insns): Change default to 2700.
10823 (inline-call-cost): Document new parameter.
10824
9ea1c2f6
RS
108252005-03-22 Richard Sandiford <rsandifo@redhat.com>
10826
10827 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
10828 (TARGET_DEFAULT): Delete.
10829 * config/i860/i860.opt: New file.
10830
0b2c18fe
RS
108312005-03-22 Richard Sandiford <rsandifo@redhat.com>
10832
10833 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
10834 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
10835 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
10836 (frv_sched_lookahead): Delete.
10837 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
10838 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
10839 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
10840 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
10841 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
10842 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
10843 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
10844 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
10845 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
10846 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
10847 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
10848 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
10849 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
10850 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
10851 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
10852 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
10853 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
10854 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
10855 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
10856 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
10857 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
10858 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
10859 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
10860 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
10861 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
10862 (frv_sched_lookahead): Delete.
10863 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
10864 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
10865 (frv_handle_option): New function. Move -mcpu= handling from...
10866 (frv_override_options): ...here. Remove handling of other
10867 TARGET_OPTIONS.
10868 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
10869 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
10870 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
10871 and TARGET_NO_MULTI_CE.
10872 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
10873 !TARGET_VLIW_BRANCH.
10874 * config/frv/frv.opt: New file.
10875
7cf57259
KH
108762005-03-22 Kazu Hirata <kazu@cs.umass.edu>
10877
10878 * fold-const.c (fold_ternary): Take decomposed arguments of
10879 CALL_EXPR.
10880 (fold): Update a call to fold_ternary.
10881
ba199a53
KH
10882 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
10883 * tree.h: Add corresponding prototypes.
10884
b2a6a2fb
JJ
108852005-03-22 Jakub Jelinek <jakub@redhat.com>
10886
10887 PR target/20561
10888 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
10889 between jump table and its label.
10890 * final.c (shorten_branches): Handle notes in between ADDR_VEC
10891 resp. ADDR_DIFF_VEC and the label preceeding it.
10892 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
10893 is emitted in the right section.
10894
7107fa7c
KH
108952005-03-22 Kazu Hirata <kazu@cs.umass.edu>
10896
10897 * fold-const.c (fold_unary, fold_binary): Update comments
10898 about arguments.
10899
17c9bcdd
HPN
109002005-03-22 Hans-Peter Nilsson <hp@axis.com>
10901
10902 PR rtl-optimization/20527
10903 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
10904 REG_INC note, test that the register also isn't mentioned in PRED
10905 or SUCC.
10906
fd8e4663
BE
109072005-03-22 Ben Elliston <bje@au.ibm.com>
10908
10909 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
10910 and definition.
10911
b0250067
MS
109122005-03-21 Mike Stump <mrs@apple.com>
10913
10914 * varasm.c (default_assemble_visibility): Remove extra ().
10915
ffaf4d3b
RS
109162005-03-21 Roger Sayle <roger@eyesopen.com>
10917
10918 PR middle-end/20557
10919 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
10920 to determine whether a block can be duplicated, rather than test
10921 whether the block contains noncopyable insns ourselves.
10922
59298b1d
KH
109232005-03-21 Kazu Hirata <kazu@cs.umass.edu>
10924
10925 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
10926 predicates.
10927
6ec4845e
RS
109282005-03-21 Richard Sandiford <rsandifo@redhat.com>
10929
10930 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
10931
8c3eeb97
RS
109322005-03-21 Richard Sandiford <rsandifo@redhat.com>
10933
10934 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
10935 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
10936 * config/fr30/fr30.opt: New file.
10937
013cc86f 109382005-03-18 Daniel Berlin <dberlin@dberlin.org>
a8e04fe6 10939
013cc86f
DB
10940 Fix PR tree-optimization/20542
10941
10942 * tree-flow-inline.h (overlap_subvar): Move to here.
10943 * tree-ssa-operands.c: From here.
10944 * tree-flow.h (overlap_subvar): Declare.
10945 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
10946 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
10947 for variables with subvars.
a8e04fe6 10948
d331e204
MH
109492005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
10950
10951 PR middle-end/20177
10952 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
10953 * modulo-sched.c (const_iteration_count): Return on NULL
10954 pre-header.
10955 (print_node_sched_params): Return on NULL dump_file.
10956 (generate_reg_moves): Handle reg-anti dependencies and disregard
10957 closing branch when generating register moves.
10958 (sms_schedule): Mark the SMSed block dirty.
10959 * passes.c (rest_of_handle_sms): Call update_life_info for all
10960 basic-blocks.
10961 * testsuite/gcc.dg/20050321-1.c: New test.
10962
12a8ee33
BW
109632005-03-21 Bob Wilson <bob.wilson@acm.org>
10964
10965 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
10966 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
10967 movqi_internal): Likewise.
10968
8eb1bc5c
BW
109692005-03-21 Bob Wilson <bob.wilson@acm.org>
10970
10971 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
10972 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
10973 xtensa_b4const): Delete prototypes.
10974 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
10975 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
10976 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
10977 xtensa_extra_constraint): New prototypes.
10978 (add_operand, arith_operand, nonimmed_operand, mem_operand,
10979 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
10980 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
10981 move_operand, const_float_1_operand, fpmem_offset_operand,
10982 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
10983 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
10984 (xtensa_b4const_or_zero): ...this. Change return type to bool and
10985 argument type to HOST_WIDE_INT.
10986 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
10987 xtensa_mask_immediate): Likewise.
10988 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
10989 Likewise. Also make these functions static.
10990 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
10991 (xtensa_const_ok_for_letter_p): New.
10992 (add_operand, arith_operand, nonimmed_operand, mem_operand,
10993 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
10994 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
10995 move_operand, const_float_1_operand, fpmem_offset_operand,
10996 branch_operator, ubranch_operator, boolean_operator): Move to
10997 predicates.md.
10998 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
10999 (xtensa_mem_offset): Change return type to bool.
11000 (xtensa_extra_constraint): New.
11001 (gen_int_relational): Update type of const_range_p function pointer.
11002 Use xtensa_b4const_or_zero.
11003 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
11004 xtensa_const_ok_for_letter_p. Update comments.
11005 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
11006 (PREDICATE_CODES): Delete.
11007 * config/xtensa/xtensa.md: Include predicates.md.
11008 * config/xtensa/predicates.md: New file.
11009
83310f56
KH
110102005-03-21 Kazu Hirata <kazu@cs.umass.edu>
11011
11012 * config/v850/v850-protos.h: Remove the prototypes for
11013 reg_or_int9_operand, reg_or_const_operand,
11014 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
11015 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
11016 movsi_source_operand, power_of_two_operand,
11017 not_power_of_two_operand, special_symbolref_operand,
11018 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
11019 register_is_ok_for_epilogue.
11020 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
11021 reg_or_int9_operand, reg_or_const_operand,
11022 call_address_operand, special_symbolref_operand,
11023 movsi_source_operand, power_of_two_operand,
11024 not_power_of_two_operand, register_is_ok_for_epilogue,
11025 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
11026 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
11027 predicates.md.
11028 * config/v850/v850.h (PREDICATE_CODES): Remove.
11029 * config/v850/v850.md: Include predicates.md.
11030 * config/v850/predicates.md: New.
11031
f08dd1f8
ZW
110322005-03-21 Zack Weinberg <zack@codesourcery.com>
11033
11034 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
11035 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
11036 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
11037 (itoolsdir, itoolsdatadir): Move definition above new first use.
11038 (install-itoolsdirs): New rule.
11039 (install-mkheaders): Depend on install-itoolsdirs, not
11040 install-include-dir.
11041
af5d3a18
KH
110422005-03-21 Kazu Hirata <kazu@cs.umass.edu>
11043
11044 * tree-into-ssa.c: Remove obsolete comments.
11045
37f7367a
RG
110462005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
11047
11048 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
11049 unrolling if -fpeel-loops is specified, too.
11050 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
11051 Remove superfluous check for flag_unroll_loops.
11052
21e01bf1
UB
110532005-03-21 Uros Bizjak <uros@kss-loka.si>
11054
11055 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
11056 (lrint_optab, llrint_optab): Define corresponding macros.
11057 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
11058 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
11059 pattern and llrint_optab using llrintdi2 patterns.
11060 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
11061 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
11062 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
11063 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
11064 flag_unsafe_math_optimizations is set.
11065
14f02e73
PB
110662005-03-21 Paolo Bonzini <bonzini@gnu.org>
11067
11068 * combine.c (combine_simplify_rtx, simplify_if_then_else,
11069 simplify_logical, if_then_else_cond, known_cond,
11070 simplify_comparison): Adjust calls to reverse_comparison.
11071 Don't use combine_reversed_comparison_code).
11072 (combine_reversed_comparison_code): Remove.
11073 (reversed_comparison): Using reversed_comparison_code, move it...
11074 * jump.c (reversed_comparison): ... here.
11075 * rtl.h (reversed_comparison): Add prototype.
11076
49d1af89
KH
110772005-03-21 Kazu Hirata <kazu@cs.umass.edu>
11078
11079 * builtins.c (fold_builtin): Take decomposed arguments of
11080 CALL_EXPR.
11081 * fold-const.c (fold_ternary): Update a call to fold_builtin.
11082 * gimplify.c (gimplify_call_expr): Likewise.
11083 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
11084 * tree.h: Update the prototype of fold_builtin.
11085
9ce921ab
PB
110862005-03-21 Paolo Bonzini <bonzini@gnu.org>
11087
11088 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
11089 * rtlhooks.c (gen_lowpart_no_emit_general): New.
11090 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
11091 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
11092 * simplify-rtx.c (simplify_binary_operation_1): Use it.
11093
f399a1a1
KH
110942005-03-21 Kazu Hirata <kazu@cs.umass.edu>
11095
11096 * builtins.c (fold_builtin_1): Take decomposed arguments of
11097 CALL_EXPR.
0a04ccc5 11098 (fold_builtin): Update a call to fold_builtin_1.
f399a1a1 11099
f5d39c3d
NS
111002005-03-21 Nathan Sidwell <nathan@codesourcery.com>
11101
11102 PR other/20564
11103 * gcov.c (output_lines): Only output function block summary when
11104 outputting branch information.
11105 * doc/gcov.texi: Document format of preamble and additional block
11106 information lines.
11107
cfa7bd9c
RS
111082005-03-21 Richard Sandiford <rsandifo@redhat.com>
11109
11110 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
11111 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
11112 the defaults false if BITS_PER_UNIT != 8.
11113 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
11114 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
11115 than BITS_PER_UNIT != 8.
11116 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
11117 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
11118 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
11119 #undefs.
11120 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
11121 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
11122
90ec750d
RS
111232005-03-20 Roger Sayle <roger@eyesopen.com>
11124
11125 PR middle-end/20539
11126 * fold-const.c (fold_binary): Fix type mismatch between
11127 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
11128 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
11129 for non-truth-valued expressions.
11130
11131 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
11132 and FUNCTION_DECL in the main switch.
11133 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
11134 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
11135 we also need to convert their operands to match.
11136 <TRUTH_NOT_EXPR>: Likewise.
11137
37dc0d8d
JM
111382005-03-21 Joseph S. Myers <joseph@codesourcery.com>
11139
11140 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
11141 diagnostic without checking whether an lvalue.
11142 * c-common.h (lvalue_p): Remove.
11143 (enum lvalue_use): Update comment.
11144 (lvalue_or_else): Replace by lvalue_error.
11145 * c-typeck.c (lvalue_p): Make static.
11146 (lvalue_or_else): New. Call lvalue_error.
11147
294bd182
AM
111482005-03-21 Alan Modra <amodra@bigpond.net.au>
11149
11150 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
11151 (function_arg_advance): Use rs6000_parm_start.
11152 (function_arg, rs6000_arg_partial_bytes): Likewise.
11153
ed248cf7
JM
111542005-03-20 Joseph S. Myers <joseph@codesourcery.com>
11155
11156 * c-common.c (check_case_value): Adjust comment about stripping
11157 NOPs.
11158 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
11159 * c-typeck.c (default_conversion, convert_arguments,
11160 build_modify_expr, convert_for_assignment, store_init_value,
11161 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
11162 manually. Remove inaccurate comments.
11163
749053f5
RS
111642005-03-20 Roger Sayle <roger@eyesopen.com>
11165 Joseph S. Myers <joseph@codesourcery.com>
11166
11167 * varasm.c (do_assemble_alias): Restore comment describing function.
11168 Annotate the target parameter as potentially unused.
11169
82b3eb42
MM
111702005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
11171
11172 PR target/18551
11173 * config/avr/avr.c (avr_output_function_prologue): Do not use
11174 current_function_name() in a label, use a local label instead.
11175
e7108df9
DE
111762005-03-20 David Edelsohn <edelsohn@gnu.org>
11177
11178 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
11179 flag_finite_math_only, not flag_unsafe_math_optimizations.
11180
a05a80fc
KH
111812005-03-20 Kazu Hirata <kazu@cs.umass.edu>
11182
11183 * builtins.c (fold_builtin_1): Update a call to
11184 targetm.fold_builtin.
11185 * hooks.c (hook_tree_tree_bool_null): Rename to
11186 hook_tree_tree_tree_bool_null. Take one more argument of type
11187 tree.
11188 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
11189 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
11190 hook_tree_tree_tree_bool_null.
11191 * target.h (gcc_target): Update the prototype of fold_builtin.
11192 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
11193 arguments of CALL_EXPR.
11194 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
11195 new prototype.
11196
1655dc9d
JH
111972005-03-20 Jan Hubicka <jh@suse.cz>
11198
11199 * cgraph.h (cgraph_node): Add prev_clone pointer.
11200 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
11201 (cgraph_clone_node): Produce doubly linked chain.
11202
f6d1c3a6
JM
112032005-03-20 Joseph S. Myers <joseph@codesourcery.com>
11204
11205 * c-common.c (handle_aligned_attribute, check_function_sentinel,
11206 get_nonnull_operand, handle_sentinel_attribute,
11207 check_function_arguments_recurse): Do not strip NOPS from
11208 INTEGER_CSTs.
11209 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
11210 Likewise.
11211 * c-format.c (get_constant): Likewise.
11212 * c-parser.c (c_parser_postfix_expression): Likewise.
11213 * c-typeck.c (set_init_index): Likewise.
11214 (convert_arguments): Don't check for NOP_EXPR containing integer
11215 constant.
11216
e498b9f1
KH
112172005-03-20 Kazu Hirata <kazu@cs.umass.edu>
11218
11219 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
11220 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
11221 Take decomposed arguments of CALL_EXPR.
11222 (fold_builtin_1): Update calls to the functions mentioned
11223 above.
11224
411ffa02
JM
112252005-03-20 Joseph S. Myers <joseph@codesourcery.com>
11226
11227 * c-decl.c (check_bitfield_type_and_width): Require bit-field
11228 width to have integer type.
11229 (build_enumerator): Require enumerator value to have integer type.
11230
9c86fc0b
JM
112312005-03-19 Joseph S. Myers <joseph@codesourcery.com>
11232
11233 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
11234 to __builtin_inff.
11235
3a1e400e
JM
112362005-03-19 Joseph S. Myers <joseph@codesourcery.com>
11237
11238 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
11239 std=iso9899:199x): Correct descriptions.
11240
f42eccdb
JM
112412005-03-19 Joseph S. Myers <joseph@codesourcery.com>
11242
11243 * config.gcc: Consistently use solaris2.1[0-9]* instead of
11244 solaris2.1[0-9].
11245
6e5b9693
KH
112462005-03-19 Kazu Hirata <kazu@cs.umass.edu>
11247
11248 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
11249 of CALL_EXPR.
11250 (expand_builtin_memcpy, fold_builtin_1): Update calls to
11251 fold_builtin_memcpy.
11252
5be245e4
KH
11253 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
11254 arguments of CALL_EXPR.
11255 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
11256 fold_builtin_found, fold_builtin_1): Update calls to
11257 fold_trunc_transparent_mathfn.
11258
6c6d9d33
JDA
112592005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11260
11261 PR middle-end/20493
11262 * fold-const.c (fold_widened_comparison): Don't optimize casts of
11263 function pointers on targets that require function pointer
11264 canonicalization.
11265 (fold_sign_changed_comparison): Likewise.
11266
1ad93fbf
BS
112672005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
11268
11269 * combine.c (try_combine): When changing the mode of a hard reg, make
11270 sure that doing so is valid.
11271
5a41973c
RS
112722005-03-19 Richard Sandiford <rsandifo@redhat.com>
11273
11274 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
11275 (TARGET_HANDLE_OPTION): Override default.
11276 (avr_handle_option): New function.
11277 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
11278 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
11279 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
11280 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
11281 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
11282 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
11283 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
11284 (TARGET_OPTIONS): Delete.
11285 * config/avr/avr.opt: New file.
11286
a16095f6
KH
112872005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
11288
11289 * config/m32r/m32r-protos.h: Remove the prototypes for
11290 call_address_operand, symbolic_operand, seth_add3_operand,
11291 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
11292 reg_or_uint16_operand, reg_or_cmp_int16_operand,
11293 two_insn_const_operand, move_src_operand,
11294 move_double_src_operand, move_dest_operand,
11295 eqne_comparison_operator, signed_comparison_operator,
11296 large_insn_p, conditional_move_operand, carry_compare_operand,
11297 m32r_block_immediate_operand, extend_operand,
11298 reg_or_eq_int16_operand, int8_operand, and
11299 reg_or_zero_operand.
11300 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
11301 seth_add3_operand, int8_operand, cmp_int16_operand,
11302 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
11303 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
11304 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
11305 move_double_src_operand, move_dest_operand,
11306 eqne_comparison_operator, signed_comparison_operator,
11307 extend_operand, small_insn_p, large_insn_p,
11308 conditional_move_operand, carry_compare_operand,
11309 m32r_block_immediate_operand): Move to predicates.md.
11310 (MAX_MOVE_BYTES): Move to m32r.h.
11311 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
11312 * config/m32r/m32r.md: Include predicates.md.
11313 * config/m32r/predicates.md: New.
11314
0eb971bd
JW
113152005-03-18 James E Wilson <wilson@specifixinc.com>
11316
11317 PR c++/19769
11318 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
11319 origin.
11320
14755fb0
KH
113212005-03-18 Kazu Hirata <kazu@cs.umass.edu>
11322
11323 * config/mn10300/mn10300-protos.h: Remove the prototypes for
11324 call_address_operand, const_8bit_operand.
11325 * config/mn10300/mn10300.c (call_address_operand,
11326 const_8bit_operand, const_1f_operand): Move to predicates.md.
11327 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
11328 * config/mn10300/mn10300.md: Include predicates.md.
11329 * config/mn10300/predicates.md: New.
11330
c51a1ba9
JM
113312005-03-18 Joseph S. Myers <joseph@codesourcery.com>
11332
11333 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
11334 declarations in diagnostics and %E for identifiers, not %s.
11335
33156717
JH
113362005-03-18 Jan Hubicka <jh@suse.cz>
11337 Dale Johannesen <dalej@apple.com>
11338
11339 * basic-block.h (scale_bbs_frequencies_int,
11340 scale_bbs_frequencies_gcov_type): Declare.
11341 * cfg.c (RDIV): New macro.
11342 (update_bb_frequency_for_threading): Fix.
11343 * basic-block.h (scale_bbs_frequencies_int,
11344 scale_bbs_frequencies_gcov_type): New.
11345 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
11346 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
11347 scale_bbs_frequencies_int.
11348 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
11349
c9a88190 113502005-03-18 Kazu Hirata <kazu@cs.umass.edu>
22a14e0d
KH
11351
11352 * config/m32r/m32r-protos.h: Remove the prototypes for
11353 call_address_operand, symbolic_operand, seth_add3_operand,
11354 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
11355 reg_or_uint16_operand, reg_or_cmp_int16_operand,
11356 two_insn_const_operand, move_src_operand,
11357 move_double_src_operand, move_dest_operand,
11358 eqne_comparison_operator, signed_comparison_operator,
11359 large_insn_p, conditional_move_operand, carry_compare_operand,
11360 m32r_block_immediate_operand, extend_operand,
11361 reg_or_eq_int16_operand, int8_operand, and
11362 reg_or_zero_operand.
11363 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
11364 seth_add3_operand, int8_operand, cmp_int16_operand,
11365 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
11366 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
11367 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
11368 move_double_src_operand, move_dest_operand,
11369 eqne_comparison_operator, signed_comparison_operator,
11370 extend_operand, small_insn_p, large_insn_p,
11371 conditional_move_operand, carry_compare_operand,
11372 m32r_block_immediate_operand): Move to predicates.md.
11373 (MAX_MOVE_BYTES): Move to m32r.h.
11374 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
11375 * config/m32r/m32r.md: Include predicates.md.
11376 * config/m32r/predicates.md: New.
11377
c9a88190
KH
11378 * config/pa/pa-protos.h: Add prototypes for magic_milli and
11379 shadd_constant_p.
11380 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
11381 symbolic_operand, symbolic_memory_operand,
11382 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
11383 indexed_memory_operand, move_dest_operand, move_src_operand,
11384 prefetch_cc_operand, prefetch_nocc_operand,
11385 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
11386 arith_operand, arith11_operand, pre_cint_operand,
11387 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
11388 ireg_operand, int5_operand, uint5_operand, int11_operand,
11389 uint32_operand, arith5_operand, and_operand, ior_operand,
11390 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
11391 pc_or_label_operand, div_operand, plus_xor_ior_operator,
11392 shadd_operand, movb_comparison_operator,
11393 cmpib_comparison_operator): Move to predicates.md.
11394 (magic_milli, shadd_constant_p): Make it extern.
11395 * config/pa/pa.h (PREDICATE_CODES): Remove.
11396 * config/pa/pa.md: Include predicates.md.
11397 * config/pa/predicates.md: New.
11398
24a86d3e 11399 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
76ef0a0d 11400 predicate.
24a86d3e 11401
bc7ffd06
KH
114022005-03-18 Kazu Hirata <kazu@cs.umass.edu>
11403
11404 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
11405 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
11406 config/alpha/freebsd.h, config/alpha/linux.h,
11407 config/alpha/netbsd.h, config/alpha/osf5.h,
11408 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
11409 config/h8300/h8300-protos.h, config/h8300/h8300.c,
11410 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
11411 doc/cppopts.texi: Update copyright.
11412
45676d2b
JH
114132005-03-18 Jan Hubicka <jh@suse.cz>
11414
11415 PR middle-end/20225
11416 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
11417 too late.
11418 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
11419 called too late.
11420
625da0db
KH
114212005-03-18 Kazu Hirata <kazu@cs.umass.edu>
11422
11423 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
11424 VEC_safe_push.
11425
114262005-03-18 Paolo Bonzini <bonzini@gnu.org>
bcb34aa3
PB
11427
11428 * combine.c (gen_binary): Remove.
11429 (known_cond, simplify_shift_const, find_split_point,
11430 combine_simplify_rtx, simplify_if_then_else, simplify_set,
11431 simplify_logical, expand_field_assignment, extract_left_shift,
11432 force_to_mode, if_then_else_cond, apply_distributive_law,
11433 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
11434 simplify_comparison, reversed_comparison): Replace with
11435 simplify_gen_binary, simplify_gen_relational or
11436 distribute_and_simplify_rtx.
11437 (distribute_and_simplify_rtx): New function.
11438
bae802f9
AN
114392005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
11440 Paolo Bonzini <gcc.gnu.org>
11441
11442 * calls.c (setjmp_call_p, special_function_p): Update comments
11443 at the head of the functions.
11444
4a76d91a
JH
114452005-03-18 Jan Hubicka <jh@suse.cz>
11446
4bafe847
JH
11447 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
11448
f08dd1f8 11449 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
4a76d91a
JH
11450 function body should be released; do not proactively release function
11451 bodies in non-unit-at-a-time mode.
11452
49aa94f9
RC
114532005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
11454
11455 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
11456 mno-fp-ret-in-387 multilib variants.
11457
2d6eb6c6
RS
114582005-03-18 Richard Sandiford <rsandifo@redhat.com>
11459
11460 * common.opt (m): Remove.
11461 * opts.c (handle_option): Pass 'm' options to set_target_switch if
11462 table lookup fails.
11463 (common_handle_option): Remove OPT_m case.
11464
61f0284e
KH
114652005-03-18 Kazu Hirata <kazu@cs.umass.edu>
11466
11467 * builtins.c (fold_builtin_bitop): Take decomposed arguments
11468 of CALL_EXPR.
11469 (fold_builtin_1): Update a call to fold_builtin_bitop.
11470
1a0d99a8
KH
11471 * builtins.c (fold_builtin_signbit): Take decomposed arguments
11472 of CALL_EXPR.
11473 (fold_builtin_1): Update a call to fold_builtin_signbit.
11474
d6efd7d6
DN
114752005-03-17 Dorit Naishlos <dorit@il.ibm.com>
11476
11477 PR tree-optimization/20474
f08dd1f8 11478 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
d6efd7d6
DN
11479 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
11480
981c7dce
KH
114812005-03-17 Kazu Hirata <kazu@cs.umass.edu>
11482
11483 * config/h8300/h8300-protos.h: Remove prototypes for
11484 general_operand_src, general_operand_dst, single_one_operand,
11485 single_zero_operand, call_insn_operand,
11486 two_insn_adds_subs_operand, small_call_insn_operand,
11487 jump_address_operand, bit_operand, bit_memory_operand,
11488 stack_pointer_operand, const_int_gt_2_operand,
11489 const_int_ge_8_operand, const_int_qi_operand,
11490 const_int_hi_operand, incdec_operand, bit_operator,
11491 nshift_operator, eqne_operator, gtle_operator,
11492 gtuleu_operator, iorxor_operator.
11493 Add prototypes for h8sx_shift_type h8sx_classify_shift and
11494 h8300_ldm_stm_parallel.
11495 * config/h8300/h8300.c (h8sx_shift_type,): Move to
11496 h8300-protos.h.
11497 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
11498 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
11499 (h8300_ldm_stm_parallel): Make it extern.
11500 (h8300_ldm_parallel, h8300_stm_parallel,
11501 h8300_return_parallel, general_operand_src,
11502 general_operand_dst, h8300_dst_operand, h8300_src_operand,
11503 nibble_operand, reg_or_nibble_operand, single_one_operand,
11504 single_zero_operand, call_insn_operand,
11505 two_insn_adds_subs_operand, small_call_insn_operand,
11506 jump_address_operand, bit_operand, bit_memory_operand,
11507 stack_pointer_operand, const_int_gt_2_operand,
11508 const_int_ge_8_operand, const_int_qi_operand,
11509 const_int_hi_operand, incdec_operand, eqne_operator,
11510 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
11511 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
11512 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
11513 nshift_operator): Move to predicates.md.
11514 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
11515 * config/h8300/h8300.md: Include predicates.md.
11516 * config/h8300/predicates.md: New.
11517
dbdd120f
RH
115182005-03-17 Richard Henderson <rth@redhat.com>
11519
11520 * config.gcc (ia64*-*-hpux*): Add extra_options.
11521 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
11522 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
11523 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
11524 (ia64_tls_size_string, ia64_tune_string): Remove.
11525 (ia64_tune): Init to PROCESSOR_ITANIUM2.
11526 (TARGET_DEFAULT_TARGET_FLAGS): New.
11527 (TARGET_HANDLE_OPTION): New.
11528 (ia64_override_options): Move options parsing ...
11529 (ia64_handle_option): ... here. New.
11530 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
f08dd1f8 11531 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
dbdd120f
RH
11532 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
11533 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
11534 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
f08dd1f8
ZW
11535 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
11536 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
dbdd120f
RH
11537 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
11538 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
11539 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
11540 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
11541 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
11542 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
11543 TARGET_EARLY_STOP_BITS): Remove.
11544 (TARGET_ILP32): Default false.
11545 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
11546 (enum ia64_inline_type): New.
11547 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
11548 * config/ia64/ia64.md: Update for new definitions of
11549 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
11550 * config/ia64/ia64.opt: New file.
11551 * config/ia64/ilp32.opt: New file.
11552
0c103070
L
115532005-03-17 H.J. Lu <hongjiu.lu@intel.com>
11554
11555 PR target/18380
11556 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
11557
5463c726
KH
115582005-03-17 Kazu Hirata <kazu@cs.umass.edu>
11559
11560 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
11561 instead of MASK_H8300S.
11562 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
11563 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
11564 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
11565 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
11566 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
11567 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
11568 TARGET_SWITCHES): Remove.
11569 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
11570 TARGET_H8300SX.
11571 * config/h8300/h8300.opt: New.
11572
3ad7bb65
KH
11573 * config/alpha/alpha.opt, config/arc/arc.opt,
11574 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
11575 notices.
11576
3bd62c45
ILT
115772005-03-17 Ian Lance Taylor <ian@airs.com>
11578
11579 * gmon.c: Remove.
11580
3ff01d4d
RS
115812005-03-17 Richard Sandiford <rsandifo@redhat.com>
11582
11583 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
11584 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
11585 (TARGET_HANDLE_OPTION): Override default.
11586 (arc_handle_option): New function.
11587 (arc_init): Remove code to set arch_cpu_string.
11588 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
11589 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
11590 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
11591 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
11592 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
11593 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
11594 (arc_rodata_string, TARGET_OPTIONS): Delete.
11595 * config/arc/arc.opt: New file.
11596
52eb57df
RH
115972005-03-17 Richard Henderson <rth@redhat.com>
11598
11599 * doc/extend.texi (Weak Pragmas): New section.
11600 (attribute alias): Clarify that target must be in the same
11601 translation unit.
11602
8bea7f7c
RH
116032005-03-17 Richard Henderson <rth@redhat.com>
11604
11605 * config/alpha/alpha.opt: New file.
11606 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
11607 of alpha_cpu.
f08dd1f8 11608 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
8bea7f7c
RH
11609 alpha_fprm_string, alpha_fptm_string): Make static.
11610 (alpha_tls_size_string): Remove.
11611 (alpha_handle_option): New.
11612 (override_options): Update for alpha_cpu/alpha_tune split.
11613 (alpha_file_start): Likewise.
11614 (TARGET_DEFAULT_TARGET_FLAGS): New.
11615 (TARGET_HANDLE_OPTION): New.
11616 * config/alpha/alpha.h (alpha_tune): Declare.
f08dd1f8 11617 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
8bea7f7c
RH
11618 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
11619 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
11620 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
11621 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
11622 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
11623 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
11624 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
11625 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
11626 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
11627 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
11628 (TARGET_DEFAULT): Remove MASK_FP.
11629 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
11630 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
11631 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
11632 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
11633 alpha_tls_size_string): Remove.
11634 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
11635 (attribute tune): Rename from attribute cpu.
11636 * config/alpha/ev4.md: Update to match.
11637 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
11638 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
11639 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
11640 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
11641 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
11642 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
11643
68e11b42
JW
116442005-03-16 James E. Wilson <wilson@specifixinc.com>
11645
11646 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
11647 and return without creating new state if before_nops_num is nonzero.
11648 * config/ia64/ia64.md (first_insn): New attribute.
11649 (alloc): Set it to yes.
11650
e8b19a77
DB
116512005-03-16 Daniel Berlin <dberlin@dberlin.org>
11652
11653 * tree-vectorizer.c (new_vec_stmt_info): Initialize
11654 STMT_VINFO_SUBVARS to NULL.
11655 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
f08dd1f8 11656
b2df20b4
DJ
116572005-03-16 Dale Johannesen <dalej@apple.com>
11658
11659 * rtlanal.c (find_first_parameter_load): Rewrite to
11660 return actual first param load or the call if none,
11661 instead of first in block, when not all loads exist.
11662
9abd1955
RS
116632005-03-16 Roger Sayle <roger@eyesopen.com>
11664
11665 * optabs.c (expand_copysign_absneg): Make static.
11666 * optabs.h (expand_copysign_absneg): Delete prototype.
11667 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
11668
e4d5432a
RH
116692005-03-16 Richard Henderson <rth@redhat.com>
11670
11671 PR middle-end/15700
11672 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
11673 (alias_pairs): Rename from output_defs.
11674 (find_decl_and_mark_needed): Split out from assemble_alias.
11675 (do_assemble_alias): New.
11676 (assemble_output_def): Remove.
11677 (finish_aliases_1, finish_aliases_2): New.
11678 (process_pending_assemble_output_defs): Remove.
11679 (assemble_alias): Defer aliases for which we don't yet have a
11680 non-external decl for the target symbol.
11681 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
11682 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
11683 * toplev.c (compile_file): Use finish_aliases_2 instead of
11684 process_pending_assemble_output_defs.
11685 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
11686 (process_pending_assemble_output_defs): Remove.
11687
5f6c8a56 116882005-03-16 Daniel Berlin <dberlin@dberlin.org>
f08dd1f8 11689
5f6c8a56
DB
11690 Fix PR tree-optimization/20489
11691
11692 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
11693 for empty structures.
11694
70596642
DB
116952005-03-16 Daniel Berlin <dberlin@dberlin.org>
11696
f718710e 11697 Fix PR tree-optimization/20490
f08dd1f8 11698
70596642
DB
11699 * tree-ssa-pre.c (create_expression_by_pieces): Use
11700 force_gimple_operand on result of fold.
11701
13953f0a
AP
117022005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
11703
11704 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
11705 of closing parenthesis.
11706
a456b432
KH
117072005-03-16 Kazu Hirata <kazu@cs.umass.edu>
11708
11709 * builtins.c (expand_movstr): Update a call to
11710 fold_builtin_strcpy.
11711 (expand_builtin_strncpy): Update a call to
11712 fold_builtin_strncpy.
11713 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
11714 arguments of CALL_EXPR.
11715 (fold_builtin_1): Update calls to fold_builtin_strcpy and
11716 fold_builtin_strncpy.
11717 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
11718 * tree.h: Update the prototypes of fold_builtin_strcpy and
11719 fold_builtin_strncpy.
11720
00c714ed 117212005-03-16 Steven Bosscher <stevenb@suse.de>
f08dd1f8 11722 Dorit Naishlos <dorit@il.ibm.com>
00c714ed 11723
f08dd1f8
ZW
11724 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
11725 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
00c714ed
SB
11726 error.
11727
b8c4a565
SB
117282005-03-16 Steven Bosscher <stevenb@suse.de>
11729
11730 * tree-inline.c (walk_type_fields, walk_tree,
11731 walk_tree_without_duplicates): Move from here...
11732 * tree.c: ...to here.
11733
a1286ef5
ZW
117342005-03-15 Zack Weinberg <zack@codesourcery.com>
11735
11736 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
11737 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
11738 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
11739 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
11740 (version): Define using $(BASEVER_c).
11741 (Makefile, config.status, build/gcov-iov.o): No longer depends on
11742 version.c.
11743 (version.o): Depend on version files; add custom generation command.
11744 (prefix.o): Define BASEVER on command line.
11745 (s-iov): Depend on version files; adjust command.
11746 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
11747 Add gcc-vers.texi.
11748 (gcc-vers.texi): New rule.
11749 (doc/%.info, doc/%.dvi): Add -I . to command line.
11750 (doc/gccinstall.dvi): Likewise.
11751 (PACKAGE): Delete. All uses replaced with "gcc".
11752 * aclocal.m4: Do not include gcc-version.m4.
11753 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
11754 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
11755 Set is_release based on contents of DEV-PHASE.
11756 Set gcc_version based on contents of BASE-VER.
11757 Define WIN32_REGISTRY_KEY only if the user overrode the default.
11758 * config.in, configure: Regenerate.
11759 * gccbug.in: Determine version of GCC in use at runtime.
11760 * gcov-iov.c: Get version number and development phase from
11761 command line, not by including version.c.
11762 * intl.c: Replace all uses of PACKAGE with "gcc".
11763 * libada-mk.in: Delete unused "gcc_version" variable.
11764 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
11765 * version.c: (VERSUFFIX): New hook for redistributors; adjust
11766 commentary to match.
11767 (version_string): Put together from pieces.
11768 * config/alpha/x-vms: Do not use $(gcc_version).
11769 * config/i386/t-nwld: Likewise.
11770 * doc/include/gcc-common.texi: Include gcc-vers.texi for
11771 version-GCC and DEVELOPMENT.
11772
0ebfd2c9
RS
117732005-03-15 Roger Sayle <roger@eyesopen.com>
11774
11775 PR tree-optimization/17454
11776 * tree.c (tree_size): Add case for TREE_BINFO.
11777 * fold-const.c (fold_checksum_tree): Only clear the overloaded
11778 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
11779
69f39b11
RS
117802005-03-15 Roger Sayle <roger@eyesopen.com>
11781
11782 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
11783 op1 whilst expanding the signed widenening multiply variant.
11784
d522e7a2
RS
117852005-03-15 Richard Sandiford <rsandifo@redhat.com>
11786
11787 * toplev.c (display_target_options): Avoid unused variable warning if
11788 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
11789 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
11790 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
11791 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
11792 (mips_isa_info): New variable.
11793 (mips_parse_cpu): Remove the first argument and leave the caller
11794 to report errors.
11795 (TARGET_HANDLE_OPTION): Override default.
11796 (mips_handle_option): New function. Move option validation code from...
11797 (override_options): ...here. Update calls to mips_parse_cpu.
11798 * config/mips/mips.h (mips_arch_string, mips_tune_string)
11799 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
11800 (SUBTARGET_TARGET_OPTIONS): Delete.
11801 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
11802 (mno-flush-func, mtune=): New options.
11803
c064fde5
RS
118042005-03-15 Roger Sayle <roger@eyesopen.com>
11805 Richard Henderson <rth@redhat.com>
11806
11807 * real.c (c4x_single_format, c4x_extended_format): Provide values
11808 for signbit_ro for c4x's single and extended floating point formats.
11809 * optabs.c (expand_copysign): Use the floating point format's
11810 signbit_ro for expanding via expand_copysign_absneg, and it's
11811 signbit_rw field for expanding via expand_copysign_bit.
11812
5f55a1ba
DN
118132005-03-15 Dorit Naishlos <dorit@il.ibm.com>
11814
11815 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
11816 known_alignment_for_access_p.
11817 (known_alignment_for_access_p): New.
11818 (do_peeling_for_alignment): Field made int instead of bool and renamed
11819 to peeling_for_alignment.
11820 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
11821 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
11822 functionality used to be in vect_analyze_operations.
11823 (vect_analyze_operations): Code to determine vectorization factor was
11824 moved to vect_determine_vectorization_factor.
11825 (vect_enhance_data_refs_alignment): Update to correct alignment when it
11826 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
11827 factor.
11828 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
11829 be part of vect_analyze_operations).
11830 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
11831 creating the guard condition, as the number of iterations may be
11832 constant.
11833 (slpeel_tree_peel_loop_to_edge): Use new name of
11834 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
11835 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
11836 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
11837 (vect_do_peeling_for_alignment): Use fold.
11838 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
11839
11840 (vect_update_inits_of_dr): Renamed to
11841 vect_update_init_of_dr.
11842 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
11843 (vectorizable_store): Fix assertion to use == instead of =.
11844
119bb233
DJ
118452005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
11846
11847 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
11848 call_used_regs for wCG registers.
11849
0ca89db7
UW
118502005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
11851
11852 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
11853 for non-offsettable memory references to cope with outstanding reload
11854 replacements, take 2.
11855
9199f050
UB
118562005-03-15 Uros Bizjak <uros@kss-loka.si>
11857
11858 PR target/18668
11859 * config/i386/i386.h (x86_fisttp): New.
11860 (TARGET_FISTTP): New macro.
11861 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
11862 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
11863 instruction when fisttp flag is set.
11864 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
11865
11866 * config/i386/i386.md (type attribute): Add fisttp.
11867 (unit attribute): Set to i387 for fisttp type.
11868 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
11869 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
11870 TARGET_FISTTP.
11871 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
11872 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
11873 macros.
11874 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
11875 patterns for TARGET_FISTTP. Enable patterns for
11876 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
11877 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
11878 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
11879 implement fisttp x87 insn.
11880 (fix_trunc*_i387_fisttp splitters): New patterns.
11881 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
11882 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
11883 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
11884 clobber.
11885 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
11886 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
11887 Implement using mode macros. Disable patterns for TARGET_FISTTP.
11888 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
11889 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
11890 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
11891 Disable patterns for TARGET_FISTTP.
11892 (fix_trunc*_i387 splitters): Implement usign mode macros.
11893 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
11894 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
11895 (fix_trunx*_sse peephole2s): Implement using mode macros.
11896
9b12dc4f
R
118972005-03-15 J"orn Rennecke <joern.rennecke@st.com>
11898
11899 PR rtl-optimization/20291
11900 * combine.c (try_combine): If splitting fails, re-try with
11901 original combined pattern, i.e. before clobber stripping.
11902
85bfab36
EC
119032005-03-14 Eric Christopher <echristo@redhat.com>
11904
11905 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
11906 STACK_GROWS_DOWNWARD.
a1286ef5 11907
b87a0206
RS
119082005-03-14 Roger Sayle <roger@eyesopen.com>
11909
11910 * real.h (struct real_format): Split the signbit field into two
11911 two fields, signbit_ro and signbit_rw.
11912 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
11913 mips_double_format, ieee_extended_motorola_format,
11914 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
11915 ieee_extended_intel_128_format, ibm_extended_format,
11916 mips_extended_format, ieee_quad_format, mips_quad_format,
11917 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
11918 i370_double_format, c4x_single_format, c4x_extended_format,
11919 real_internal_format): Update initializers for new field.
11920 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
11921 real_format structure.
11922 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
11923 field of the real_format structure.
11924
9044951e
DB
119252005-03-14 Daniel Berlin <dberlin@dberlin.org>
11926
11927 Fix PR tree-optimization/20458
11928
11929 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
11930 DECL_EXTERNAL on STRUCT_FIELD tags.
11931 (clear_call_clobbered): Ditto.
11932 * tree-ssa-operands.c (note_addressable): Make sure the original
11933 variable doesn't slip into the addressable list if we have
11934 subvars.
11935 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
11936 tags too.
a1286ef5 11937
50668cf6
GK
119382005-03-14 Geoffrey Keating <geoffk@apple.com>
11939
11940 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
11941 (-fwide-exec-charset): Likewise.
11942 (-finput-charset): Likewise.
11943 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
11944 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
11945 * c.opt (Wnormalized): New.
11946
ce84fa41
DP
119472005-03-14 Devang Patel <dpatel@apple.com>
11948
11949 * doc/invoke.texi: Add reference to Visibility document.
a1286ef5 11950
21c425ee
RS
119512005-03-14 Richard Sandiford <rsandifo@redhat.com>
11952
11953 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
11954 MASK_SPLIT_ADDRESSES.
11955 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
11956 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
11957 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
11958 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
11959 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
11960 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
11961 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
11962 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
11963 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
11964 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
11965 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
11966 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
11967 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
11968 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
11969 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
11970 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
11971 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
11972 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
11973 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
11974 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
11975 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
11976 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
11977 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
11978 (TARGET_EXPLICIT_RELOCS): Delete.
11979 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
11980 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
11981 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
11982 (override_options): Set MASK_LONG64 if -mint64 is given and no
11983 -mlongXX option is. Complain about -mint64 -mlong32.
11984 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
11985 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
11986 * config/mips/mips.opt: New file.
11987
75685792
RS
119882005-03-14 Richard Sandiford <rsandifo@redhat.com>
11989
11990 * config.gcc (extra_options): New variable for listing option files.
11991 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
11992 * configure.ac (extra_opt_files): New AC_SUBST variable.
11993 (tm_file_list, tm_include_list): Include options.h first.
11994 * configure: Regenerate.
11995 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
11996 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
11997 (s-options-h): New rule.
11998 (options.h): Depend on it.
11999 (TEXI_GCCINT_FILES): Add options.texi.
12000 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
12001 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
12002 * target.h (gcc_target): Add default_target_flags and handle_option.
12003 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
12004 (TARGET_HANDLE_OPTION): New macros.
12005 (TARGET_INITIALIZER): Include them.
12006 * opt-functions.awk (opt_args, nth_arg): New functions.
12007 (switch_flags): Handle the "Target" flag.
12008 (var_args): Delete.
12009 (var_name): Use opt_args and nth_arg.
12010 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
12011 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
12012 macros for the "Mask" and "InverseMask" options.
12013 * opts.h (cl_var_cond): New enum.
a1286ef5 12014 (cl_option): Replace the "has_set_value" and "set_value" fields with
75685792
RS
12015 "var_cond" and "var_value".
12016 (CL_TARGET): New macro.
12017 (option_enabled, print_filtered_help): Declare.
12018 (decode_options): Move definition.
12019 * opts.c (handle_option): Search for the original option before
12020 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
12021 var_cond and var_value fields. Use targetm.handle_option to handle
12022 target options.
12023 (decode_options): Set target_flags to targetm.default_target_flags.
12024 (print_filtered_help): Make global. Handle CL_TARGET.
12025 (option_enabled): New function.
12026 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
12027 (display_target_options, set_target_switch, print_switch_values)
12028 (default_pch_valid_p): Guard uses of target_switches with
12029 #ifdef TARGET_SWITCHES. Also...
12030 (display_target_options): Display the CL_TARGET entries in cl_options.
12031 (set_target_option): Don't complain about the "" option when
12032 TARGET_SWITCHES is undefined.
12033 (print_switch_values): Use option_enabled.
12034 (default_pch_valid_p): Check cl_options[] when looking for something
12035 that has changed the value of target_flags.
12036 * c.opt: Remove documentation from top of file.
12037 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
12038 * doc/sourecebuild.texi: Refer to the new options documentation
12039 instead of c.opt. Document machine-specific .opt files.
12040 * doc/tm.texi (target_flags): Say that this variable is declared
12041 by options.h.
12042 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
12043 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
12044 an alternative.
12045 * doc/options.texi: New file.
12046
3a3b81e7
AO
120472005-03-14 Alexandre Oliva <aoliva@redhat.com>
12048
12049 PR middle-end/18628
12050 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
12051 register.
12052
aff98faf
AO
120532005-03-14 Alexandre Oliva <aoliva@redhat.com>
12054
12055 PR c++/20280
12056 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
12057 temporary variable of pointer type if an lvalues is required.
12058 (gimplify_modify_expr_rhs): Request an rvalue from it.
12059 (gimplify_expr): Pass fallback on.
12060
55b18c19
KH
120612005-03-14 Kazu Hirata <kazu@cs.umass.edu>
12062
12063 * cfgbuild.c: Update comments.
12064
f927760b
RS
120652005-03-14 Roger Sayle <roger@eyesopen.com>
12066
12067 PR rtl-optimization/17236
12068 * optabs.c (expand_doubleword_mult): New helper function split out
12069 from expand_binop. Permute the order in which instructions are
12070 emitted to minimize the number of simultaneously live registers.
12071 (expand_binop): Call expand_doubleword_mult to synthesize a double
12072 word multiplication.
12073
a6ee1a15
KH
120742005-03-14 Kazu Hirata <kazu@cs.umass.edu>
12075
12076 * basic-block.h: Update the prototypes of cached_make_edge and
12077 rtl_make_eh_edge.
12078 * cfg.c (cached_make_edge): Take edge_cache representing one
12079 row of the adjacency matrix of edges.
12080 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
12081 (make_edges): Initialize edge_cache to represent one row of
12082 the adjacency matrix of edges.
12083
8eaa0f34
ZD
120842005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
12085
12086 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
12087 New functions.
12088 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
12089 Remove unused removed_phis variable.
12090 (conditional_replacement): Use build1/build2.
12091 (abs_replacement): Use last_and_only_stmt and build1/build2.
12092
dcd6de6d
ZD
120932005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
12094
12095 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
12096 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
12097 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
12098 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
12099 * c-common.c (handle_novops_attribute): New function.
12100 (c_common_attribute_table): Add "no vops" entry.
12101 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
12102 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
12103 * tree-ssa-operands.c (get_call_expr_operands): Do not
12104 create virtual operands for calls with ECF_NOVOPS flag.
12105 * tree.h (DECL_IS_NOVOPS): New macro.
12106 (struct tree_decl): Add novops_flag.
12107 (ECF_NOVOPS): New constant.
12108
0e8c2b0d
UB
121092005-03-14 Uros Bizjak <uros@kss-loka.si>
12110
12111 PR target/17688
12112 * config/i386/i386.c (x86_use_himode_fiop): New.
12113 (x86_use_simode_fiop): Rename from x86_use_fiop.
12114 * config/i386/i386.h (x86_use_himode_fiop): Declare.
12115 (TARGET_USE_HIMODE_FIOP): New.
12116 (x86_use_simode_fiop): Rename from x86_use_fiop.
12117 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
a1286ef5 12118
0e8c2b0d
UB
12119 * config/i386/i386.md (X87MODEI12): New mode macro define.
12120 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
12121 to implement x87 FP compare with HImode input operands.
12122 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
12123 Use X87MODEI12 mode macro to handle HImode input operands.
12124 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
12125 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
12126 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
12127 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
12128 macro to implement x87 operators with HImode input operands.
12129 (fop splitters): Use X87MODEI12 mode macro to handle HImode
12130 input operands.
12131
f1b19062
ZD
121322005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
12133
12134 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
12135 integer_zerop.
12136 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
12137 constants invariant.
12138
9e32d2be
ZD
121392005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
12140
12141 * basic-block.h (BB_VISITED): Removed.
12142 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
12143
18410793
FH
121442005-03-14 Falk Hueffner <falk@debian.org>
12145
12146 PR bootstrap/20424
12147 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
12148
c1b97125
KH
121492005-03-14 Kazu Hirata <kazu@cs.umass.edu>
12150
12151 * ggc-zone.c: Fix comment typos.
12152
a2130901
KH
12153 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
12154 stringpool.c, config/mips/mips-protos.h: Update copyright.
12155
9390387d
AM
121562005-03-14 Alan Modra <amodra@bigpond.net.au>
12157
12158 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
12159 throughout with its typedef, "rtx".
12160 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
12161 (rs6000_tls_symbol_ref_1): Remove inline keyword.
12162 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
12163 regs in comment to match code.
12164
c148389e
KH
121652005-03-14 Kazu Hirata <kazu@cs.umass.edu>
12166
12167 * except.c (check_handled): Make it static.
12168 * except.h: Remove the corresponding prototype.
12169
7b25e663
KH
12170 * function.c (get_func_frame_size): Make it static.
12171 * function.h: Remove the corresponding type.
12172
1b28cd06
KH
12173 * regclass.c (reg_class_superclasses, reg_class_subclasses):
12174 Make them static.
12175 * hard-reg-set.h: Remove the corresponding declarations.
12176
8de1fc1b
KH
12177 * tree-cfg.c (verify_stmts): Check that
12178 bb_for_stmt (stmt) == bb for every PHI node and statement.
12179
fe3e7450
AM
121802005-03-14 Alan Modra <amodra@bigpond.net.au>
12181
12182 * config.gcc: Remove excess indentation.
12183 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
12184
362cb1bb
RS
121852005-03-13 Roger Sayle <roger@eyesopen.com>
12186
12187 PR middle-end/19331
12188 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
12189 * fold-const.c (fold_sign_changed_comparison): Likewise.
12190 (fold_binary): Optimize comparisons against widened operands if
12191 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
12192
e4a31e19 121932005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
1da4c3a7
EB
12194
12195 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
12196 (sparc_override_options): Initialize it.
12197 (sparc_struct_value_rtx): Set it on the MEM to be returned.
12198
97c54d9a
DE
121992005-03-13 David Edelsohn <edelsohn@gnu.org>
12200
12201 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
12202 (reg_or_none500mem_operand): New predicate.
12203 (zero_reg_mem_operand): New predicate.
12204 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
12205 to reg_or_none500mem_operand.
12206 (extendsfdf2_fpr): Add MEM alternative.
12207 (extenddftf2_internal): Change operand2 predicate to
12208 zero_reg_mem_operand.
12209
08cee789
DJ
122102005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
12211
12212 * ggc-zone.c: Rewritten.
12213
12214 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
12215 if there are none.
12216 * configure.ac: Define GGC_ZONE for --with-gc=zone.
12217 * config.in: Regenerated.
12218 * configure: Regenerated.
ae83e8ae 12219 * gengtype.c (write_types_process_field, write_func_for_structure):
08cee789
DJ
12220 Pass new argument to gt_pch_note_object.
12221 * ggc-common.c (struct ptr_data): Add TYPE.
12222 (gt_pch_note_object): Take TYPE argument and save it.
12223 (call_count): Update call to ggc_pch_count_object.
12224 (call_alloc): Update call to ggc_pch_alloc_object.
12225 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
12226 file.
12227 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
12228 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
12229 (ggc_alloc_zone_stat): Delete.
12230 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
12231 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
12232 (ggc_pch_alloc_object): Update prototypes.
12233 (garbage_zone): Delete.
12234 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
12235 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
12236 pointers.
12237 (tree_id_zone): New variable.
12238 (ggc_alloc_cleared_zone): Remove unused.
12239 (ggc_alloc_zone): Define.
12240 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
12241 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
12242 ggc_alloc_zone_stat.
12243 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
12244 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
12245 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
12246 (make_node_stat): Likewise. Use tree_id_zone.
12247
69229b81
DJ
122482005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
12249 Joseph S. Myers <joseph@codesourcery.com>
12250
12251 * configure.ac: Check for MIPS TLS.
12252 * configure: Regenerated.
12253 * config/mips/mips-protos.h (enum mips_symbol_type): Add
12254 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
12255 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
12256 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
12257 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
12258 (mips_classify_symbol, mips_symbolic_constant_p)
12259 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
12260 (mips_tls_operand_p, mips_call_tls_get_addr)
12261 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
12262 (mips_tls_symbol_ref_1): New functions.
12263 (mips_legitimize_address, mips_legitimize_const_move): Call
12264 mips_legitimize_tls_address.
12265 (override_options): Handle V1_REG and TLS symbols. Disable TLS
12266 for MIPS16.
12267 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
12268 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
12269 (mips_char_to_class): Document V1_REG.
12270 (HAVE_AS_TLS): Provide default.
12271 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
12272 constants.
12273 (load_got<mode>): Renamed from *load_got<mode>. Allow when
12274 !TARGET_ABICALLS.
12275 (tls_get_tp_<mode>): New instruction.
12276
b095fe2c
DJ
122772005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
12278
12279 * configure.ac: Update checks for target tools.
12280 * configure: Regenerated.
12281
0bfb33e5
DJ
122822005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
12283
12284 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
12285
65dc9350
RS
122862005-03-13 Roger Sayle <roger@eyesopen.com>
12287
12288 * expmed.c (expand_mult): Use synthetic multiplication sequences for
12289 more classes of DImode multiplication by constant. Allow both
a1286ef5 12290 multiplication by small negative constants (by performing a
65dc9350
RS
12291 multiplication by a positive constant and negating the result) and
12292 multiplications by large powers of two, by using a left shift.
12293
d357720d
KH
122942005-03-13 Kazu Hirata <kazu@cs.umass.edu>
12295
12296 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
12297 of basic blocks into work_stack.
12298
d4ff96d5
KH
12299 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
12300 config/mips/vr.h: Update copyright.
12301
13d21cb7
KH
12302 * c-decl.c (c_init_decl_processing): Remove useless calls to
12303 build_function_type.
12304
b87e6936
KH
12305 * builtins.c (fold_trunc_transparent_mathfn,
12306 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
12307 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
12308 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
12309 fold_builtin_strcpy, fold_builtin_strncpy,
12310 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
12311 TREE_TYPE (exp).
12312
b475548e
KH
12313 * builtins.c (expand_builtin_mathfn_3): Remove local variable
12314 before_call.
12315
30a6aaed
KH
12316 * lambda-code.c (lambda_compute_auxillary_space): Remove local
12317 variable determinant.
12318
ed9cef22
KH
12319 * tree-cfg.c (group_case_labels): Remove local variable type.
12320
0b4961d0
KH
12321 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
12322 variable ann.
12323
92c54d2c
KH
12324 * tree-ssa-phiopt.c (value_replacement): Remove local variable
12325 result.
12326
6bbaec09
AH
123272005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
12328
12329 PR target/18251
12330 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
12331 (*movmemqi_insn): Delete.
12332 (*movmemhi): Delete.
12333
5cb08bab
KH
123342005-03-13 Kazu Hirata <kazu@cs.umass.edu>
12335
12336 * builtins.c (fold_builtin_classify): Take decomposed
12337 arguments of CALL_EXPR.
12338 (fold_builtin_1): Update a call to fold_builtin_classify.
12339
67c2939d
JM
123402005-03-13 Joseph S. Myers <joseph@codesourcery.com>
12341
12342 PR c/20402
12343 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
12344 through into call to parser_xref_tag after parse error.
12345 (c_parser_struct_declaration): Consistently return NULL_TREE on
12346 error.
12347
c75ab022
DB
123482005-03-12 Daniel Berlin <dberlin@dberlin.org>
12349
12350 * tree-flow-inline.h (ref_contains_array_ref): New function.
12351 (lookup_subvars_for_var): Ditto.
12352 (get_subvars_for_var): Ditto.
12353 (var_can_have_subvars): Ditto.
12354
12355 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
12356 (struct subvar): New type.
12357
12358 * tree-dfa.c (okay_component_ref_for_subvars): New function.
12359
12360 * tree-optimize.c (init_tree_optimization_passes): Call
12361 pass_create_structure_vars.
12362
12363 * tree-ssa-alias.c: Include vec.h.
12364 (init_alias_info): Don't auto-clear call clobbered on struct-field
12365 tags.
12366 (compute_flow_insensitive_aliasing): Handle subvars.
12367 (group_aliases): Handle STRUCT_FIELD aliases.
12368 (setup_pointers_and_addressables): Ditto.
12369 Don't mark variables non-addressable if they still have
12370 addressable subvars.
12371 Also mark subvars addressable when the real variable is marked
a1286ef5 12372 addressable.
c75ab022
DB
12373 (add_pointed_to_var): Try to prune the pointed-to set by only
12374 pointing to subvars when possible.
12375 Otherwise, make sure we set addresses_needed and pt_vars to
12376 properly include subvars.
12377 (bitpos_of_field): New function.
12378 (push_fields_onto_fieldstack): Ditto.
12379 (get_or_create_used_part_for): Ditto.
12380 (create_overlap_variables_for): Ditto.
12381 (find_used_portions): Ditto.
12382 (create_structure_vars): Ditto.
12383 (pass_create_structure_vars): New structure.
12384
12385 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
12386 (get_expr_operands): Handle subvars. Also try to turn
12387 COMPONENT_REF accesses into must-defs now that we can accurately
12388 portray it.
12389 (note_addressable): Try to only mark as addressable those subvars
12390 we know a COMPONENT_REF touches.
12391 (overlap_subvar): New function.
12392
12393 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
12394 Handle subvar storing.
12395 (vect_address_analysis): Update caller of vect_object_analysis.
12396
12397 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
12398
12399 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
12400 (STMT_VINFO_SUBVARS): New macro.
12401
12402 * common.opts: add flag_tree_salias.
a1286ef5 12403
c75ab022 12404 * opts.c (decode_options): flag_tree_salias defaults to on.
a1286ef5 12405
c75ab022
DB
12406 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
12407
12408 * doc/tree-ssa.texi: Document structural alias analysis.
a1286ef5 12409
7d3bf067
SB
124102005-03-12 Steven Bosscher <stevenb@suse.de>
12411
12412 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
12413 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
12414 * tree-ssa-operands.c (get_expr_operands): Likewise.
12415 (get_expr_operands): Likewise for ERROR_MARK.
12416
84f464e5
KH
124172005-03-12 Kazu Hirata <kazu@cs.umass.edu>
12418
12419 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
12420 var.
12421
a1c7f471
KH
12422 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
12423 removed_phis.
12424
84ceaf06
KH
12425 * tree-ssa-pre.c (compute_avail): Remove local variable val.
12426 (mark_operand_necessary): Remove local variable ver.
12427
8b54274e
KH
12428 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
12429 variable prefix_len.
12430
75328849
KH
12431 * value-prof.c (mod_subtract_transform): Remove local variable
12432 value.
12433
7cfb2e10
KH
12434 * builtins.c (fold_builtin_exponent): Take decomposed
12435 arguments of CALL_EXPR.
12436 (fold_builtin_1): Update a call to fold_builtin_exponent.
12437
fba08921
KH
12438 * builtins.c (fold_builtin_logarithm): Take decomposed
12439 arguments of CALL_EXPR.
12440 (fold_builtin_1): Update a call to fold_builtin_logarithm.
12441
9386194f
KH
12442 * c-decl.c (c_init_decl_processing): Remove local variables
12443 ptr_ftype_void and ptr_ftype_ptr.
12444
70e2829d
KH
12445 * gimplify.c (gimplify_expr): Remove local variables r0 and
12446 r1.
12447
f7448d50
KH
12448 * reg-stack.c (move_for_stack_reg): Remove local variable
12449 push_insn.
12450 (compare_for_stack_reg): Remove local variable flags_user.
12451 (convert_regs_1): Remove local variable deleted.
12452
2b74282d
KH
12453 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
12454 variable new_cond.
12455 (combine_blocks): Remove local variables exits and new_e.
12456
fb2a5747
KH
12457 * tree-inline.c (expand_call_inline): Remove local variable
12458 decl.
12459
f39b4c07
KH
12460 * tree-ssa-live.c (create_ssa_var_map,
12461 calculate_live_on_entry): Remove local variable snn.
12462
47e20491
GK
124632005-03-12 Geoffrey Keating <geoffk@apple.com>
12464
a1286ef5 12465 * c-lex.c (c_lex_with_flags): Add parameter to call to
47e20491
GK
12466 cpp_spell_token.
12467
6037d88d
PB
124682005-03-11 Per Bothner <per@bothner.com>
12469
12470 * c-tree.h (struct c_declarator): New id_loc field.
12471 * c-pragma.h (c_lex_with_flags): Take position reference.
12472 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
12473 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
12474 (c_lex): Pass dummy location to c_lex_with_flags.
12475 * c-parser.c (c_lex_one_token): Set c_token's location using
12476 c_lex_with_flags, instead of input_location, which might be "ahead".
12477 (c_parser_direct_declarator): Set declarator's id_loc from
12478 c_token's id_loc.
12479 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
12480 declarator's id_loc, rather than probably-imprecise input_location.
12481 (build_id_declarator): Initialize c_declarator's id_loc field.
12482
210e1852
RS
124832005-03-11 Roger Sayle <roger@eyesopen.com>
12484
12485 PR middle-end/20419
12486 * builtins.c (expand_builtin_signbit): Force the signbit's word
12487 into an integer register to avoid SUBREGs of floating point modes.
12488
c6c81aa6
KH
124892005-03-12 Kazu Hirata <kazu@cs.umass.edu>
12490
12491 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
12492 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
12493 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
12494 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
12495
c6506442
DE
124962005-03-11 David Edelsohn <edelsohn@gnu.org>
12497
12498 PR rtl-optimization/20306
12499 * expr.c (emit_move_complex): Set try_int false if mode is
12500 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
12501 emit_block_move if try_int is true.
12502
f817d5d4
RH
125032005-03-11 Richard Henderson <rth@redhat.com>
12504
12505 PR target/20415
12506 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
12507 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
12508 to match.
12509
0ac40e7a
RS
125102005-03-11 Richard Sandiford <rsandifo@redhat.com>
12511
12512 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
12513 (TARGET_FIX_VR4130): New macro.
12514 (TARGET_OPTIONS): Add -mfix-vr4130.
12515 (ISA_HAS_MACCHI): New macro.
12516 (ASM_SPEC): Add -mfix-vr4130.
12517 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
12518 (override_options): Handle mips_fix_vr4130_string.
12519 (mips_avoid_hazards): Clear all_noreorder_p
12520 if we're working around VR4130 errata and the macc alternatives
12521 are not available.
12522 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
12523 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
12524 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
12525 (MULTILIB_DEFAULTS): Remove leading "march=".
12526 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
12527 if no architecture option is given.
12528 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
12529 VR4130 multilibs.
12530 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
12531 * doc/invoke.texi: Document -mfix-vr4130.
12532
266c6b40
RS
125332005-03-11 Richard Sandiford <rsandifo@redhat.com>
12534
12535 * config/mips/mips.c (override_options): Only warn about -mint64
12536 deprecation if TARGET_INT64.
12537
74124c73
KG
125382005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12539
12540 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
12541 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
12542 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
12543 are non-specific regarding the nonnull parameter positions.
12544 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
12545 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
12546 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
12547 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
a1286ef5 12548
74124c73
KG
12549 * builtins.def: Use the non-specific "nonnull" attibute lists.
12550
81b29e2f
ZD
125512005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
12552
12553 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
12554 single_pred_edge, single_succ, single_pred): Improve comments.
12555
c5cbcccf
ZD
125562005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
12557
12558 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
12559 single_pred_edge, single_succ, single_pred): New inline functions.
12560 * bb-reorder.c (rotate_loop, find_traces_1_round,
12561 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
12562 duplicate_computed_gotos): Use the single_succ/pred functions.
12563 * cfganal.c (forwarder_block_p): Ditto.
12564 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
12565 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
12566 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
12567 merge_seq_blocks): Ditto.
12568 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
12569 * cfglayout.c (fixup_reorder_chain): Ditto.
12570 * cfgloop.c (mark_single_exit_loops, update_latch_info,
12571 canonicalize_loop_headers, verify_loop_structure): Ditto.
12572 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
12573 mfb_update_loops, create_preheader, force_single_succ_latches,
12574 create_loop_notes): Ditto.
12575 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
12576 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
12577 commit_one_edge_insertion, purge_dead_edges,
12578 cfg_layout_can_merge_blocks_p): Ditto.
12579 * except.c (sjlj_emit_function_enter): Ditto.
12580 * flow.c (init_propagate_block_info): Ditto.
12581 * function.c (thread_prologue_and_epilogue_insns): Ditto.
12582 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
12583 insert_insn_end_bb): Ditto.
12584 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
12585 find_if_case_2): Ditto.
12586 * lambda-code.c (perfect_nestify): Ditto.
12587 * lcm.c (optimize_mode_switching): Ditto.
12588 * loop-doloop.c (doloop_modify): Ditto.
12589 * loop-init.c (loop_optimizer_init): Ditto.
12590 * loop-iv.c (simplify_using_initial_values): Ditto.
12591 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
12592 * loop-unswitch.c (unswitch_loop): Ditto.
12593 * modulo-sched.c (generate_prolog_epilog): Ditto.
12594 * predict.c (combine_predictions_for_insn, estimate_probability,
12595 tree_estimate_probability, last_basic_block_p,
12596 estimate_bb_frequencies): Ditto.
12597 * profile.c (branch_prob): Ditto.
12598 * regrename.c (copyprop_hardreg_forward): Ditto.
12599 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
12600 * tracer.c (layout_superblocks): Ditto.
12601 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
12602 cfg_remove_useless_stmts_bb, cleanup_control_flow,
12603 cleanup_control_expr_graph, disband_implicit_edges,
12604 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
12605 tree_verify_flow_info, tree_make_forwarder_block,
12606 tree_forwarder_block_p, remove_forwarder_block,
12607 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
12608 * tree-if-conv.c (tree_if_conversion): Ditto.
12609 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
12610 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
12611 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
12612 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
12613 copy_loop_headers): Ditto.
12614 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
12615 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
12616 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
12617 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
12618 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
12619 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
12620 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
12621 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
12622 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
12623 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
12624 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
12625 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
12626 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
12627 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
12628 slpeel_add_loop_guard): Ditto.
12629
694d73e1
JM
126302005-03-11 James A. Morrison <phython@gcc.gnu.org>
12631
7d3bf067
SB
12632 PR tree-optimization/15784
12633 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
12634 and -1 - A to ~A.
cbefb99c 12635
7d3bf067
SB
12636 * stmt.c (expand_case): Don't change index_type. Convert minval
12637 to the proper type.
cbefb99c 12638
694d73e1
JM
12639 PR tree-optimization/20130
12640 * fold-const.c (fold): Fold x * -1 into -x.
12641
550b7784
KK
126422005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
12643
12644 PR rtl-optimization/20331
12645 * rtlanal.c (modified_between_p): Check its address first for MEM.
12646 (modified_in_p): Likewise.
12647
3f0b8b66
JM
126482005-03-11 Joseph S. Myers <joseph@codesourcery.com>
12649
12650 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
12651
927630a5
SB
126522005-03-10 Steven Bosscher <stevenb@suse.de>
12653
12654 * expr.c (expand_expr_real_1): If possible, use a conditional
12655 move for expanding MIN_EXPR and MAX_EXPR.
12656 Use temp for moving around rtx-en.
12657
dddcca1d
AP
126582005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
12659
12660 PR rtl-opt/20412
12661 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
12662 correct mode.
12663
e4fbead1
RS
126642005-03-10 Roger Sayle <roger@eyesopen.com>
12665
12666 * builtins.c (expand_builtin_signbit): Extend to handle floating
12667 point modes wider than the largest integer type, using the
12668 operand_subword_force function to obtain the signbit's word.
12669
985f2d8f
JJ
126702005-03-10 Jakub Jelinek <jakub@redhat.com>
12671
12672 PR target/20322
12673 * combine.c (try_combine): If recog_for_combine added CLOBBERs
12674 to NEWI2PAT, fail to combine if they are used by NEWPAT.
12675
cf379ac0
AH
126762005-03-10 Aldy Hernandez <aldyh@redhat.com>
12677
927630a5 12678 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
cf379ac0 12679
b25a2407
KH
126802005-03-10 Kazu Hirata <kazu@cs.umass.edu>
12681
12682 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
12683 type void.
12684 (perform_edge_inserts): Unconditionally call
12685 free_dominator_info.
12686
17008288
KH
12687 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
12688
9a7363b9
BW
126892005-03-10 Bob Wilson <bob.wilson@acm.org>
12690
12691 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
12692
8117c488
NS
126932005-03-10 Nathan Sidwell <nathan@codesourcery.com>
12694
fd6132db
NS
12695 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
12696
fbc848cc
NS
12697 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
12698 gcc_unreachable.
12699 (rtl_register_value_prof_hooks,
12700 tree_value_profile_transformations,
12701 tree_register_value_prof_hooks): Likewise.
12702 * var-tracking.c (stack_adjust_offset_pre_post,
12703 variable_htab_free, variable_union, dataflow_set_different_2,
12704 count_uses, variable_was_changed, set_frame_base_location,
12705 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
12706 vt_add_function_parameters): Likewise.
12707 * varasm.c (named_section_real, named_section, make_decl_rtl,
12708 asm_emit_uninitialised, assemble_integer, decode_addr_const,
12709 const_hash_1, compare_constant, copy_constant, force_const_mem,
12710 output_constant_pool_2, output_constant_pool_1, output_constant,
12711 output_constructor, make_decl_one_only, decl_tls_model,
12712 default_no_named_section, default_elf_select_section_1,
12713 default_unique_section_1): Likewise.
12714 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
12715 * vmsdbgout.c (addr_const_to_string): Likewise.
12716
8117c488
NS
12717 PR c++/20375
12718 * function.c (struct assign_parm_data_one): Remove last_named
12719 field.
12720 (assign_parm_find_data_types): Don't determine last_named.
12721 Reorder named_parm determination.
12722 (assign_parms): Only setup varargs on the last non-varadic
12723 parameter.
12724
91c18512
KI
127252005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
12726
12727 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
12728 sda base address on medium model.
12729
2b271002
ZD
127302005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
12731
12732 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
12733 * cfgloop.c (flow_loop_nodes_find): Export.
12734 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
12735 Declare.
12736 * cfgloopmanip.c (fix_loop_structure): New function.
12737 * predict.c (predict_loops): Clean up the loops information.
12738 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
12739 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
12740 loop structure.
12741 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
12742 (rewrite_into_loop_closed_ssa): Declaration changed.
12743 * tree-loop-linear.c (linear_transform_loops): Add argument to
12744 rewrite_into_loop_closed_ssa call.
12745 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
12746 * tree-ssa-loop-im.c (move_computations): Ditto.
12747 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
12748 * tree-vectorizer.c (vectorize_loops): Ditto.
12749 * tree-optimize.c: Include cfgloop.h.
12750 (execute_todo): Choose whether to call cleanup_tree_cfg or
12751 cleanup_tree_cfg_loop.
12752 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
12753 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
12754 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
12755 cleanup_tree_cfg_loop call.
12756 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
12757 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
12758 work on part of cfg.
12759
372d72d9
JJ
127602005-03-10 Jakub Jelinek <jakub@redhat.com>
12761
12762 PR inline-asm/20314
12763 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
12764 with multiple alternatives.
12765
12766 * stmt.c (parse_output_constraint): Fix a typo.
12767
4cfdf48f
BW
127682005-03-09 Bob Wilson <bob.wilson@acm.org>
12769
12770 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
12771 assembly directive instead of deprecated "no-generics".
12772
9c90a97e
UW
127732005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
12774
12775 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
12776 for non-offsettable memory references to cope with outstanding reload
12777 replacements.
12778 * config/s390/s390.md ("reload_outti"): Call find_replacement to
12779 avoid losing outstanding address reloads.
12780 ("reload_outdi", "reload_outdf"): Likewise.
12781
d86dc303
KG
127822005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12783
12784 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
12785 code. Add more cbrt transformations.
12786
d3592adf
KG
127872005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12788
12789 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
12790
62ab45cc
KH
127912005-03-09 Kazu Hirata <kazu@cs.umass.edu>
12792
12793 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
12794 NULL_TREE when a given tree is not simplified.
12795 (fold): Return the original tree when any of the functions
12796 mentioned above NULL_TREE.
12797
fbaa905c
KH
12798 * fold-const.c (fold_unary, fold_binary): Take decomposed
12799 arguments, code, type, op0, and op1 in case of fold_binary.
12800 (fold): Update calls to fold_unary and fold_binary.
12801
a35da91f
RS
128022005-03-09 Roger Sayle <roger@eyesopen.com>
12803
12804 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
12805 a fndecl and an arglist instead of a CALL_EXPR, exp.
12806
2b410855
KH
128072005-03-09 Kazu Hirata <kazu@cs.umass.edu>
12808
12809 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
12810
a9b2ee88
KH
12811 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
12812
b258008a
KH
12813 * expr.c (expand_assignment): Remove orig_to_rtx.
12814
5758c0f1
KH
12815 * fold-const.c (int_const_binop): Remove no_overflow.
12816
40e48138
KH
12817 * ifcvt.c (noce_emit_move_insn): Remove inmode.
12818
3c3f4b56
KH
12819 * loop-iv.c (get_biv_step_1): Remove lhs.
12820
d300f6bb
KH
12821 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
12822
e140d617
KH
12823 * real.c (real_nan): Remove neg.
12824
5e35992a
KH
12825 * function.c (thread_prologue_and_epilogue_insns): Remove i
12826 and newinsn.
12827
1d846d0d
KH
12828 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
12829 tb.
12830
29b86a49
KH
12831 * tree-eh.c (tree_could_trap_p): Remove idx.
12832
184d1bb5
KH
12833 * tree-into-ssa.c (ann): Remove ann.
12834
df0159b7
KH
12835 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
12836
dc3fcf39
KH
12837 * tree-sra.c (decide_block_copy): Remove inst_count.
12838
a92b9bdf
KH
12839 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
12840
e2b8bd6c
KH
12841 * tree-ssa-loop-im.c (lhs): Remove.
12842
5e91f7a3
KH
12843 * cfgbuild.c (state, STATE, SET_STATE,
12844 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
12845 make_edges.
12846 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
12847 (find_basic_blocks): Set the state of each basic block to
12848 BLOCK_NEW.
12849
b0c32a73
JL
128502005-03-08 Jeff Law <law@redhat.com>
12851
12852 * tree-cfg.c (cleanup_control_flow): If removal of a computed
12853 goto results in the removal of edges in the CFG, then we need
12854 to recompute dominators.
12855
b735d54b
BE
128562005-03-09 Ben Elliston <bje@au.ibm.com>
12857
12858 * c-common.c (c_do_switch_warnings): Comment fix.
12859
1fbbc055
JB
128602005-03-08 Julian Brown <julian@codesourcery.com>
12861
12862 * Patch from 2005-03-08 reverted for causing regressions and
12863 ppc-darwin bootstrap failure.
12864
4d3e6fae
FJ
128652005-03-08 Fariborz Jahanian <fjahanian@apple.com>
12866
a1286ef5 12867 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
4d3e6fae
FJ
12868 Define the real function for ppc-darwin.
12869 * c-typeck.c (convert_arguments): Check for target-specific
12870 invalid argument call to unprototyped function.
a1286ef5 12871 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
4d3e6fae 12872 New Macro.
a1286ef5 12873 * target.h (invalid_arg_for_unprototyped_fn): New field
4d3e6fae 12874 in struct calls.
a1286ef5 12875 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
4d3e6fae 12876 default target hook.
a1286ef5 12877 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
4d3e6fae
FJ
12878 Declare.
12879
802415d1
KH
128802005-03-08 Kazu Hirata <kazu@cs.umass.edu>
12881
12882 * c-typeck.c (constructor_stack, constructor_range_stack,
12883 initializer_stack): Make them static.
12884
06c8f57b
KH
12885 * cfg.c (rbi_pool): Make it static.
12886
1ebf7687
KH
12887 * gimple-low.c (lower_stmt_body): Make it static.
12888 * tree-flow.h: Remove the corresponding prototype. Don't
12889 declare lower_data.
12890
392c64a0
KH
12891 * sched-deps.c (cache_size): Make it static.
12892
1bb11558
KH
12893 * stor-layout.c (lang_adjust_rli): Make it static.
12894
323f0b8f
JB
128952005-03-08 Julian Brown <julian@codesourcery.com>
12896
12897 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
12898 from being used for symbols with vague linkage when
12899 HAVE_GAS_COMDAT_GROUP is true.
12900
77fb4cc1
R
129012005-03-08 J"orn Rennecke <joern.rennecke@st.com>
12902
12903 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
12904 nlabel == JUMP_LABEL (jump).
12905
6c6cfbfd
KH
129062005-03-08 Kazu Hirata <kazu@cs.umass.edu>
12907
12908 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
12909 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
12910 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
12911 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
12912
6e9a3221
AN
129132005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
12914
12915 PR c/14411
12916 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
12917 * c-common.c (handle_returns_twice): New function.
12918 (c_common_attribute_table): Declare eturns_twice' attribute.
12919 * doc/extend.texi: Document eturns_twice' attribute.
12920 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
12921 (struct tree_decl): Add returns_twice_flag.
12922
4b2bb87d
KH
129232005-03-08 Kazu Hirata <kazu@cs.umass.edu>
12924
12925 * tree-ssa-phiopt.c: Fix a comment typo.
12926
25d8d27d
KH
12927 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
12928 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
12929 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
12930 copyright.
12931
36013987
RH
129322005-03-08 Richard Henderson <rth@redhat.com>
12933
12934 * config/alpha/alpha.c (code_for_builtin): Replace special-case
12935 builtin codes with ctzdi2, clzdi2, popcountdi2.
12936 (struct alpha_builtin_def): Add is_const.
12937 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
12938 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
12939 (alpha_init_builtins): Init them. Set nothrow and const attributes
12940 on builtins.
a1286ef5
ZW
12941 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
12942 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
12943 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
36013987
RH
12944 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
12945 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
12946 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
12947 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
12948 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
12949 (TARGET_FOLD_BUILTIN): New.
12950 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
12951 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
12952 (ffsdi2): Use ctz.
12953 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
12954
6cd3dd5b
IR
129552005-03-08 Ira Rosen <irar@il.ibm.com>
12956
12957 PR tree-optimization/20122
12958 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
12959 condition of access function instead of base.
12960
be477406 129612005-03-07 Jeff Law <law@redhat.com>
e7afe656 12962 Steven Bosscher <stevenb@suse.de>
be477406
JL
12963
12964 * tree-cfg.c (find_taken_edge_computed_goto): New function.
12965 (find_taken_edge): Call find_taken_edge_computed_goto as
12966 appropriate. Allow any gimple invariant rather than just
12967 INTEGER_CST for VAL.
12968 (cleanup_control_flow): Cleanup a computed goto which has turned
12969 into a simple goto.
12970 (tree_merge_blocks): If block B has any forced labels, move
12971 them to the start of block A.
12972 * tree-ssa-dom.c (thread_across_edge): Allow threading across
12973 computed gotos as well.
12974 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
12975 removal of unnecessary computed gotos too.
12976 (lookup_redirection_data): Fix type of INSERT argument. Callers
12977 updated.
12978
0385f644
KH
129792005-03-08 Kazu Hirata <kazu@cs.umass.edu>
12980
12981 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
12982 Remove trailing spaces.
12983
c24b7de9
KH
12984 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
12985 unshare_all_trees): Make them static.
12986 * tree-gimple.h: Remove the corresponding prototypes.
12987
2863ddd2
KH
12988 * diagnostic.h: Remove unused prototype
12989 debug_output_buffer.
12990 * modulo-sched.c: Remove unused prototype
12991 set_row_column_for_ps.
12992
58261bc2
KH
12993 * tree-ssa-phiopt.c (tree_ssa_phiopt,
12994 replace_phi_edge_with_variable): Remove unused variable i.
12995
685ae8c9
PB
129962005-03-07 Per Bothner <per@bothner.com>
12997
12998 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
12999
80c4ed35 130002005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
a1286ef5 13001
80c4ed35
AP
13002 PR tree-opt/17671
13003 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
13004 bbs on the COND_EXPR instead of the PHI_NODEs.
13005 (candidate_bb_for_phi_optimization): Remove.
13006 (replace_phi_with_stmt): Rename to ...
13007 (replace_phi_edge_with_variable): this and change so that we
13008 replace the phi argument instead of removing the PHI.
13009 (conditional_replacement): Change so we deal with PHI with more
13010 than two arguments.
13011 (value_replacement): Likewise.
13012 (abs_replacement): Likewise.
13013
64022b5d
AH
130142005-03-07 Aldy Hernandez <aldyh@redhat.com>
13015
13016 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
13017 output_e500_flip_gt_bit.
13018
13019 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
13020 as bit 31.
13021 (rs6000_generate_compare): Fix logic to look at the correct bits.
13022 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
13023 Look at GT bit.
13024 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
13025 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
13026 gen_move_from_CR_gt_bit.
13027
13028 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
13029 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
13030 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
13031
13032 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
13033 (E500_CR_IOR_COMPARE): New constant.
13034
5fa09df4
EC
130352005-03-08 Earl Chew <earl_chew@agilent.com>
13036 David Billinghurst <David.Billinghurst@riotinto.com>
13037
13038 * config/i386/host-cygwin.c: New file to support precompiled
13039 headers on cygwin
13040 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
13041 * config.host: Use above files for cygwin host.
13042
92db3ec9
DE
130432005-03-07 David Edelsohn <edelsohn@gnu.org>
13044
13045 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
13046 ordering ops from earlier change.
13047
dbce1570
PB
130482005-03-07 Per Bothner <per@bothner.com>
13049
13050 Various fixes to allow us to again build if --enable-mapped-location:
13051 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
13052 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
13053 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
13054 local variable loc. Change logic appropriately.
13055 * tree-vect-transform.c (vect_finish_stmt_generation): Use
a1286ef5 13056 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
dbce1570
PB
13057 * c-parser.c (c_parser_for_statement): Initialize loc variable.
13058 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
13059 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
13060
1de80b0e
RS
130612005-03-07 Richard Sandiford <rsandifo@redhat.com>
13062
13063 PR rtl-optimization/19683
13064 * reload1.c (choose_reload_regs): Pass the number of bits, not the
13065 number of bytes, to smallest_int_for_mode. Fix arguments to
13066 REG_CANNOT_CHANGE_MODE_P.
13067
4cdc2a35
EB
130682005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
13069
13070 * reorg.c (relax_delay_slots): Check that the jump is
13071 conditional before trying to invert it.
13072
cd735ab8
KH
130732005-03-07 Kazu Hirata <kazu@cs.umass.edu>
13074
13075 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
13076 Make them static.
13077
0405cc0e
KH
13078 * calls (stack_arg_under_construction): Make it static.
13079
fa8718d7
KH
13080 * flow.c (regs_live_at_setjmp): Make it static.
13081 * flow.h: Remove the corresponding prototype.
13082
cf0fa607
KH
13083 * reload1.c (reload_startobj, reload_firstobj,
13084 something_needs_operands_changed, reload_inherited,
13085 reload_inheritance_insn, reload_override_in,
13086 reload_spill_index): Make them static.
13087
6db31844
KH
13088 * recog.c (verify_changes): Make it static.
13089 * recog.h: Remove the corresponding prototype.
13090
12eff7b7
KH
13091 * cfgbuild.c (find_sub_basic_blocks): Remove.
13092 * basic-block.h: Remove the corresponding prototype.
13093 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
13094 in comments.
13095 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
13096
249e538f
KH
13097 * tree-ssa-operands.c (check_build_stmt): Remove.
13098
2e56d969
KH
13099 * stor-layout.c (set_alignment): Remove.
13100 * tree.h: Remove the corresponding prototype.
13101
d4222d43
KH
13102 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
13103
8c80c4aa
KH
13104 * tree-ssa-dce.c (control_dependence_map,
13105 visited_control_parents): Make them static.
13106
50f63b1a
KH
13107 * cfghooks.c (verify_flow_info): Remove local variable
13108 num_bb_notes.
13109
94eb5ddb
KH
13110 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
13111 last_bb_seen.
13112
0d48fcd1
KH
13113 * loop-unswitch.c (unswitch_loop): Remove local variable src.
13114
01c65e8a
DB
131152005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
13116
13117 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
13118
543144ed
JM
131192005-03-07 Joseph S. Myers <joseph@codesourcery.com>
13120
13121 * config/ia64/hpux.h (LINK_SPEC): Add -z.
13122 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
13123 PARALLEL for an empty structure.
13124
209eaaff
KH
131252005-03-07 Kazu Hirata <kazu@cs.umass.edu>
13126
13127 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
13128
1eaea409
KH
13129 * fold-const.c (fold_binary): Unroll the very first "for"
13130 loop.
13131
ede62875
DE
131322005-03-06 David Edelsohn <edelsohn@gnu.org>
13133
13134 * config/rs6000/predicates.md (branch_comparison_operator): Remove
13135 redundant match_code test.
13136 (scc_comparison_operator): Swap match_operand and match_code
13137 tests.
13138 (branch_positive_comparison_operator): Same.
13139 (trap_comparison_operator): Use comparison_operator and swap with
13140 match_code test.
13141
a6990185
MM
131422005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
13143
13144 PR target/20288
13145 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
13146 (out_movhi_r_mr): Read low byte of volatile MEM first.
13147 (out_movhi_mr_r): Write high byte of volatile MEM first.
13148
5211d65a
KH
131492005-03-05 Kazu Hirata <kazu@cs.umass.edu>
13150
13151 * cselib.c (reg_values, reg_values_size): Make them static.
f00822b2
KH
13152
13153 * cse.c (cse_reg_info_table): Make it static.
5211d65a 13154
c1a408fd
KH
13155 * fold-const.c (fold_unary): Use build1 instead of copy_node.
13156
21cf294f
ZD
131572005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
13158
13159 * cse.c (find_best_addr): Use canon_for_address.
13160
25910ca4
KH
131612005-03-06 Kazu Hirata <kazu@cs.umass.edu>
13162
13163 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
13164 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
13165 SUBREG and MEM, respectively.
13166
c933f71e
KH
13167 * fold-const.c (fold_binary): Use code instead of t.
13168
d7e5b287
KH
13169 * fold-const.c (optimize_minmax_comparison): Take decomposed
13170 arguments code, type, op0, and op1 instead of t.
13171 (fold_binary): Update a call to optimize_minmax_comparison.
13172
e1f04615
KH
13173 * fold-const.c (fold_range_test): Take decomposed arguments
13174 code, type, op0, and op1 instead of t.
13175 (fold_binary): Update a call to fold_range_test.
13176
e9da788c
KH
13177 * fold-const.c (fold_binary_op_with_conditional_arg): Take
13178 decomposed arguments code, type, op0, and op1 instead of t.
13179 (fold_binary): Update a call to fold_range_test.
13180
71047303
KH
131812005-03-06 Kazu Hirata <kazu@cs.umass.edu>
13182
13183 * fold-const.c (fold_binary): Avoid directly using the original
13184 expression t as much as possible.
13185
3f724eb8
KH
131862005-03-05 Kazu Hirata <kazu@cs.umass.edu>
13187
13188 * c-semantics.c (build_stmt): Use TYPE_P instead of
13189 IS_NON_TYPE_CODE_CLASS.
13190 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
13191 (NON_TYPE_CHECK): Use TYPE_P instead of
13192 IS_NON_TYPE_CODE_CLASS.
13193
75505450
KH
13194 * fold-const.c (fold): Remove handling of binary expressions.
13195
12bcfaa1
JM
131962005-03-05 James A. Morrison <phython@gcc.gnu.org>
13197
13198 * doc/c-tree.texi: Wrap comments in @r{}.
13199 * doc/cpp.texi: Likewise.
13200 * doc/cppinternals.texi: Likewise.
13201 * doc/extend.texi: Likewise.
13202 * doc/md.texi: Likewise.
13203 * doc/objc.texi: Likewise.
13204 * doc/sourcebuild.texi: Likewise.
13205 * doc/tm.texi: Likewise.
13206 * doc/tree-ssa.texi
13207
52c3e649
KH
132082005-03-05 Kazu Hirata <kazu@cs.umass.edu>
13209
13210 * predict.c (apply_return_prediction): Standardize PHI chain
13211 walking.
13212 * tree-ssa.c (ssa_redirect_edge): Likewise.
13213
25f99665
KH
13214 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
13215 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
13216 Update copyright.
13217
d19e3ef6
KH
13218 * tree-phinodes.c (remove_phi_node): Drop the last argument.
13219 * tree-flow.h: Adjust the prototype for remove_phi_node.
13220 * lambda-code.c (perfect_nestify): Adjust a call to
13221 remove_phi_node.
13222 * tree-cfg.c
13223 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
13224 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
13225 Likewise.
13226 * tree-ssa-dce.c (remove_dead_phis): Likewise.
13227 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
13228 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
13229 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
13230
bb80db7b
KH
13231 * combine.c (simplify_and_const_int): Use gen_int_mode instead
13232 of GEN_INT (trunc_int_for_mode (...)).
13233 * loop-iv.c (iv_number_of_iterations): Likewise.
13234 * postreload.c (reload_cse_move2add): Likewise.
13235 * simplify-rtx.c (simplify_const_unary_operation,
13236 simplify_const_binary_operation): Likewise.
13237 * stor-layout.c (get_mode_bounds): Likewise.
13238
0aee4751
KH
13239 * fold-const.c (fold_binary): New.
13240 (fold): Call fold_binary on binary expressions.
13241
acda0e26
RS
132422005-03-05 Richard Sandiford <rsandifo@redhat.com>
13243
13244 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
13245 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
13246 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
13247 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
13248 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
13249
537a2904 132502005-03-04 Devang Patel <dpatel@apple.com>
a1286ef5 13251
537a2904
DP
13252 PR tree-optimization/18815
13253 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
13254 loops with zero exit edges.
13255
c533f56b
DP
132562005-03-04 Devang Patel <dpatel@apple.com>
13257
13258 * doc/invoke.texi: Remove reference to webpage that does not exist.
a1286ef5 13259
744b2d61
JDA
132602005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
13261 Joseph S. Myers <joseph@codesourcery.com>
13262
13263 PR c++/19797
0022eee3 13264 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
744b2d61
JDA
13265 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
13266 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
13267 * pa.c (get_plabel): Change argument to symbol_ref. Call
13268 maybe_get_identifier instead of get_identifier.
13269 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
13270 (struct deferred_plabel): Replace name field with symbol field.
13271 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
13272 ASM_OUTPUT_EXTERNAL_REAL is defined.
13273 (output_global_address): Use output_addr_const for output of all
13274 symbol_refs.
13275 (output_deferred_plabels): Use symbol_ref instead of name for address
13276 output.
13277 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
13278 ASM_OUTPUT_SYMBOL_REF): New macros.
13279 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
13280 comment.
13281 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
13282 label.
13283
1fb641a1
JM
132842005-03-05 Joseph S. Myers <joseph@codesourcery.com>
13285
13286 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
13287 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
13288
d38ffc55
JL
132892005-03-04 Jeff Law <law@redhat.com>
13290
13291 * basic-block.h (rediscover_loops_after_threading): Declare.
13292 * tree-ssa-dom.c: Include cfgloop.h.
13293 (tree_ssa_dominator_optimize): Discover loops and some basic
13294 properties. Remove forwarder blocks recreated by loop header
13295 canonicalization. Also mark backedges in the CFG.
13296 * tree-ssa-threadupdate.c: Include cfgloop.h
13297 (rediscover_loops_after_threading): Define.
13298 (struct local_info): New field, JUMP_THREADED.
13299 (prune_undesirable_thread_requests): New function.
13300 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
13301 then record that fact for the callers of redirct_edges.
13302 (thread_block): If BB has incoming backedges, then call
13303 prune_undesirable_thraed_requests. Note when we are
13304 going to have to rediscover loop information. Return a
13305 boolean indicating if any jumps were threaded.
13306 (thread_through_all_blocks): Bubble up boolean indicating
13307 if any jumps were threaded.
13308 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
13309 (tree-ssa-threadupdate.o): Similarly.
13310
3ea2c264
KH
133112005-03-04 Kazu Hirata <kazu@cs.umass.edu>
13312
13313 * fold-const.c (fold_ternary): Unroll the "for" loop to
a1286ef5 13314 extract operands.
3ea2c264 13315
b120f3b7
AH
133162005-03-04 Andrew Haley <aph@redhat.com>
13317
13318 * unwind-dw2-fde-glibc.c (struct
13319 unw_eh_callback_data.check_cache): New field.
13320 (frame_hdr_cache): New.
13321 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
13322 Cache frame header info.
13323
7445392c
RS
133242005-03-04 Richard Sandiford <rsandifo@redhat.com>
13325
13326 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
13327 (print_c_condition): Declare.
13328 * read-rtl.c (ptr_loc): New structure.
13329 (ptr_locs, ptr_loc_obstack, joined_conditions)
13330 (joined_conditions_obstack): New variables.
13331 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
13332 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
13333 (join_c_conditions, print_c_condition): New functions.
13334 (apply_macro_to_string): Associate the new string with the same
13335 source location as the old one.
13336 (add_condition_to_string): Use join_c_conditions.
13337 (read_string): Use set_rtx_ptr_loc to record a filename and line
13338 number for the string.
13339 (read_rtx): Initialize the new variables above.
13340 * genattrtab.c (write_test_expr, write_attr_value): Use
13341 print_c_condition.
13342 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
13343 comment above the GCC_VERSION check.
13344 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
13345 Inline the definition of MAYBE_EVAL.
13346 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
13347 * genoutput.c (process_template): Likewise.
13348 * genpreds.c (write_predicate_subfunction): Likewise.
13349 (write_predicate_expr): Use print_c_condition.
13350 * genrecog.c (write_cond): Likewise.
13351 * gensupport.c (process_rtx): Use join_c_conditions to join the
13352 conditions of a define_insn_and_split. Record a source location
13353 for the string after the "&&".
13354 (alter_test_for_insn): Use join_c_conditions.
13355
93516733
AP
133562005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
13357
13358 Revert for now:
13359 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
13360 PR tree-optimization/15784
cbefb99c 13361 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
93516733
AP
13362 and -1 - A to ~A.
13363
ee4c708e
BE
133642005-03-04 Ben Elliston <bje@au.ibm.com>
13365
13366 * gcc.c (option_map): Add --coverage.
13367 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
13368 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
13369 * config/darwin.h: Pass -lgcov for `coverage'.
13370 * doc/invoke.texi (Debugging Options): Document --coverage.
13371
c7d1b449
KH
133722005-03-04 Kazu Hirata <kazu@cs.umass.edu>
13373
13374 * gcse.c (bypass_block): Use find_edge wherever possible.
13375
3c0d1020
DB
133762005-03-03 Daniel Berlin <dberlin@dbrelin.org>
13377
13378 Fix PR debug/20253
a1286ef5 13379
3c0d1020
DB
13380 * c-opts.c (c_common_parse_file): Call start_source_file
13381 and end_source_file at the approriate times.
13382
13383 * dwarf2out.c (dwarf2out_finish): Don't auto-end
13384 the main file, it will be done for us now.
a1286ef5 13385
9bdae6af
KH
133862005-03-04 Kazu Hirata <kazu@cs.umass.edu>
13387
13388 * fold-const.c (fold_ternary): New.
13389 (fold): Call fold_ternary on ternary expressions. Remove
13390 handling of ternary expressions.
13391
8d06c809
JM
133922005-03-03 James A. Morrison <phython@gcc.gnu.org>
13393
13394 PR tree-optimization/15784
cbefb99c 13395 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
8d06c809
JM
13396 and -1 - A to ~A.
13397
57a71826
DE
133982005-03-03 David Edelsohn <edelsohn@gnu.org>
13399
13400 * config/rs6000/predicates.md (branch_comparison_operator):
13401 Convert from C block to conditional format.
13402
59c982fe
JH
134032005-03-03 Jan Hubicka <jh@suse.cz>
13404
13405 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
13406 and non-constant public variables.
13407
229cc11f
KH
134082005-03-03 Kazu Hirata <kazu@cs.umass.edu>
13409
13410 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
13411 with LABEL_EXPR.
13412
8fb790fd
KH
13413 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
13414 EDGE_I.
13415
4430da7f
KH
13416 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
13417 calls to release_ssa_name and release_phi_node.
13418
af85b8e4
KH
13419 * fold-const.c (fold): Remove handling of unary expressions.
13420
4b58fc4d
KH
13421 * fold-const.c (fold_unary): Avoid directly using the original
13422 expression t as much as possible.
13423
9550206b
RS
134242005-03-03 Roger Sayle <roger@eyesopen.com>
13425 Andrew Pinski <pinskia@physics.uc.edu>
13426
13427 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
13428 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
13429
f60c7155
HPN
134302005-03-03 Hans-Peter Nilsson <hp@axis.com>
13431
13432 Describe special registers SRP and MOF as allocatable registers.
13433 * config/cris/cris.c (cris_md_asm_clobbers): New function.
13434 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
13435 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
13436 TARGET_HAS_MUL_INSNS.
13437 (cris_print_operand) <case 'd'>: New case.
13438 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
13439 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
13440 define.
13441 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
13442 (REG_ALLOC_ORDER): Update for MOF.
13443 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
13444 SPECIAL_REGS.
13445 (GENERAL_REGS): No longer a define of ALL_REGS.
13446 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
13447 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
13448 Adjust accordingly.
13449 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
13450 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
13451 (SECONDARY_RELOAD_CLASS): Define.
13452 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
13453 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
13454 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
13455 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
13456 (REGISTER_MOVE_COST): Define.
13457 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
13458 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
13459 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
13460 (CRIS_MOF_REGNUM): New define_constants.
13461 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
13462 special registers.
2a60a1b1
HPN
13463 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
13464 New patterns.
f60c7155
HPN
13465 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
13466 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
13467 Adjust for MOF being properly described as a register.
13468 (indir_to_reg_split): Name this split. Conditionalize on the
13469 destination register being a general register.
13470 (movei): Conditionalize on on operands 0 and 1 having the same
13471 register class.
13472
768875a8
AM
134732005-03-03 Alan Modra <amodra@bigpond.net.au>
13474
13475 PR target/20277
13476 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
13477 -mcpu to override any other explicitly given flags.
13478
0a634832
R
134792005-03-02 J"orn Rennecke <joern.rennecke@st.com>
13480
13481 * recog.c (verify_changes, confirm_change_group): New functions,
13482 broken out of apply_change_group.
13483 (apply_change_group): Use them.
13484 * recog.h (verify_change, confirm_change_group): Declare.
13485 * rtl.h (redirect_jump_2): Declare.
13486 * jump.c (redirect_exp, invert_exp): Delete.
13487 (invert_exp_1): Take second parameter. Return value. Changed caller.
13488 (redirect_jump_2): New function, broken out of redirect_jump.
13489 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
13490 (invert_jump): Use invert_jump_1 and redirect_jump_2.
13491 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
13492
0aca3a61
GK
134932005-03-02 Geoffrey Keating <geoffk@apple.com>
13494
7df74013
GK
13495 * varasm.c (named_section): Use xstrdup rather than doing it by
13496 hand.
13497
0aca3a61
GK
13498 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
13499
2af51b88 135002005-03-02 Devang Patel <dpatel@apple.com>
a1286ef5 13501
2af51b88 13502 Undo PR tree-optimization/18815 fix.
a1286ef5 13503
ac0bd801
DP
135042005-03-02 Devang Patel <dpatel@apple.com>
13505
13506 PR tree-optimization/18815
13507 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
13508 loops with zero exit edges.
a1286ef5 13509
adf4a335
KH
135102005-03-02 Kazu Hirata <kazu@cs.umass.edu>
13511
13512 * cfg.c (connect_src, connect_dest, disconnect_src,
13513 disconnct_dest): New.
13514 (unchecked_make_edge, remove_edge, redirect_edge_succ,
13515 redirect_edge_pred): Use the new functions.
13516
13396b14
KH
13517 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
13518 free_dominance_info only when needed.
13519
94dcded2
DE
135202005-03-02 David Edelsohn <edelsohn@gnu.org>
13521
13522 PR target/20276
13523 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
13524 (reg_or_sub_cint64_operand): Same.
13525
68023570
JL
135262005-03-02 Jeff Law <law@redhat.com>
13527
13528 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
13529 CFG_ALTERED in the main DOM iteration loop.
13530
9560cbde
MM
135312005-03-02 Mark Mitchell <mark@codesourcery.com>
13532
13533 PR c++/19916
13534 * varasm.c (initializer_constant_valid_p): Allow conversions
13535 between OFFSET_TYPEs. Tidy.
13536
bf95bc65
HPN
135372005-03-02 Hans-Peter Nilsson <hp@axis.com>
13538
13539 * config/cris/cris.md ("return"): Remove epilogue delay list
13540 sanity check.
13541
f92ba6d1
DJ
135422005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
13543
13544 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
13545 for Thumb.
13546 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
13547
613c5cd0
KH
135482005-03-02 Kazu Hirata <kazu@cs.umass.edu>
13549
13550 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
13551 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
13552 config/m68k/m68k.c, config/mips/mips.h,
13553 config/rs6000/rs6000-protos.h, doc/contrib.texi,
13554 doc/include/gcc-common.texi: Update copyright.
13555
92fb2d32
KH
13556 PR middle-end/18029 and PR middle-end/18030
13557 * expr.c (optimize_bitfield_assignment_op): Add a special case
13558 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
13559
659d8efa
KH
13560 * fold-const.c (fold_unary): New.
13561 (fold): Call fold_unary on unary expressions.
13562
2563c224
RG
135632005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
13564
13565 * cgraph.h (struct cgraph_edge): Add prev_caller and
13566 prev_callee fields.
13567 (cgraph_node_remove_callees): Export.
13568 * cgraph.c (cgraph_create_edge): Initialize prev_caller
13569 and prev_callee.
13570 (cgraph_edge_remove_callee): New function.
13571 (cgraph_edge_remove_caller): Likewise.
13572 (cgraph_remove_edge): Use.
13573 (cgraph_redirect_edge_callee): Likewise.
13574 (cgraph_node_remove_callees): New function.
13575 (cgraph_node_remove_callers): Likewise.
13576 (cgraph_remove_node): Use.
13577 * tree-optimize.c (tree_rest_of_compilation): Use
13578 cgraph_node_remove_callees instead of manual loop.
13579 * cgraphunit.c (cgraph_finalize_function): Likewise.
13580 (cgraph_expand_function): Likewise.
13581 (cgraph_remove_unreachable_nodes): Likewise.
13582
766beb40
JM
135832005-03-02 Joseph S. Myers <joseph@codesourcery.com>
13584
13585 PR c/8927
13586 * c-tree.h (undeclared_variable, build_external_ref): Add extra
13587 argument.
13588 * c-decl.c (undeclared_variable): Take location as argument.
13589 * c-typeck.c (build_external_ref): Likewise.
13590 * c-parser.c (c_parser_postfix_expression): Pass location of
13591 identifier to build_external_ref.
13592
364849ee
DE
135932005-03-01 David Edelsohn <edelsohn@gnu.org>
13594
13595 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
13596 CCEQ mode for branch_positive_comparison_operator test.
13597 * config/rs6000/predicates (branch_comparison_operator): Revert to
13598 define_predicate.
13599 (scc_comparison_operator): Same.
13600 (branch_positive_comparison_operator): Same.
13601
b6c8b412
HPN
136022005-03-01 Hans-Peter Nilsson <hp@axis.com>
13603
13604 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
13605 (cris_delay_slots_for_epilogue): Remove.
13606 (save_last): Move into cris_target_asm_function_epilogue.
13607 (cris_target_asm_function_epilogue): Remove tests for file being
13608 NULL.
13609 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
13610 (cris_delay_slots_for_epilogue): Remove prototypes.
13611 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
13612 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
13613
4a80dc82
DE
136142005-03-01 David Edelsohn <edelsohn@gnu.org>
13615
13616 * config/rs6000/predicates.md (branch_comparison_operator): Change
13617 to define_special_predicate.
13618 (scc_comparison_operator): Same.
13619 (branch_positive_comparison_operator): Same.
13620
fa555252
DB
136212005-03-01 Daniel Berlin <dberlin@dberlin.org>
13622
13623 * Makefile.in (tree-ssa-sink.o): New.
13624 (OBJS-common): Add tree-ssa-sink.o.
13625 * common.opt: Add -ftree-sink
13626 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
13627 * timevar.def (TV_TREE_SINK): new timevar.
13628 * tree-flow.h (is_hidden_global_store): Prototype.
13629 * tree-optimize.c (init_tree_optimization_passes): Add
13630 pass_sink_code.
13631 * tree-pass.h (pass_sink_code): New.
13632 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
13633 for non-obvious global store store to is_hidden_global_store, and
13634 call that new function.
13635 * tree-ssa-sink.c: New file.
13636 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
13637 * doc/passes.texi: Document forward store motion.
13638 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
13639 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
13640 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
13641 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
13642
255508dd
PB
136432005-03-01 Per Bothner <per@bothner.com>
13644
13645 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
13646 and we have a non-zero column-number, add it to the message.
13647 Also factor out the diagnostic_kind_text.
13648
70388d94
ZD
136492005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
13650
13651 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
13652 flow_loop_pre_header_scan, flow_loop_pre_header_find,
13653 flow_loop_scan): Removed.
13654 (flow_loop_dump): Do not dump removed fields.
13655 (flow_loop_free): Do not free removed fields.
13656 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
13657 (loop_exit_edge_p): New function.
13658 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
13659 num_pre_header_edges, entry_edges, num_entries, exit_edges,
13660 num_exits, exits_doms.
13661 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
13662 LOOP_EDGES, LOOP_ALL): Removed.
13663 (flow_loop_scan): Declaration removed.
13664 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
13665 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
13666 flow_loops_find.
13667 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
13668 (if_convert): Call flow_loops_find and flow_loops_free
13669 when calling mark_loop_exit_edges.
13670 * cfgloopanal.c (mark_loop_exit_edges): Moved from
13671 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
13672 free_dominance_info calls.
13673 * loop-init.c (flow_loops_find): Ditto.
13674 * passes.c (rest_of_handle_branch_prob): Ditto.
13675 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
13676 * loop-unroll.c (analyze_insns_in_loop): Do not use
13677 EDGE_LOOP_EXIT.
13678 * predict.c (predict_loops): Do not call flow_loop_scan.
13679 Use get_loop_exit_edges.
13680 (tree_estimate_probability): Do not pass flags to flow_loops_find.
13681 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
13682 Do not use EDGE_LOOP_EXIT.
13683 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
13684 to bb_with_exit_edge_p.
13685 (if_convertible_loop_p): Do not call flow_loop_scan. Use
13686 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
13687 to bb_with_exit_edge_p.
13688 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
13689 EDGE_LOOP_EXIT.
13690 * tree-loop-linear.c (linear_transform_loops): Do not call
13691 flow_loop_scan. Use loop->single_exit.
13692 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
13693 (vect_analyze_loop_form): Do not call flow_loop_scan.
13694 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
13695 loop->single_exit.
13696 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
13697 loop->single_exit.
13698 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
13699 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
13700 slpeel_tree_duplicate_loop_to_edge_cfg,
13701 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
13702 Use loop_preheader_edge and loop->single_exit. Do not call
13703 flow_loop_scan.
13704
b279b20a
NC
137052005-03-01 Nick Clifton <nickc@redhat.com>
13706
13707 * config/arm/arm.c (thumb_find_work_register): Check all of the
13708 argument registers to see if they are free, and a couple of
13709 special cases where the last argument register but can be proved
13710 to be available during the function's prologue.
13711 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
13712 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
13713 thumb_unexpanded_epilogue): Use unsigned long as the type for the
13714 register bit-mask.
13715 (thumb_compute_save_reg_mask): Likewise. Also use
13716 thumb_find_work_register() to ensure that there is agreement about
13717 which work register is going to be used in the prologue.
13718 (thumb_output_function_prologue): Use unsigned long as the type
13719 for the register bit-mask. Also delay pushing the link register if
13720 other high registers are going to be pushed.
13721 (thumb_compute_save_reg_mask, emit_multi_reg_push,
13722 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
13723 redundant prototypes.
13724
d7459fa8
JDA
137252005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
13726
13727 PR target/19819
13728 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
13729 and after reload in REG+REG indexed addresses without REG_POINTER
13730 set in the base and not set in the index.
13731
65f527e0
KK
137322005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
13733
13734 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
13735 Don't undefine here.
13736 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
13737 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
13738 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
13739 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
13740 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
13741 Delete.
13742 * config.gcc (sh*-*-linux*): Use config/linux.h.
13743
0b5383eb
DJ
137442005-02-28 Dale Johannesen <dalej@apple.com>
13745 Stan Shebs <shebs@apple.com>
13746
13747 Rewrite of 64-bit Darwin structure-by-value pass/return.
13748 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
13749 intoffset, use_stack, named.
13750 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
13751 (rs6000_darwin64_record_arg_advance_flush): New.
13752 (rs6000_darwin64_record_arg_advance_recurse): New.
13753 (rs6000_darwin64_record_arg_flush): New.
13754 (rs6000_darwin64_record_arg_recurse): New.
13755 (rs6000_darwin64_record_arg): New.
13756 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
13757 (function_arg_boundary): Handle 128-bit aligned structs.
13758 (function_arg_advance): Rewrite darwin64 struct handling.
13759 (function_arg): Call rs6000_darwin64_record_arg.
13760 (function_arg_partial_nregs): Handle darwin64 structs.
13761 (rs6000_darwin64_function_value): Remove.
13762 (rs6000_function_value): Call rs6000_darwin64_record_arg.
13763
1a9dddad
RS
137642005-02-28 Roger Sayle <roger@eyesopen.com>
13765
13766 PR tree-optimization/20216
13767 * tree-chrec.c (tree_fold_factorial): Delete.
13768 (tree_fold_binomial): Change argument list to take a return type
13769 and change the type of K to unsigned int. Rewrite to avoid explicit
13770 evaluation of factorials, and (recursively) calling fold to perform
13771 compile-time arithmetic. Return NULL on (internal) overflow.
13772 (chrec_evaluate): Change type of K to an unsigned int. Avoid
13773 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
13774 if any intermediate calculation overflows.
13775 (chrec_apply): Update call to chrec_evaluate.
13776
f50c57ba
JW
137772005-02-28 James E Wilson <wilson@specifixinc.com>
13778
13779 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
13780
4e3d9146
JM
137812005-02-28 Joseph S. Myers <joseph@codesourcery.com>
13782
13783 PR c/20245
13784 * c-parser.c (c_parser_compound_statement): Return error_mark_node
13785 instead of NULL_TREE on error.
13786
48d72335
DE
137872005-02-28 David Edelsohn <edelsohn@gnu.org>
13788
13789 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
13790 (EASY_VECTOR_15_ADD_SELF): Remove.
13791 (num_insns_constant_wide): Not static.
13792 (validate_condition_mode): Not static.
13793 (toc_relative_expr_p): Not static.
13794 (legitimate_indirect_address_p): Not static.
13795 (macho_lo_sum_memory_operand): Not static.
13796 (invalid_e500_subreg): Not static.
13797 (easy_vector_same): Not static.
13798 (easy_vector_splat_const): Not static.
13799 (RS6000_SYMBOL_REF_TLS_P): Remove.
13800 (any_operand): Delete.
13801 (any_parallel_operand): Delete.
13802 (count_register_operand): Delete.
13803 (altivec_register_operand): Delete.
13804 (xer_operand): Delete.
13805 (s8bit_cint_operand): Delete.
13806 (short_cint_operand): Delete.
13807 (u_short_cint_operand): Delete.
13808 (non_short_cint_operand): Delete.
13809 (exact_log2_cint_operand): Delete.
13810 (gpc_reg_operand): Delete.
13811 (cc_reg_operand): Delete.
13812 (cc_reg_not_cr0_operand): Delete.
13813 (reg_or_short_operand): Delete.
13814 (reg_or_neg_short_operand): Delete.
13815 (reg_or_aligned_short_operand): Delete.
13816 (reg_or_u_short_operand): Delete.
13817 (reg_or_cint_operand): Delete.
13818 (reg_or_arith_cint_operand): Delete.
13819 (reg_or_add_cint64_operand): Delete.
13820 (reg_or_sub_cint64_operand): Delete.
13821 (reg_or_logical_cint_operand): Delete.
13822 (got_operand): Delete.
13823 (got_no_const_operand): Delete.
13824 (easy_fp_constant): Delete.
13825 (easy_vector_constant): Delete.
13826 (easy_vector_constant_add_self): Delete.
13827 (zero_constant): Delete.
13828 (zero_fp_constant): Delete.
13829 (volatile_mem_operand): Delete.
13830 (offsettable_mem_operand): Delete.
13831 (mem_or_easy_const_operand): Delete.
13832 (add_operand): Delete.
13833 (non_add_cint_operand): Delete.
13834 (logical_operand): Delete.
13835 (non_logical_cint_operand): Delete.
13836 (mask_operand): Delete.
13837 (mask_operand_wrap): Delete.
13838 (mask64_operand): Delete.
13839 (mask64_2_operand): Delete.
13840 (and64_operand): Delete.
13841 (and64_2_operand): Delete.
13842 (and_operand): Delete.
13843 (reg_or_mem_operand): Delete.
13844 (lwa_operand): Delete.
13845 (symbol_ref_operand): Delete.
13846 (call_operand): Delete.
13847 (current_file_function_operand): Delete.
13848 (input_operand): Delete.
13849 (rs6000_nonimmediate_operand): Delete.
13850 (rs6000_tls_symbol_ref): Delete.
13851 (save_world_operation): Delete.
13852 (restore_world_operation): Delete.
13853 (load_multiple_operation): Delete.
13854 (store_multiple_operation): Delete.
13855 (vrsave_operation): Delete.
13856 (mfcr_operation): Delete.
13857 (mtcrf_operation): Delete.
13858 (lmw_operation): Delete.
13859 (stmw_operation): Delete.
13860 (branch_comparison_operator): Delete.
13861 (branch_positive_comparison_operator): Delete.
13862 (scc_comparison_operator): Delete.
13863 (trap_comparison_operator): Delete.
13864 (boolean_operator): Delete.
13865 (boolean_or_operator): Delete.
13866 (min_max_operator): Delete.
13867 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
13868 (EASY_VECTOR_15): Moved to here.
13869 (EASY_VECTOR_15_ADD_SELF): Move to here.
13870 (PREDICATE_CODES): Delete.
13871 * config/rs6000/rs6000-protos.h: Delete predicate functions.
13872 Declare functions no longer static.
13873 * config/rs6000/predicates.md: New.
13874 * config/rs6000/rs6000.md: Include predicates.md
13875
321cf1f2
KH
138762005-02-28 Kazu Hirata <kazu@cs.umass.edu>
13877
13878 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
13879 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
13880 REG_ALWAYS_RETURN.
13881 * cfgrtl.c (need_fake_edge_p): Likewise.
13882 * combine.c (distribute_notes): Likewise.
13883 * emit-rtl.c (try_split): Likewise.
13884 * recog.c (peephole2_opimize): Likewise.
13885 * reg-notes.def (ALWAYS_RETURN): Remove.
13886 * rtl.h (LCT_ALWAYS_RETURN): Remove.
13887 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
13888 * tree.h (ECF_ALWAYS_RETURN): Remove.
13889
4f380bf8
RS
138902005-02-28 Roger Sayle <roger@eyesopen.com>
13891
13892 PR middle-end/19874
13893 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
13894 between different machine modes is never a "useless" conversion.
13895
138962005-02-28 Geert Bosch <bosch@gnat.com>
dd1f53fb
GB
13897
13898 PR ada/15977
13899 * doc/contrib.texi: List contributors for Ada front end
13900
0a67e02c
PB
139012005-02-28 Paolo Bonzini <bonzini@gnu.org>
13902
13903 * simplify-rtx.c (simplify_unary_operation_1,
13904 simplify_const_unary_operation): New, extracted from...
13905 (simplify_unary_operation): ... this one.
13906 (simplify_binary_operation_1,
13907 simplify_const_binary_operation): New, extracted from...
13908 (simplify_binary_operation): ... this one.
13909 * rtl.h (simplify_const_unary_operation,
13910 simplify_const_binary_operation): Add prototypes.
13911
920b9c8d
JB
139122005-02-28 Julian Brown <julian@codesourcery.com>
13913
13914 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
13915 building libjava and caused PR regression/20228.
13916
215c351a
PB
139172005-02-28 Paolo Bonzini <bonzini@gnu.org>
13918
13919 PR bootstrap/17383
13920 * Makefile.in (host_subdir): New.
13921 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
13922 * configure: Regenerate.
13923
f51d6cb4
ZW
139242005-02-27 Zack Weinberg <zack@codesourcery.com>
13925
13926 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
13927 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
13928 installation directory first.
13929
23369bef
HPN
139302005-02-28 Hans-Peter Nilsson <hp@axis.com>
13931
13932 PR target/19065.
13933 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
13934 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
13935 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
13936 * config/cris/cris.md: Tweak comments referring to Q.
a8e04fe6 13937 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
23369bef
HPN
13938 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
13939 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
13940 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
13941 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
13942 Insert spaces in constraints to align alternatives vertically for
13943 readability.
17c1e037 13944 ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
23369bef
HPN
13945 operand 1: "M".
13946
c0d12712
JDA
139472005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13948
13949 PR rtl-optimization/17728
13950 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
13951 operand 0 from general_operand to move_dest_operand.
13952
478a1f5e
JDA
139532005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13954
13955 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
13956 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
13957 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
13958 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
13959
5395b47b
NN
139602005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
13961
13962 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
13963 * configure: Regenerate.
f51d6cb4 13964 * libada-mk.in: Remove CC; rename
5395b47b
NN
13965 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
13966
c529e0fe
AP
139672005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
13968
13969 PR tree-opt/20188
13970 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
13971 for the lhs, also walk over the tree. Likewise for rhs.
13972
f67e783f
ZD
139732005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
13974
13975 * tree-ssa-dom.c (simple_iv_increment_p): New function.
13976 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
13977 Do not propagate value of iv before increment over the increment.
13978
27bf414c
JM
139792005-02-25 Joseph S. Myers <joseph@codesourcery.com>
13980
13981 * c-parser.c: New file.
13982 * c-parse.in: Remove.
13983 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
13984 Remove.
13985 (c-parser.o): Add dependencies.
13986 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
13987 maintainer-clean, TAGS): Update.
13988 * c-config-lang.in (gtfiles): Update.
13989 * gengtype-lex.l: Don't handle "@@".
13990 * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
13991 objc_build_synchronized, objc_begin_try_stmt,
13992 objc_begin_catch_clause, objc_finish_catch_clause,
13993 objc_build_finally_clause, objc_finish_try_stmt): New.
13994 * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
13995 type_seen_p.
13996 (c_parse_init): Update comment.
13997 * c-decl.c (c_init_decl_processing): Update comment.
13998 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
13999 declspecs_add_scspec, declspecs_add_attrs): Initialize and update
14000 new c_declspecs members.
14001
d8652772
JB
140022005-02-25 Julian Brown <julian@codesourcery.com>
14003
14004 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
14005 from being used for symbols with vague linkage when
14006 HAVE_GAS_COMDAT_GROUP is true.
14007
04270aa4
MM
140082005-02-25 Mark Mitchell <mark@codesourcery.com>
14009
14010 * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
14011
4e9db8b2
SE
140122005-02-25 Steve Ellcey <sje@cup.hp.com>
14013
14014 PR target/19930
14015 * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
14016 (LIBGCC2_HAS_DF_MODE): New.
14017 (LIBGCC2_HAS_XF_MODE): New.
14018 (LIBGCC2_HAS_TF_MODE): New.
14019 * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
14020 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
14021 * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
14022 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
14023 (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
14024 * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
14025 and add _fixtfdi, _fixunstfdi, _floatditf
14026 * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
14027 L_fixunstfdi, L_floatditf.
14028 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
14029 (LIBGCC2_HAS_TF_MODE): Define.
14030
736c86ad
DN
140312005-02-25 Diego Novillo <dnovillo@redhat.com>
14032
14033 PR tree-optimization/20204
14034 * tree-into-ssa.c (insert_phi_nodes_for): Do not use
14035 REWRITE_THIS_STMT markers on PHI nodes.
14036 (rewrite_initialize_block): Likewise.
14037
3bf4da72
MM
140382005-02-25 Mark Mitchell <mark@codesourcery.com>
14039
14040 * version.c (version_string): Update to 4.1.
14041
a1e73046
PC
140422005-02-25 Paolo Carlini <pcarlini@suse.de>
14043
14044 * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
14045 Clarify that the alternative way doesn't work in GNU C++.
14046
9e7376e5
ZD
140472005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
14048
14049 PR tree-optimization/19937
14050 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
14051 to the type of the induction variable.
14052
bd182be8
KK
140532005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
14054
14055 PR rtl-optimization/20117
14056 * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
14057 the block including noncopyable insn.
14058
2b5936fd
KH
140592005-02-24 Kazu Hirata <kazu@cs.umass.edu>
14060
14061 * cse.c (delete_trivially_dead_insns): Speed up by minimizing
14062 calls to find_reg_note.
14063
964a9831
RH
140642005-02-24 Richard Henderson <rth@redhat.com>
14065
14066 PR tree-opt/20127
14067 * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
14068 the type.
14069
78796ad5
FJ
140702005-02-24 Fariborz Jahanian <fjahanian@apple.com>
14071
14072 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
14073 vector types if to use base reg for misaligned non-word ld/std.
14074
b2142ad8
HPN
140752005-02-24 Hans-Peter Nilsson <hp@axis.com>
14076
14077 PR target/14619
14078 * config/cris/cris.c (cris_target_asm_function_prologue): Create
14079 dwarf2 label manually and put it after, not before the prologue.
14080
b436d712
DE
140812005-02-24 David Edelsohn <edelsohn@gnu.org>
14082
14083 PR target/19019
14084 * reload.c (operands_match_p): Only increment register number for
14085 SCALAR_INT_MODE_P modes in multiple hard registers.
14086
589b3fda
DE
14087 * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
14088 Fix formatting.
14089
3f117656
VR
140902005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
14091
14092 * ChangeLog.5: Fix log message typo(s).
14093 * ChangeLog.7: Likewise.
14094 * ChangeLog.tree-ssa: Likewise.
14095 * cfgexpand.c: Fix comment typo(s).
14096 * conflict.c: Likewise.
14097 * defaults.h: Likewise.
14098 * dwarf2out.c: Likewise.
14099 * gcse.c: Likewise.
14100 * ggc-page.c: Likewise.
14101 * tree-eh.c: Likewise.
14102 * tree-ssa-dom.c: Likewise.
14103
04fa46cf
JJ
141042005-02-24 Jakub Jelinek <jakub@redhat.com>
14105
df8a7c49
JJ
14106 PR target/19019
14107 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
14108 * config/rs6000/darwin-ldouble.c: Only use the .symver directives
14109 if SHARED is defined.
14110
04fa46cf
JJ
14111 PR target/20196
14112 * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
14113 allow splitting only if operands 0 and 3 don't overlap.
14114
a0d2281e
RH
141152005-02-24 Richard Henderson <rth@redhat.com>
14116
14117 PR middle-end/19953
14118 * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
14119 (fold_builtin_1): Call them.
14120 * fold-const.c (fold_complex_mult_parts): Split out from ...
14121 (fold_complex_mult): ... here. Fix typo in both imaginary case.
14122 (fold_complex_div_parts, fold_complex_div): New.
14123 (fold): Use them.
14124 * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
14125
4961152d
RK
141262005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14127
ae95537a
RK
14128 * tree-ssa-ccp.c (visit_assignment): Verify that result of
14129 VIEW_CONVERT_EXPR is_gimple_min_invariant.
14130
4961152d
RK
14131 * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
14132 (print_node): Likewise.
14133 Print TYPE_SIZES_GIMPLIFIED.
14134
ef6201a6
HPN
141352005-02-24 Hans-Peter Nilsson <hp@axis.com>
14136
14137 * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
14138 ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
14139 operands as commutative in constraints.
14140
7256233c
DN
141412005-02-24 Diego Novillo <dnovillo@redhat.com>
14142
14143 * tree-into-ssa.c: Re-organize internal functions.
14144
c7463669
RH
141452005-02-24 Richard Henderson <rth@redhat.com>
14146
14147 PR middle-end/18902
14148 * c-opts.c (c_common_post_options): Set flag_complex_method to 2
14149 for c99.
14150 * common.opt (fcx-limited-range): New.
14151 * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
14152 * toplev.c (flag_complex_method): Initialize to 1.
14153 (process_options): Set flag_complex_method to 0 if
14154 flag_cx_limited_range.
14155 * doc/invoke.texi (-fcx-limited-range): New.
14156
03ce14db
KH
141572005-02-24 Kazu Hirata <kazu@cs.umass.edu>
14158
14159 * cse.c (delete_trivially_dead_insns): Speed up by using
14160 NEXT_INSN and PREV_INSN directly instead of next_real_insn and
14161 prev_real_insn.
14162
b86ba8a3
AT
141632005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
14164
14165 * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
14166 functions when -mid-shared-library is being used.
14167
57642751
DJ
141682005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
14169
14170 * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
14171 (LINK_LIBGCC_SPECIAL_1): Don't mention it.
14172 * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
14173 * system.h: Poison LINK_LIBGCC_SPECIAL.
14174
79e4e6a6
JW
141752005-02-23 James E Wilson <wilson@specifixinc.com>
14176
14177 * gengtype.c (note_insn_name): Make 1 element larger.
14178
61961eff
RS
141792005-02-23 Roger Sayle <roger@eyesopen.com>
14180
14181 PR target/20018
14182 PR rtl-optimization/20097
14183 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
14184 BImode SUBREGs of SImode registers which confuse the ia64 backend.
14185
1628a835
DE
141862005-02-23 David Edelsohn <edelsohn@gnu.org>
14187
14188 * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
14189 * t-aix52 (SHLIB_INSTALL): Same.
14190
f439764f
KH
141912005-02-23 Kazu Hirata <kazu@cs.umass.edu>
14192
14193 * genpreds.c: Update copyright.
14194
3f9f087b
MB
141952005-02-23 Michael Beach <michaelb@ieee.org>
14196
14197 PR target/20159
14198 * config/sparc/t-elf (startup files): Assemble with CPP.
14199
bb56fc39
PB
142002005-02-23 Paolo Bonzini <bonzini@gnu.org>
14201
14202 * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
14203 (write_predicate_expr): Likewise.
14204
90c1d75a
DN
142052005-02-22 Diego Novillo <dnovillo@redhat.com>
14206
14207 PR tree-optimization/20100
14208 PR tree-optimization/20115
14209 * tree-optimize.c (init_tree_optimization_passes): Remove
14210 pass_maybe_create_global_var.
14211 * tree-pass.h (pass_maybe_create_global_var): Remove.
14212 * tree-ssa-alias.c (aliases_computed_p): Declare.
14213 (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
14214 (count_calls_and_maybe_create_global_var): Remove.
14215 (pass_maybe_create_global_var): Remove.
14216 (init_alias_info): Do not declare aliases_computed_p.
14217 (maybe_create_global_var): If the function contains no
14218 call-clobbered variables and a mix of pure/const and regular
14219 function calls, create .GLOBAL_VAR.
14220 Mark all call-clobbered variables for renaming.
14221 (merge_pointed_to_info): Update comment.
14222 (add_pointed_to_var): Likewise.
14223 (is_escape_site): Likewise.
14224 Accept struct alias_info * instead of size_t *.
14225 Update all users.
14226 Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
14227 as necessary.
14228 * tree-ssa-operands.c (get_call_expr_operands): If
14229 ALIASES_COMPUTED_P is false, do not add call-clobbering
14230 operands.
14231 * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
14232 (delete_tree_ssa): Likewise.
14233
e59ba1bc
JW
142342005-02-22 James E Wilson <wilson@specifixinc.com>
14235
14236 * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
14237 (do_compile): Do call it here.
14238
78d5a34b
KH
142392005-02-22 Kazu Hirata <kazu@cs.umass.edu>
14240
14241 PR rtl-optimization/20017.
14242 * passes.c (rest_of_handle_combine, rest_of_handle_cse,
14243 rest_of_handle_cse2, rest_of_handle_gcse): Call
14244 delete_dead_jumptables immediately before calling cleanup_cfg.
14245
263fb23d
DP
142462005-02-22 Devang Patel <dpatel@apple.com>
14247
14248 PR 19952
f51d6cb4 14249 * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
263fb23d 14250 all labels
f51d6cb4 14251
466db3c1
DE
142522005-02-22 David Edelsohn <edelsohn@gnu.org>
14253
14254 * config/rs6000/aix.h (WINT_TYPE): Define.
14255
d9168963
SS
142562005-02-22 Stan Shebs <shebs@apple.com>
14257
14258 * config/rs6000/rs6000.c (rs6000_override_options): Default to
14259 natural alignment for 64-bit Darwin.
14260 (rs6000_parse_alignment_option): Warn about uses of -malign-power
14261 on 64-bit Darwin.
14262 * doc/invoke.texi: Document this.
14263
19b3ffbc
DD
142642005-02-22 DJ Delorie <dj@redhat.com>
14265
14266 * c-common.c (c_common_type_for_mode): Pass the mode's precision
14267 to make_[un]signed_type, not the mode itself.
14268
e2c879a1
KH
142692005-02-22 Kazu Hirata <kazu@cs.umass.edu>
14270
14271 * cfg.c (cached_make_edge): Call make_edge if edge cache is
14272 not available. Use tail calls wherever possible.
14273 (make_edge): Call unchecked_make_edge to create an edge.
14274
35bea171
KH
14275 * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
14276 (coalesce_ssa_name): Don't check for
14277 SSANORM_USE_COALESCE_LIST.
14278 (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
14279
554beb3a
DN
142802005-02-22 Diego Novillo <dnovillo@redhat.com>
14281
14282 * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
14283 (rewrite_into_ssa): ... here.
14284
bb2e1640
AO
142852005-02-21 Alexandre Oliva <aoliva@redhat.com>
14286
14287 PR tree-optimization/19786
14288 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
14289 tag to another's may-alias bitmap when adding to the other's list.
14290
1d27fed4
DD
142912005-02-21 DJ Delorie <dj@redhat.com>
14292
14293 * tree-ssa-loop-ivopts.c (computation_cost): Start register
14294 numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
14295 registers in unsupported ways.
14296 * expmed.c (init_expmed): Likewise.
f51d6cb4 14297
10e70392
SC
142982005-02-21 Stan Cox <scox@redhat.com>
14299
14300 * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
14301
fca01525
KH
143022005-02-21 Kazu Hirata <kazu@cs.umass.edu>
14303
14304 * tree-cfg.c (fold_cond_expr_cond): New.
14305 (make_edges): Call fold_cond_expr_cond.
14306 (find_taken_edge): Accept nothing but INTEGER_CST.
14307 (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
14308 and 1.
14309 (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
14310
88312d26
KH
14311 * flow.c (delete_dead_jumptables): Speed up by scanning insns
14312 that do not belong to any basic block.
14313
0b612e0b
JL
143142005-02-21 Jeff Law <law@redhat.com>
14315
14316 * cfganal.c (find_unreachable_blocks): Manually CSE load of
14317 e->dest.
14318
dfd9f74c
KH
143192005-02-21 Kazu Hirata <kazu@cs.umass.edu>
14320
14321 * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
14322 (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
14323 Adjust their definitions.
14324 (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
14325 (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
14326
a4de48bc
KH
14327 * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
14328 genautomata.c, langhooks.c, langhooks.h, system.h,
14329 config/arm/lib1funcs.asm: Update copyright.
14330
4a22dcdd
UW
143312005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
14332
14333 * dbxout.c (dbxout_function_end): Emit Lscope label always.
14334
5dd90688
RG
143352005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
14336
14337 PR bootstrap/13770
14338 * doc/install.texi: Document --with-gc.
14339
35ef372d
PB
143402005-02-21 Paolo Bonzini <bonzini@gnu.org>
14341
14342 * simplify-rtx.c (simplify_unary_operation): Add a missing
14343 "break" statement.
14344
ee167207
EB
143452005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
14346
14347 PR tree-optimization/18663
14348 * tree-ssa-dom.c (extract_range_from_cond): Return 0
14349 if the type has variable bounds.
14350
a3c28ba2
KH
143512005-02-20 Kazu Hirata <kazu@cs.umass.edu>
14352
14353 * gcse.c: Remove an obsolete comment.
14354
a811c672
KH
14355 * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
14356
50c177f7
HPN
143572005-02-20 Hans-Peter Nilsson <hp@axis.com>
14358
14359 * doc/extend.texi (Function Attributes) <Attribute const>: The
14360 attribute "pure" is below this text, not above.
14361
cdcb88d7
JDA
143622005-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14363
14364 * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
14365 (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
14366 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
14367
c5ff069d
ZW
143682005-02-20 Zack Weinberg <zack@codesourcery.com>
14369
14370 PR 18785
14371 * langhooks.h (struct lang_hooks): Add to_target_charset.
14372 * langhooks.c (lhd_to_target_charset): New function.
14373 * langhooks-def.h: Declare lhd_to_target_charset.
14374 (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
14375 (LANG_HOOKS_INITIALIZER): Update.
14376 * c-common.c (c_common_to_target_charset): New function.
14377 * c-common.h: Declare it.
14378 * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
14379 c_common_to_target_charset.
14380
14381 * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
14382 (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
14383 Delete definitions.
14384 * system.h: Poison them.
14385 * doc/tm.texi: Don't discuss them.
14386 * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
14387 * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
14388 (pp_c_char): Do not attempt to generate letter escapes for
14389 newline, tab, etc.
14390 * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
14391 * config/mips/mips.c (mips_output_ascii): Likewise.
14392
ac59a959
DN
143932005-02-20 Dorit Naishlos <dorit@il.ibm.com>
14394
14395 PR tree-optimization/19951
14396 * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
14397 is abnormal.
c5ff069d 14398
a310245f
SB
143992005-02-19 Steven Bosscher <stevenb@suse.de>
14400
c5ff069d 14401 PR middle-end/19698
a310245f
SB
14402 * function.h (struct function): New field `max_loop_depth'.
14403 * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
14404 (flow_loops_find): Reset the max loop depth count before finding loops.
14405 * flow.c (MAX_LIVENESS_ROUNDS): New constant.
14406 (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
14407 (calculate_global_regs_live): Make sure the loop will terminate
14408 when the initial sets are not empty.
14409
2cdc2073
ZW
144102005-02-19 Zack Weinberg <zack@codesourcery.com>
14411
14412 * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
14413 object inside.
14414 * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
14415
4e8d0554
RS
144162005-02-19 Richard Sandiford <rsandifo@redhat.com>
14417
14418 PR other/19525
14419 * doc/invoke.texi: Remove documentation of %M spec.
14420 * gcc.c: Likewise.
14421 (init_spec): Remove %M suffix from -lgcc_s.
14422 (do_spec_1): Remove 'M' case.
14423 * mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
14424 to put shared libraries in the multilib directory. Remove the
14425 shlib_so_soname substitution variable. Don't add a multilib encoding
14426 to shlib_base_name. Set shlib_slibdir_qual to the full pathname
14427 reported by -print-multi-os-directory. Pass @multilib_dir@ to
14428 SHLIB_INSTALL as well as SHLIB_LINK.
14429 * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
14430 (SHLIB_NAME): Delete.
14431 (SHLIB_DIR): New macro.
14432 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
14433 (SHLIB_INSTALL): Adjust accordingly.
14434 * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
14435 * config/t-slibgcc-sld: Likewise.
14436 * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
14437 (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
14438 (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
14439 in $(SHLIB_DIR).
14440 (SHLIBUNWIND_INSTALL): Adjust accordingly.
14441 * config/i386/t-nwld (SHLIB_SONAME): Delete.
14442 (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
14443 Use @shlib_base_name@ instead of @shlib_so_name@.
14444 * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
14445 and @shlib_base_name@.so in @multilib_dir@.
14446 (SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
14447 to the install path.
14448 * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
14449 (SHLIB_LINK): Remove previous workaround.
14450 * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
14451 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
14452 (SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
14453 the install path.
14454 * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
14455 @multilib_dir@. Use @multilib_dir@ to check for threading libraries.
14456 (SHLIB_INSTALL): Adjust accordingly.
14457 (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
14458 * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
14459 * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
14460 config/t-slibgcc-elf-ver.
14461
f10a6654
ZD
144622005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
14463 Jakub Jelinek <jakub@redhat.com>
14464
14465 PR tree-optimization/19828
14466 * tree-ssa-loop-im.c: Add a TODO comment.
14467 (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
14468 without side-effects.
14469
5ff489f1
JM
144702005-02-18 James A. Morrison <phython@gcc.gnu.org>
14471
14472 * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
14473 call fold_convert.
14474
4c334b37
JW
144752005-02-18 James E. Wilson <wilson@specifixinc.com>
14476
14477 * doc/invoke.texi (IA-64 Options): Delete -mb-step.
14478 * config/ia64/ia64.c (last_group, group_idx): Delete variables.
14479 (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
14480 functions.
14481 (ia64_reorg): Delete fixup_errata call.
14482 * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
14483 (TARGET_SWITCHES): Delete -mb-step entry.
14484
58cb41e6
JJ
144852005-02-19 Jakub Jelinek <jakub@redhat.com>
14486
14487 PR c/20043
14488 * c-typeck.c (composite_type): Handle quals in transparent unions.
14489 (type_lists_compatible_p): Likewise.
14490
b79d4265
SS
144912005-02-18 Stan Shebs <shebs@apple.com>
14492
14493 * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
14494 expressions in the .literal8 section.
14495
a7138657
GK
144962005-02-18 Geoffrey Keating <geoffk@apple.com>
14497
14498 * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
14499
0a9c6fdf
RS
145002005-02-18 Roger Sayle <roger@eyesopen.com>
14501
14502 * fold-const.c (constant_boolean_node): Always create values of the
14503 specified type, don't bother calling truthvalue_conversion.
14504
f6775e78
JM
145052005-02-18 Joseph S. Myers <joseph@codesourcery.com>
14506
14507 * except.c (output_function_exception_table): Call
14508 assemble_external_libcall (eh_personality_libfunc).
14509
5b4275db
JM
145102005-02-18 Joseph S. Myers <joseph@codesourcery.com>
14511
14512 PR target/19886
14513 * config/ia64/ia64.h (struct machine_function): Add state_num.
14514 * config/ia64/ia64.c (process_epilogue,
14515 process_for_unwind_directive): Use new unwind state numbers each
14516 time rather than state 1.
14517
d6083c7d
UW
145182005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
14519
14520 PR target/20054
14521 * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
14522 before the "*llgt_didi" pattern.
14523
258dba8f
JM
145242005-02-18 Jason Merrill <jason@redhat.com>
14525
14526 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
14527
2155b886
RE
145282005-02-18 Richard Earnshaw <rearnsha@arm.com>
14529
14530 * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
14531 (div0): Use it in place of ARM_FUNC_ALIAS.
14532 (lshrdi3, ashrdi3, ashlrdi3): Likewise.
14533
0d56ab33
AP
145342005-02-18 Andrew Pinski <pinskia@physics.uc.edu>
14535
14536 PR middle-end/20030
a310245f
SB
14537 * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
14538 access, the lower bound of the array type if it exists.
0d56ab33 14539
2aabee29
AO
145402005-02-18 Alexandre Oliva <aoliva@redhat.com>
14541
14542 PR c++/20008
14543 * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
14544 cases that are out-of-range for the index type.
14545
aeba6c28
JM
145462005-02-18 James A. Morrison <phython@gcc.gnu.org>
14547
14548 * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
14549 (estimate_case_costs): Don't call convert.
14550 * expmed.c (expand_shift): Likewise.
2cdc2073 14551 (make_tree): Call fold_convert instead of convert.
aeba6c28 14552
3a96c3b9
JJ
145532005-02-18 Jakub Jelinek <jakub@redhat.com>
14554
14555 PR c++/19813
14556 * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
14557 that ref to be marked MEM_READONLY_P doesn't have base that needs
14558 constructing.
14559
9fd64c63
JM
145602005-02-18 Joseph S. Myers <joseph@codesourcery.com>
14561
14562 * genautomata.c (output_get_cpu_unit_code_func,
14563 output_cpu_unit_reservation_p): Don't generate old-style function
14564 definitions.
14565
58203599
JJ
145662005-02-18 Jakub Jelinek <jakub@redhat.com>
14567
0948e392
JJ
14568 PR c++/20023
14569 PR tree-optimization/20009
14570 * convert.c (convert_to_integer): Revert 2005-02-16 change.
14571
58203599
JJ
14572 PR tree-optimization/18947
14573 * cgraphunit.c (cgraph_finalize_function): When redefining an extern
14574 inline, remove all nodes that are inlined into the extern inline
14575 being redefined.
14576
c8d3e15a
KH
145772005-02-17 Kazu Hirata <kazu@cs.umass.edu>
14578
14579 * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
14580 loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
14581 tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
14582 config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
14583 Update copyright.
14584
9b396d7c
RS
145852005-02-17 Roger Sayle <roger@eyesopen.com>
14586
14587 PR tree-optimization/19917
14588 * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
14589 to be potentially trapping.
14590
2e681715
KH
145912005-02-17 Kazu Hirata <kazu@cs.umass.edu>
14592
14593 * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
14594
c6d01079
AK
145952005-02-17 Andreas Krebbel <krebbel1@de.ibm.com>
14596
14597 * builtins.c (expand_builtin_return_addr): Remove tem parameter.
2cdc2073 14598 tem becomes a local variable which is set to the value of the
c6d01079 14599 back end defined INITIAL_FRAME_ADDRESS macro.
2cdc2073 14600 (expand_builtin_frame_address): Omit the base parameter to
c6d01079
AK
14601 expand_builtin_return_addr.
14602 (expand_builtin_profile_func): Likewise.
14603 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
14604 (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
14605 * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
14606
7b210806
JJ
146072005-02-17 Jakub Jelinek <jakub@redhat.com>
14608
14609 * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
14610 s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
14611 * config/frv/frv.c (frv_function_epilogue): Likewise.
14612
eae600b9
DB
146132005-02-17 Daniel Berlin <dberlin@dberlin.org>
14614
14615 * lambda-code (perfect_nestify): Remove mark/unmark
14616 for rewriting hack.
14617 * tree-loop-linear.c (linear_transform_loops): Add
14618 rewrite_into_ssa call so that ssa is correct for
14619 rewriting into loop closed.
14620
8bdbfff5
NS
146212005-02-17 Nathan Sidwell <nathan@codesourcery.com>
14622
14623 * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
14624 * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
14625 BITMAP_FREE.
14626 * bt-load.c (btr_def_live_range, combine_btr_defs,
14627 migrate_btr_def, migrate_btr_defs): Likewise.
14628 * cfgcleanup.c (thread_jump): Likewise.
14629 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
14630 * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
14631 df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
14632 df_rd_local_compute, df_reg_info_compute): Likewise.
14633 * dominance.c (init_dom_info, free_dom_info): Likewise.
14634 * flow.c (init_propagate_block_info,
14635 free_propagate_block_info): Likewise.
14636 * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
14637 * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
14638 modify_reg_pav): Likewise.
14639 * loop-invariant.c (find_defs, find_invariant_insn,
14640 find_invariants, free_inv_motion_data): Likewise.
14641 * predict.c (tree_predict_by_opcode,
14642 estimate_bb_frequencies): Likewise.
14643 * stmt.c (expand_case): Likewise.
14644 * tree-cfg.c (tree_duplicate_sese_region): Likewise.
14645 * tree-dfa.c (mark_new_vars_to_rename): Likewise.
14646 * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
14647 * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
14648 get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
14649 rewrite_ssa_into_ssa): Likewise.
14650 * tree-optimize.c (tree_rest_of_compilation): Likewise.
14651 * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
14652 analyze_edges_for_bb, perform_edge_inserts): Likewise.
14653 * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
14654 * tree-sra.c (tree_sra): Likewise.
14655 * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
14656 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
14657 * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
14658 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
14659 * tree-ssa-dse.c (tree_ssa_dse): Likewise.
14660 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
14661 Likewise.
14662 * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
14663 calculate_live_on_entry, calculate_live_on_exit,
14664 build_tree_conflict_graph): Likewise.
14665 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
14666 record_important_candidates, set_use_iv_cost, find_depends,
14667 determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
14668 tree_ssa_iv_optimize_finalize): Likewise.
14669 * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
14670 find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
14671 tree_duplicate_loop_to_header_edge): Likewise.
14672 * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
14673 * tree-ssa.c (verify_flow_insensitive_alias_info,
14674 verify_name_tags, verify_ssa, init_tree_ssa,
14675 delete_tree_ssa): Likewise.
14676 * tree-ssanames.c (marked_ssa_names, init_ssanames,
14677 fini_ssanames): Likewise.
14678 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
14679
3abbb738
RC
146802005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
14681
2cdc2073 14682 * config/rs6000/t-rtems: Completely reworked.
3abbb738 14683
9d182aa5
IR
146842005-02-17 Ira Rosen <irar@il.ibm.com>
14685
2cdc2073 14686 * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
9d182aa5 14687
2427fa80
IR
146882005-02-17 Ira Rosen <irar@il.ibm.com>
14689
14690 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
14691 POINTER_TYPE_P when checking that type is a pointer.
14692 (vect_get_memtag): Remove.
14693 (vect_address_analysis): Use POINTER_TYPE_P. Call
14694 vect_object_analysis with dummy parameter for memtag.
14695 (vect_object_analysis): Extract memtag (functionality that
14696 used to be in vect_get_memtag and moved here). Fix printings.
14697 (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
14698 with correct parameters. Remove call to vect_get_memtag.
14699
f7064d11
DN
147002005-02-17 Dorit Naishlos <dorit@il.ibm.com>
14701
14702 * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
14703 (tree-vectorizer.o): Added missing dependencies.
14704
14705 * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
14706 decleration.
14707 (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
14708 declaration in tree-vectorizer.c, now has an extern declaration in
14709 tree-vectorizer.h).
14710 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2cdc2073
ZW
14711 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
14712 get_vectype_for_scalar_type, vect_is_simple_use,
f7064d11
DN
14713 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
14714 vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
2cdc2073 14715 new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
f7064d11
DN
14716 vectorizable_store, vectorizable_operation, vectorizable_assignment,
14717 vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
14718 find_loop_location): Likewise.
14719
14720 * tree-vectorizer.c (langhooks.h): #include removed.
14721 (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
14722 moved to tree-vectorized.h.
14723 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
14724 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
14725 get_vectype_for_scalar_type, vect_is_simple_use,
14726 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
14727 vect_supportable_dr_alignment, new_loop_vec_info,
14728 destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
14729 vect_set_verbosity_level, find_loop_location): Likewise.
14730
2cdc2073 14731 (vect_analyze_loop): Function externalized. Declaration moved to
f7064d11
DN
14732 tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
14733 (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
14734 (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
14735 vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
14736 vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
14737 vect_enhance_data_refs_alignment, vect_analyze_operations,
14738 exist_non_indexing_operands_for_use_p, vect_mark_relevant,
14739 vect_stmt_relevant_p, vect_get_loop_niters,
14740 vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
14741 vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
14742 vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
14743 vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
14744 vect_get_memtag): Likewise.
14745
2cdc2073 14746 (vectorizable_load): Function externalized. Declaration moved to
f7064d11
DN
14747 tree-vectorized.h. Function definition moved to tree-vect-transform.c.
14748 (vectorizable_store, vectorizable_operation, vectorizable_assignment,
14749 vect_transform_loop): Likewise.
14750 (vect_transform_stmt): Moved to tree-vect-transform.c.
2cdc2073 14751 (vect_align_data_ref, vect_create_destination_var,
f7064d11
DN
14752 vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
14753 vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
14754 vect_get_vec_def_for_operand, vect_init_vector,
14755 vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
14756 vect_build_loop_niters, vect_update_ivs_after_vectorizer,
14757 vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
14758 vect_update_inits_of_drs, vect_do_peeling_for_alignment,
14759 vect_do_peeling_for_loop_bound): Likewise.
2cdc2073 14760
f7064d11
DN
14761 * tree-vect-analyze.c: New file.
14762 * tree-vect-transform.c: New file.
14763
eff9a5d0
JM
147642005-02-17 Jason Merrill <jason@redhat.com>
14765
14766 PR mudflap/19319, c++/19317
14767 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
14768 slot explicit.
14769
beb5f807
GP
147702005-02-17 Gerald Pfeifer <gerald@pfeifer.com>
14771
14772 * doc/install.texi (Specific): Update link for Darwin-specific
14773 tool binary site.
2cdc2073 14774
9ace7f9e
JM
147752005-02-16 James A. Morrison <phython@gcc.gnu.org>
14776
14777 * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
14778 constant_boolean_node.
14779
ee01c339 147802005-02-16 David Edelsohn <edelsohn@gnu.org>
53de343a
DE
14781
14782 PR target/19019
14783 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
14784 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
14785
4f2e0d5e
RH
147862005-02-16 Richard Henderson <rth@redhat.com>
14787
14788 PR 19920
14789 * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
14790 with W_TYPE_SIZE.
14791 (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
14792 replace uses with Wtype_MAXp1_F.
14793 (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
14794 L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
14795 L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
14796 L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
14797 and HAVE_TFMODE as appropriate.
14798 (__fixunssfDI): Provide an implementation that doesn't need DFmode.
14799 (__floatdisf): Likewise.
14800 * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
14801 (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
14802 (Wtype_MAXp1_F): New.
14803 (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
14804 __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
14805
9f7bf991
RE
148062005-02-16 Richard Earnshaw <rearnsha@arm.com>
14807
14808 * PR target/19162
14809 * arm.c (arm_apply_result_size): New function.
14810 * arm.h (APPLY_RESULT_SIZE): Define.
14811 * arm-protos.h (arm_apply_result_size): Add prototype.
14812 * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
14813 (movxf): New expand.
14814 (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
14815 (call_value_symbol): Remove predicate for operand 0.
14816 (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
14817 (untyped_call): Rework to correclty return values for any type.
14818 (untyped_return): New expand.
14819 * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
14820
f0b81cbc
SS
148212005-02-16 Stan Shebs <shebs@apple.com>
14822
14823 * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
14824 * config/rs6000/t-darwin8: New, for 64-bit multilib.
14825
25c62e24
EB
148262005-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
14827
927c8259 14828 * doc/install.texi (sparc-sun-solaris2*): Document required GMP
25c62e24
EB
14829 configure settings on Solaris 7 and later.
14830
3bd09563
DN
148312005-02-16 Diego Novillo <dnovillo@redhat.com>
14832
14833 PR tree-optimization/19865
14834 * tree-optimize.c (init_tree_optimization_passes): Run
14835 pass_may_alias after pass_sra.
14836
847d0c08
RH
148372005-02-16 Richard Henderson <rth@redhat.com>
14838 Stuart Hastings <stuart@apple.com>
14839
14840 PR debug/19521
14841 * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
14842 Do nothing if debug info suppressed for this function.
14843 (dbxout_begin_function): Early exit if debug info suppressed for
14844 this function.
14845
de332a85
KH
148462005-02-16 Kazu Hirata <kazu@cs.umass.edu>
14847
14848 PR target/20007
14849 * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
14850 find_basic_blocks.
14851 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
14852
5fcfe0b2
KH
14853 PR tree-optimization/19967
14854 * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
14855 expand_builtin_strchr, expand_builtin_strrchr): Take a new
14856 argument TYPE. Adjust calls to fold_builtin_XXX.
14857 (expand_builtin, fold_builtin_1): Adjust calls to
14858 expand_builtin_XXX.
14859 (fold_builtin_strchr, fold_builtin_strpbrk,
14860 fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
14861 result to a requested type TYPE.
14862
8940b3b2
JJ
148632005-02-16 Jakub Jelinek <jakub@redhat.com>
14864
14865 PR middle-end/19857
14866 * fold-const.c (fold): Don't optimize (T)(x & cst) to
14867 (T)x & (T)cst if (T)cst overflows.
14868 * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
14869 TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
14870
aa47fcfa
JL
148712005-02-15 Jeff Law <law@redhat.com>
14872
14873 * gcse.c (blocks_with_calls): New bitmap.
14874 (alloc_gcse_mem): Allocate it.
14875 (free_gcse_mem): Free it.
14876 (clear_modifY_mem_tables): Clear it.
14877 (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
14878 when we encounter CALL_INSNs.
14879 (compute_transp, case MEM): Handle blocks with calls separate
14880 from blocks without calls. Use bitmap iterators rather than
14881 FOR_EACH_BB.
14882
489ce9e7
PG
148832005-02-15 Peter O'Gorman <peter@pogma.com>
14884
14885 PR bootstrap/18810
14886 * mklibgcc.in (vis_hide): Use a temporary object file, not
14887 -o /dev/null.
14888
1dd8ce20
AH
148892005-02-15 Andy Hutchinson <HutchinsonAndy@netscape.net>
14890
14891 PR target/19924
14892 * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
14893 access optimization.
14894
6f85d0c4 148952005-02-15 David Edelsohn <edelsohn@gnu.org>
fd9850d5 14896 Alan Modra <amodra@bigpond.net.au>
6f85d0c4
DE
14897
14898 PR target/19019
14899 * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
14900 (_xlqsub): Rename to __gcc_qsub.
14901 (_xlqmul): Rename to __gcc_qmul.
14902 (_xlqdiv): Rename to __gcc_qdiv.
14903 Provide versioned symbol aliases with old names.
14904 * config/rs6000/libgcc-ppc64.ver: Rename symbols.
14905 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
14906 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
14907 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
14908 * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
14909
40f84775
JM
149102005-02-15 James A. Morrison <phython@gcc.gnu.org>
14911
14912 * fold-const.c (fold): Fold -(~A) to A + 1. Fold ~(-A) to A - 1.
14913 Fold ~(A - 1) and ~(A + -1) to -A.
14914
14be52a2
JM
149152005-02-15 James A. Morrison <phython@gcc.gnu.org>
14916
14917 PR pch/14940
14918 PR target/19300
14919 * config/host-linux.c (linux_gt_pch_use_address): Copy from
14920 config/pa/pa-host.c:pa_gt_pch_use_address.
14921
eace8c18
DB
149222005-02-15 Daniel Berlin <dberlin@dberlin.org>
14923
14924 * tree-vn.c (get_value_handle): Make sure that given an
14925 is_gimple_min_invariant expression, we always return it.
14926
83cc36c8
KH
149272005-02-15 Kazu Hirata <kazu@cs.umass.edu>
14928
14929 * passes.c (rest_of_handle_gcse): Fix a comment.
14930
9a6cf911
JL
149312005-02-15 Jeff Law <law@redhat.com>
14932
14933 * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
14934 bitmap.
14935 (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
14936 (canon_list_insert, record_last_mem_set_info): Similarly.
14937 (clear_modify_mem_tables): Similarly.
14938
6a6305e4
KH
149392005-02-15 Kazu Hirata <kazu@cs.umass.edu>
14940
14941 * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
14942 tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
14943 config/mips/mips.md, config/rs6000/aix.h,
14944 config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
14945
934677f9
RH
149462005-02-15 Richard Henderson <rth@redhat.com>
14947
2cdc2073 14948 * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
934677f9
RH
14949 call to be best_edge.
14950
2e09ee33
KH
149512005-02-14 Kazu Hirata <kazu@cs.umass.edu>
14952
14953 * basic-block.h: Adjust the prototype for find_basic_blocks.
14954 * cfgbuild.c (find_basic_blocks): Remove unused arguments.
14955 * passes.c (rest_of_handle_loop_optimize): Adjust the call to
14956 find_basic_blocks.
14957
e22857eb
KH
14958 * flow.c (recompute_reg_usage): Remove all arguments.
14959 * passes.c (rest_of_compilation): Adjust the call to
14960 recompute_reg_usage.
14961 * rtl.h: Adjust the prototype for recompute_reg_usage.
14962
f46fe224 149632005-02-14 Daniel Berlin <dberlin@dberlin.org>
2cdc2073 14964
f46fe224
DB
14965 * tree-dump.c (dump_files): Update to reflect new member
14966 of dump_file_info.
14967 (dump_register): Add new argument.
14968 Set glob name.
14969 (dump_switch_p_1): Check against glob name if doglob was passed.
14970 (dump_switch_p): Check against regular first, then glob if
14971 we didn't have any hits on the dump name.
14972 * tree-optimize.c (register_one_dump_file):
14973 Pass in glob name as well.
14974 * tree-pass.h (struct dump_file_info): Add glob
14975 member.
14976
90689ae1
JM
149772005-02-14 Joseph S. Myers <joseph@codesourcery.com>
14978
14979 PR preprocessor/16323
14980 * doc/invoke.texi: Document that -Wendif-labels is on by default.
14981
8cb320b8
DE
149822005-02-14 David Edelsohn <edelsohn@gnu.org>
14983
14984 PR target/19019
2fe433c2 14985 * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
8cb320b8 14986 (trunctfdf2_internal1): New.
2fe433c2 14987 (trunctfdf2_internal2): Renamed from trunctfdf2.
8cb320b8 14988
9a06c1cb
DN
149892005-02-14 Diego Novillo <dnovillo@redhat.com>
14990
14991 PR tree-optimization/19853
14992 * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
14993
0c86d709
KH
149942005-02-14 Kazu Hirata <kazu@cs.umass.edu>
14995
14996 * passes.c (rest_of_handle_loop_optimize): Remove calls to
14997 delete_dead_jumptables and cleanup_cfg.
14998
e88d55cd
UW
149992005-02-14 Ulrich Weigand <uweigand@de.ibm.com>
15000
15001 * reload.c (find_reloads): Swap address_reloaded flags when
15002 swapping commutative operands.
15003
92d2b330 150042005-02-14 Sebastian Pop <pop@cri.ensmp.fr>
9a06c1cb 15005
92d2b330
SP
15006 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
15007 Use standard_iv_increment_position for computing the bsi position
15008 for create_iv.
15009 * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
15010 the bsi position.
15011
af9ecd0c
ZD
150122005-02-13 Zdenek Dvorak <dvorakz@suse.cz>
15013
15014 PR target/17428
9a06c1cb
DN
15015 * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
15016 life range of hard registers.
15017 * value-prof.c (insn_prefetch_values_to_profile): Only
15018 scan normal insns.
af9ecd0c
ZD
15019
15020 * value-prof.c (rtl_find_values_to_profile): Do not look for values to
15021 profile in libcalls.
15022
90bb1c1f
NS
150232005-02-13 Nathan Sidwell <nathan@codesourcery.com>
15024
15025 * bitmap.h (bitmap_and_compl_into): Return bool.
15026 * bitmap.c (bitmap_and_compl_into): Return changed flag.
15027
623049aa
JM
150282005-02-13 James A. Morrison <phython@gcc.gnu.org>
15029
15030 PR tree-optimization/19944
15031 * fold-const.c (fold): Re-add ABS_EXPR folding.
15032
de17c25f
DE
150332005-02-13 David Edelsohn <edelsohn@gnu.org>
15034
15035 PR target/19019
15036 * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
15037 {TARGET,MASK}_XL_COMPAT.
15038 (SUBTARGET_SWITCHES): Rename xl-call to xl-compat. Use
15039 MASK_XL_COMPAT.
15040 * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
15041 * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
15042 TARGET_XL_COMPAT.
15043 (rs6000_arg_partial_bytes): Same.
15044 (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
15045 and XL compatibility enabled.
15046 * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
15047 * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
15048 test to final condition.
15049 (cmptf_internal2): New.
15050 * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
15051 xl-compat. Add TFmode information to description.
15052
e04369ac
KH
150532005-02-13 Kazu Hirata <kazu@cs.umass.edu>
15054
15055 * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
15056
38116e3d
JM
150572005-02-13 Jason Merrill <jason@redhat.com>
15058
38116e3d
JM
15059 PR c++/16405
15060 * fold-const.c (fold_indirect_ref_1): Split out from...
15061 (build_fold_indirect_ref): Here.
15062 (fold_indirect_ref): New fn.
15063 * tree.h: Declare it.
15064 * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
15065 (gimplify_modify_expr_rhs): Likewise.
15066 (gimplify_expr): Likewise.
15067
60a8fb5e
JM
150682005-02-13 James A. Morrison <phython@gcc.gnu.org>
15069
15070 PR tree-optimization/14303
15071 PR tree-optimization/15784
15072 * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
15073 Fold ABS_EXPR<x> < 0 to false. Fold ABS_EXPR<x> == 0 to x == 0 and
15074 ABS_EXPR<x> != 0 to x != 0.
15075
647eea9d
KH
150762005-02-12 Kazu Hirata <kazu@cs.umass.edu>
15077
15078 * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
15079 simplify-rtx.c, tree-ssa-live.h: Fix comment typos. Follow
15080 spelling conventions.
15081
6f9087d7
KH
15082 * passes.c (rest_of_handle_gcse): Don't run cse_main and
15083 delete_trivially_dead_insns too many times.
15084
ea24f64b
KH
15085 * passes.c (rest_of_handle_gcse): Remove dead assignments to
15086 tem and tem2.
15087
8ad833ac
IR
150882005-02-12 Ira Rosen <irar@il.ibm.com>
15089
15090 * tree-vectorizer.c (vect_get_base_and_offset): Remove.
15091 (vect_is_simple_iv_evolution): Remove redundant parameter
15092 and step check.
15093 (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
15094 without last parameter.
15095 (vect_analyze_pointer_ref_access): Get access_fn as parameter.
15096 Return pointer step. Call vect_is_simple_iv_evolution without
15097 last parameter. Check only that the step is multiple of size
15098 type. Remove stmt_vinfo updates.
15099 (vect_get_memtag_and_dr): Remove.
15100 (vect_get_memtag): New function.
15101 (vect_address_analysis): New function.
15102 (vect_object_analysis): New function.
15103 (vect_analyze_data_refs): Call vect_object_analysis and
15104 vect_get_memtag. Update stmt_vinfo fields.
15105
e3a8a4ed
IR
151062005-02-12 Ira Rosen <irar@il.ibm.com>
15107
15108 * tree-data-ref.c (array_base_name_differ_p): Check that the bases
15109 exist and are objects. Remove checks for pointer.
15110 * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
15111 STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
15112 (vect_create_data_ref_ptr): Likewise.
15113 (vect_base_addr_differ_p): New function.
15114 (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
15115 (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
15116 Don't set the DR_BASE_NAME field of data-ref.
15117 (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
15118
c94a75af
UB
151192005-02-12 Uros Bizjak <uros@kss-loka.si>
15120
15121 * optabs.h (enum optab_index): Add new OTI_ldexp.
15122 (ldexp_optab): Define corresponding macro.
15123 * optabs.c (init_optabs): Initialize ldexp_optab.
15124 * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
15125 patterns.
15126 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
15127 using ldexp_optab.
15128 (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
15129 expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
15130
15131 * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
15132 to implement ldexpf, ldexp and ldexpl built-ins as inline x87
15133 intrinsics.
15134
e3a8a4ed 151352005-02-12 Ira Rosen <irar@il.ibm.com>
a5ae3ad6
IR
15136
15137 * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
15138 to base_address.
15139 * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
15140 stmt_vec_info.
15141 (vect_get_base_and_offset): Always return an address.
15142 (vect_create_addr_base_for_vector_ref): Remove treatment for
15143 different data reference types.
15144 (vect_compute_data_ref_alignment): Rename base to base_address in
15145 stmt_vec_info. Get the object in order to force its alignment.
15146 (vect_get_memtag_and_dr): Rename base to base_address in
15147 stmt_vec_info. Extract the object for memtag analysis.
15148
f4ddaddd
HPN
151492005-02-12 Hans-Peter Nilsson <hp@axis.com>
15150
15151 PR regression/19898.
15152 * config/cris/cris.c (cris_notice_update_cc): When testing if insn
15153 changes cc_status, use apply modified_in_p to part of cc_status
15154 and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
15155 body.
15156
7e7e470f
RH
151572005-02-11 Richard Henderson <rth@redhat.com>
15158
15159 * tree-complex.c (expand_complex_libcall): New.
15160 (expand_complex_multiplication): Use it for c99 compliance.
15161 (expand_complex_division): Likewise.
15162 * fold-const.c (fold_complex_add, fold_complex_mult): New.
15163 (fold): Call them.
15164 * builtins.c (built_in_names): Remove const.
15165 * tree.c (build_common_builtin_nodes): Build complex arithmetic
15166 builtins.
15167 * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
15168 (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
15169 (built_in_names): Remove const.
15170 * c-common.c (c_common_type_for_mode): Handle complex modes.
15171 * flags.h, toplev.c (flag_complex_method): Rename from
15172 flag_complex_divide_method.
15173 * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
15174 __mulsc3, __muldc3, __mulxc3, __multc3): New.
15175 * libgcc2.h: Declare them.
a310245f 15176 * libgcc-std.ver: Export them.
7e7e470f
RH
15177 * mklibgcc.in (lib2funcs): Build them.
15178
c33bae88
SB
151792005-02-11 Steven Bosscher <stevenb@suse.de>
15180
15181 PR tree-optimization/19876
15182 Partially revert my change from 2005-01-14
15183 * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
15184 (compute_antic): ...and remove the loop here.
15185
28f8ecf9
JJ
151862005-02-11 Jakub Jelinek <jakub@redhat.com>
15187
97e9692b
JJ
15188 PR middle-end/19858
15189 * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
15190 is number of inner's bits, avoid creating a BIT_FIELD_REF.
15191
28f8ecf9
JJ
15192 * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
15193 crtend.o if -pie. Use %{x:a;:b} spec syntax.
15194
d04b77ac
DJ
151952005-02-11 Daniel Jacobowitz <dan@codesourcery.com>
15196
15197 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
15198 offsets for the big-endian 32-bit case.
15199
70406574
JM
152002005-02-11 Joseph S. Myers <joseph@codesourcery.com>
15201
15202 * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
15203
7e42db17
DJ
152042005-02-11 Dale Johannesen <dalej@apple.com>
15205
15206 * cselib.c (cselib_process_insn): Clear out regs where
15207 HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
15208 * reload.c (find_equiv_reg): Ditto.
15209
f6254da4
ILT
152102005-02-11 Ian Lance Taylor <ian@airs.com>
15211
c5d97f6e
ILT
15212 * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
15213 with no elements.
15214
f6254da4
ILT
15215 * tree.c (build_function_type_list): Work correctly if there are
15216 no arguments.
15217
f4f41b4e
UW
152182005-02-11 Ulrich Weigand <uweigand@de.ibm.com>
15219
15220 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
15221 "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
15222 ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
15223 TARGET_ZARCH instead of TARGET_64BIT.
15224
f203217e
RC
152252005-02-11 Ralf Corsepius <ralf.corsepius@rtems.org>
15226
15227 * config/rs6000/t-rtems:
15228 (MULTILIB_OPTIONS): Remove mcpu=602.
15229 (MUTLILIB_DIRNAMES): Remove m602.
2cdc2073 15230 (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
f203217e
RC
15231 Let mcpu=602 match mcpu=603.
15232 (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
15233
9dcab61e
JDA
152342005-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15235
15236 * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
15237 signal trampolines.
15238
70ad1f9f
DD
152392005-02-10 David Daney <ddaney@avtrex.com>
15240
15241 * config/alpha/linux-unwind.h: Add exception clause to copyright.
15242 * config/i386/linux-unwind.h: Likewise.
15243 * config/ia64/linux-unwind.h: Likewise.
15244 * config/mips/linux-unwind.h: Likewise.
15245 * config/pa/linux-unwind.h: Likewise.
15246 * config/rs6000/linux-unwind.h: Likewise.
15247 * config/s390/linux-unwind.h: Likewise.
15248 * config/sh/linux-unwind.h: Likewise.
15249 * config/sparc/linux-unwind.h: Likewise.
15250
3b6616dd
SB
152512005-02-10 Steven Bosscher <stevenb@suse.de>
15252
15253 PR tree-optimization/17549
15254 * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
15255 TER to replace a DEF with its expression if the DEF and the
15256 rhs of the expression we replace into have the same root
15257 variable.
15258
a0c5992a
RS
152592005-02-10 Richard Sandiford <rsandifo@redhat.com>
15260
15261 * config/mips/mips.md: Fix the placement of the match_scratch in the
15262 lea64 peephole2.
15263
0388d40a
KH
152642005-02-10 Kazu Hirata <kazu@cs.umass.edu>
15265
15266 * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
15267 Fix comment typos.
15268
f5e2738c
ZD
152692005-02-10 Zdenek Dvorak <dvorakz@suse.cz>
15270
15271 * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
15272 (strip_offset): Handle addresses.
15273 (add_address_candidates): Use strip_offset.
15274 (difference_cost): Reflect strip_offset change.
15275 (force_var_cost, difference_cost): Strip nops.
15276
33d6a74c
KH
152772005-02-10 Kazu Hirata <kazu@cs.umass.edu>
15278
15279 * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
15280
c486021d
KH
15281 * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
15282 tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
15283 config/cris/cris-protos.h, config/cris/cris.c: Update
15284 copyright.
15285
8d6f7195
JL
152862005-02-10 Jeff Law <law@redhat.com>
15287
15288 * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
15289 (lookup_avail_expr): Similarly.
15290
ba78d452
RG
152912005-02-10 Richard Guenther <rguenth@gcc.gnu.org>
15292
15293 * builtins.c (fold_builtin_powi): New function.
15294 (fold_builtin_1): Call it.
15295
0d3e9f35
SB
152962005-02-10 Steven Bosscher <stevenb@suse.de>
15297
15298 PR documentation/19309
15299 * doc/cpp.texi: The __GNUC__ and related predefined macros
15300 are also defined for the "standalone" cpp.
15301 Some non-GCC compilers may also define __GNUC__.
15302
ccf7f880
JJ
153032005-02-10 Jakub Jelinek <jakub@redhat.com>
15304
15305 PR c/19342
15306 * c-typeck.c (common_type): New routine. Old common_type renamed
15307 to...
15308 (c_common_type): ...this.
15309 (build_conditional_expr, build_binary_op): Use c_common_type instead
15310 of common_type.
15311
b49900cc
SB
153122005-02-10 Steven Bosscher <stevenb@suse.de>
15313
15314 * doc/md.texi: Replace @samp{length} with @code{length}.
15315
ca4c3169
ZD
153162005-02-09 Zdenek Dvorak <dvorakz@suse.cz>
15317
15318 PR tree-optimization/18687
15319 * tree-flow.h (find_loop_niter): Declare.
15320 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
15321 Try using scev even for loops with more than one exit.
15322 * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
15323 (struct ivopts_data): Added niters field.
15324 (struct nfe_cache_elt): New.
15325 (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
15326 functions.
15327 (tree_ssa_iv_optimize_init): Initialize niters cache.
15328 (determine_number_of_iterations): Removed.
15329 (find_induction_variables): Do not call determine_number_of_iterations.
15330 Access niters for single exit through niter_for_single_dom_exit.
15331 (add_iv_outer_candidates): Access niters for single exit through
15332 niter_for_single_dom_exit.
15333 (may_eliminate_iv): Take data argument. Use niter_for_exit. Do not use
15334 number_of_iterations_cond.
15335 (iv_period): New function.
15336 (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
15337 (may_replace_final_value): Take data argument. Use
15338 niter_for_single_dom_exit.
15339 (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
15340 (rewrite_use_compare): Pass data to may_eliminate_iv.
15341 (rewrite_use_outer): Pass data to may_replace_final_value.
15342 (free_loop_data): Clean up the niters cache.
15343 (tree_ssa_iv_optimize_finalize): Free the niters cache.
15344 (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
15345 * tree-ssa-loop-niter.c (find_loop_niter): New function.
15346 (find_loop_niter_by_eval): Use tree_int_cst_lt.
15347 (num_ending_zeros): Moved to tree.c.
15348 * tree.h (num_ending_zeros): Declare.
15349 * tree.c (num_ending_zeros): Moved from tree.c.
15350
c6a912da
RH
153512005-02-09 Richard Henderson <rth@redhat.com>
15352
15353 * builtins.c (DEF_BUILTIN): Add COND argument.
15354 * tree.h (DEF_BUILTIN): Likewise.
15355 * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
15356 DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
15357 match.
15358 (DEF_BUILTIN_STUB): New.
15359 (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
15360 BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
15361 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
15362 * c-common.c (DEF_BUILTIN): Add COND argument.
15363 * tree.c (local_define_builtin): New.
15364 (build_common_builtin_nodes): New.
15365
e3bb43c0
RS
153662005-02-09 Roger Sayle <roger@eyesopen.com>
15367
15368 * fold-const.c (fold_strip_sign_ops): New function to simplify a
15369 floating point expression ignoring the sign of the result.
15370 (fold) <ABS_EXPR>: Use it to simplify fabs(x).
15371 (fold) <MULT_EXPR>: Use it to simplify x*x.
15372 * tree.h (fold_strip_sign_ops): Prototype here.
15373 * builtins.c (fold_builtin_copysign): Take an additional FNDECL
15374 argument. Use fold_strip_sign_ops to simplify the first argument.
15375 (fold_builtin_pow): Use fold_strip_sign_ops to simplify the
15376 first argument when the second argument is an even integer
15377 constant, but only with -funsafe_math_optimizations.
15378 (fold_builtin_1): Update call to fold_builtin_copysign.
15379
5eefcf2f
ILT
153802005-02-09 Ian Lance Taylor <ian@airs.com>
15381
15382 PR middle-end/19583
15383 * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
15384 just check whether EH_FILTER_FAILURE falls through.
15385
dab80c81
AK
153862005-02-09 Andreas Krebbel <krebbel1@de.ibm.com>
15387
15388 * gcc/haifa-sched.c (schedule_block): Make queued sched group
15389 insns return to ready list in the next turn.
15390
17684d46
RG
153912005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
15392
15393 PR middle-end/19402
15394 * builtins.def: New __builtin_powi[lf].
15395 * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
15396 (expand_builtin_powi): New function.
15397 (expand_builtin): Dispatch to expand_builtin_powi.
15398 * libgcc2.h: Add prototypes for __builtin_powi[lf].
15399 * libgcc2.c: Add __builtin_powi[lf] implementation.
15400 * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
15401 * optabs.h: Add powi_optab.
15402 * optabs.c (init_optabs): Initialize powi_optab.
15403 * doc/extend.texi: Document __builtin_powi[lf].
15404
8ca3515f
DN
154052005-02-09 Dorit Naishlos <dorit@il.ibm.com>
15406
2cdc2073 15407 * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
8ca3515f
DN
15408 exists.
15409
0c6c135b
RG
154102005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
15411
15412 PR middle-end/19854
15413 * fold-const.c (try_move_mult_to_index): Remove redundant
15414 type argument. Create ADDR_EXPR with correct type.
15415 (fold): Update callers of try_move_mult_to_index. Convert
15416 result to the appropriate type.
15417
8f2bf9f1
RS
154182005-02-09 Roger Sayle <roger@eyesopen.com>
15419
15420 PR target/19597
15421 * config/avr/avr.c (default_rtx_costs): Delete.
15422 (avr_operand_rtx_cost): New function.
15423 (avr_rtx_costs): Completely rewrite.
15424
453bd0f5
HPN
154252005-02-08 Hans-Peter Nilsson <hp@axis.com>
15426
15427 PR target/19806
15428 * config/cris/cris.c (in_code): New variable.
15429 (cris_output_addr_const): Now a static function, a wrapper for
15430 output_addr_const.
15431 (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
15432 case from old cris_output_addr_const.
15433 (cris_asm_output_label_ref): Similar for LABEL_REF.
15434 (cris_output_addr_const_extra): Similar for UNSPEC.
15435 * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
15436 (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
15437 * config/cris/cris-protos.h (cris_output_addr_const): Remove
15438 declaration.
15439 (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
15440 (cris_asm_output_label_ref): Declare.
15441
749c6ef9
PB
154422005-02-08 Paolo Bonzini <bonzini@gnu.org>
15443
15444 PR preprocessor/19801
15445 * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
15446 filenames that changed when libcpp was moved to the toplevel.
15447
f8eacd97
RS
154482005-02-07 Roger Sayle <roger@eyesopen.com>
15449
15450 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
15451 zero extensions of BImode operands. Call lowpart_subreg instead
15452 of gen_lowpart_common and gen_lowpart_SUBREG.
15453
1e3fad21
NN
154542005-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
15455
15456 PR ada/19489
15457 * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
15458 * configure.ac: Set cc_for_cross_gnattools.
15459 * configure: Regenerate.
15460
b0ad2de2
AM
154612005-02-08 Alan Modra <amodra@bigpond.net.au>
15462
15463 PR target/19803
15464 * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
15465
b950a32e
EB
154662005-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
15467
15468 PR debug/19327
15469 * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
15470 of nested functions.
15471
6871294a
JW
154722005-02-07 Jonathan Wakely <redi@gcc.gnu.org>
15473
15474 * doc/extend.texi: Document deprecated extensions allowing
15475 static floating-point members to have initializers and allowing
15476 floating-point literals in integral constant expressions.
15477
17385e0d
KH
154782005-02-07 Kazu Hirata <kazu@cs.umass.edu>
15479
15480 * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
15481 config/darwin7.h, config/mips/mips.c,
15482 config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
15483 Update copyright.
15484
459281be
KH
15485 * cse.c: Update comments.
15486
6a96f5c1
RG
154872005-02-07 Richard Guenther <rguenth@gcc.gnu.org>
15488
15489 PR middle-end/19775
15490 * builtins.c (fold_builtin_sqrt): Transform
15491 sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
15492 pow(x,y*0.5).
15493
c866976a
LB
154942005-02-07 Leehod Baruch <leehod@il.ibm.com>
15495 Dorit Naishlos <dorit@il.ibm.com>
15496
15497 * doc/invoke.texi (ftree-vectorizer-verbose): New.
15498 * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
15499 * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
15500 was added.
15501 * tree.h (vect_set_verbosity_level): New extern function declaration
15502 added.
15503 * tree-vectorizer.h (verbosity_levels): New enum type.
15504 * tree-vectorizer.c (vect_debug_stats): Function removed.
15505 (vect_debug_details): Likewise.
15506 (vect_verbosity_level): Global variable was defined and initialized.
15507 (vect_dump): Global variable definition.
15508 (vect_print_dump_info): New function.
15509 (vect_set_dump_settings): New function.
15510 (vect_set_verbosity_level): New function.
15511 (vectorize_loops): Add call to vect_set_dump_settings.
15512
15513 (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
15514 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
15515 (slpeel_tree_peel_loop_to_edge): Likewise.
15516
15517 (vect_analyze_offset_expr): Call to vect_print_dump_info with
2cdc2073
ZW
15518 appropriate verbosity level instead of call to vect_debug_details
15519 or vect_debug_stats.
c866976a
LB
15520 (vect_get_base_and_offset):
15521 (vect_create_addr_base_for_vector_ref):
15522 (get_vectype_for_scalar_type):
15523 (vect_create_data_ref_ptr):
15524 (vect_init_vector):
15525 (vect_get_vec_def_for_operand):
15526 (vect_finish_stmt_generation):
15527 (vectorizable_assignment):
15528 (vectorizable_operation):
15529 (vectorizable_store):
15530 (vectorizable_load):
15531 (vect_transform_stmt):
15532 (vect_update_ivs_after_vectorizer):
15533 (vect_do_peeling_for_loop_bound):
15534 (vect_update_inits_of_drs):
15535 (vect_do_peeling_for_alignment):
15536 (vect_transform_loop):
15537 (vect_is_simple_use):
15538 (vect_analyze_operations):
15539 (vect_is_simple_iv_evolution):
15540 (vect_analyze_scalar_cycles):
15541 (vect_analyze_data_ref_dependence):
15542 (vect_analyze_data_ref_dependences):
15543 (vect_compute_data_ref_alignment):
15544 (vect_enhance_data_refs_alignment):
15545 (vect_analyze_data_refs_alignment):
15546 (vect_analyze_data_ref_access):
15547 (vect_analyze_data_ref_accesses):
15548 (vect_analyze_pointer_ref_access):
15549 (vect_get_memtag_and_dr):
15550 (vect_analyze_data_refs):
15551 (vect_mark_relevant):
15552 (vect_stmt_relevant_p):
15553 (vect_mark_stmts_to_be_vectorized):
15554 (vect_can_advance_ivs_p):
15555 (vect_get_loop_niters):
15556 (vect_analyze_loop_form):
15557 (vect_analyze_loop):
15558 (vectorize_loops): Likewise.
15559
15560 (vect_do_peeling_for_loop_bound): Dump format slightly changed.
15561 (vect_update_inits_of_drs):
15562 (vect_do_peeling_for_alignment):
15563 (vect_transform_loop):
15564 (vect_analyze_operations):
15565 (vect_analyze_scalar_cycles):
15566 (vect_analyze_data_ref_dependences):
15567 (vect_analyze_data_refs_alignment):
15568 (vect_analyze_data_ref_accesses):
15569 (vect_analyze_data_refs):
15570 (vect_mark_stmts_to_be_vectorized):
15571 (vect_get_loop_niters):
15572 (vect_analyze_loop_form):
2cdc2073 15573 (vect_analyze_loop): Likewise.
c866976a
LB
15574 (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
15575
88ab13d6
RS
155762005-02-07 Richard Sandiford <rsandifo@redhat.com>
15577
15578 PR bootstrap/19796
15579 Revert:
15580 2005-01-26 Richard Sandiford <rsandifo@redhat.com>
15581 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
15582 either -ffast-math or -funsafe-math-optimizations is in use.
15583
15584 2005-01-24 Richard Sandiford <rsandifo@redhat.com>
15585 * config/mips/irix-csr.c: New file.
15586 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
15587 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
15588 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
15589 executables.
15590
a701780f
AO
155912005-02-07 Alexandre Oliva <aoliva@redhat.com>
15592
dcb15c6c
AO
15593 * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
15594 redundant, incorrect definitions.
15595
a701780f
AO
15596 * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
15597 expand.
15598 ("*tls_indirect_call"): New, reference hard regs directly.
15599 * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
15600
888b0310
RC
156012005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
15602
2cdc2073 15603 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
888b0310
RC
15604 Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
15605
b1a22407
RS
156062005-02-06 Roger Sayle <roger@eyesopen.com>
15607
15608 PR rtl-optimization/19800
7f5c93ac 15609 * simplify_rtx.c (simplify_relational_operation_1): Explicitly
b1a22407
RS
15610 call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
15611 gen_lowpart.
15612
149056b0
RC
156132005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
15614
15615 * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
15616
3e8cb558
JM
156172005-02-07 Joseph S. Myers <joseph@codesourcery.com>
15618
15619 PR other/17135
15620 * doc/invoke.texi: Correct documentation of -freorder-functions.
15621
ee86feaf
JM
156222005-02-06 Joseph S. Myers <joseph@codesourcery.com>
15623
15624 PR other/14402
15625 * doc/invoke.texi: Don't mention gccbug.
15626
1419a885
RS
156272005-02-06 Roger Sayle <roger@eyesopen.com>
15628 Andrew Pinski <pinskia@physics.uc.edu>
15629 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
15630
15631 * simplify-rtx.c (simplify_relational_operation_1): Simplify
15632 (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
15633 into just (zero_extract:SI FOO (const_int 1) BAR).
15634
706bb773
JM
156352005-02-06 Joseph S. Myers <joseph@codesourcery.com>
15636
15637 * doc/cpp.texi: Include gcc-common.texi. Don't define gcctabopt
15638 macro locally. Don't give last revision date. Use GCC version
15639 number from gcc-common.texi.
15640 * doc/cppinternals.texi: Include gcc-common.texi. Don't give last
15641 revision date. Use GCC version number from gcc-common.texi.
15642 Describe being a library as current state rather than as 3.x
15643 history.
15644 * doc/gcc.texi: Remove last update date.
15645 * doc/gccint.texi: Likewise. Update copyright dates.
15646 * doc/install.texi: Update copyright dates.
15647
69cdf050
JM
156482005-02-06 Joseph S. Myers <joseph@codesourcery.com>
15649
15650 PR other/7549
15651 * doc/invoke.texi: Mention for each option included in -Wall that
15652 it is included in -Wall.
15653 * doc/gcc.texi: Update copyright and last modification date.
15654
3520b745
ZD
156552005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
15656
15657 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
15658 unnecessary cast to original induction variable increments.
15659
b0a168b6
ZD
156602005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
15661
15662 PR tree-optimization/18219
15663 * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
15664 in distributed form.
15665
2c58f7dd
RS
156662005-02-06 Richard Sandiford <rsandifo@redhat.com>
15667
15668 * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
15669 Set bitpos and offset later in the function. Do nothing if the
15670 target is a register and if the bitfield lies completely outside
15671 that register.
15672 (extract_bit_field): Make the same SUBREG, bitpos and offset changes
15673 here. Return an uninitialised register if the source value is stored
15674 in a register and the bitfield lies completely outside that register.
15675
55c4ae3f
SB
156762005-02-06 Steven Bosscher <stevenb@suse.de>
15677
15678 * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
15679 not SET_DEST.
15680
cbd13f8a
MD
156812005-02-06 Marcin Dalecki <martin@dalecki.de>
15682
15683 * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
15684
f1b4c8d8
GK
156852005-02-06 Geoffrey Keating <geoffk@apple.com>
15686
15687 * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
15688 * config/darwin8.h: New.
15689 * config/darwin7.h: Update comment.
15690
773af5d0
LB
156912005-02-03 Leehod Baruch <leehod@il.ibm.com>
15692 Dorit Naishlos <dorit@il.ibm.com>
15693
15694 * tree-vectorizer.h (LOC): New type.
15695 (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
15696 (loop_line_number): New field in struct _loop_vec_info.
15697 (LOOP_VINFO_LOC, LOOP_LOC): New macros.
15698
15699 * tree-vectorizer.c (input.h): Included.
15700 (find_loop_location): New function.
15701 (vect_debug_stats): Argument changed from loop to LOC. Computation of
15702 loop line number removed.
15703 (vect_debug_details): Likewise.
15704 (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
15705
15706 (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
15707 call to vect_debug_details/stats changed from loop to loop_loc.
15708 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
15709 (slpeel_tree_peel_loop_to_edge): Likewise.
15710
15711 (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
15712 changed from NULL to UNKNOWN_LOC.
15713 (vect_get_base_and_offset):
15714 (vect_create_addr_base_for_vector_ref):
15715 (get_vectype_for_scalar_type):
15716 (vect_create_data_ref_ptr):
15717 (vect_init_vector):
15718 (vect_get_vec_def_for_operand):
15719 (vect_finish_stmt_generation):
15720 (vectorizable_assignment):
15721 (vectorizable_operation):
15722 (vectorizable_store):
15723 (vectorizable_load):
15724 (vect_transform_stmt):
15725 (vect_update_ivs_after_vectorizer):
15726 (vect_do_peeling_for_loop_bound):
15727 (vect_do_peeling_for_alignment):
15728 (vect_transform_loop):
15729 (vect_is_simple_use):
15730 (vect_analyze_operations):
15731 (vect_is_simple_iv_evolution):
15732 (vect_analyze_scalar_cycles):
15733 (vect_analyze_data_ref_dependences):
15734 (vect_compute_data_ref_alignment):
15735 (vect_enhance_data_refs_alignment):
15736 (vect_analyze_data_ref_access):
15737 (vect_analyze_data_ref_accesses):
15738 (vect_analyze_pointer_ref_access):
15739 (vect_get_memtag_and_dr):
15740 (vect_analyze_data_refs):
15741 (vect_mark_relevant):
15742 (vect_stmt_relevant_p):
15743 (vect_mark_stmts_to_be_vectorized):
15744 (vect_can_advance_ivs_p):
15745 (vect_get_loop_niters):
15746 (vect_analyze_loop):
15747 (vectorize_loops): Likewise.
15748
15749 (vectorizable_load): Argument in call to vect_debug_details/stats
15750 changed from loop to LOOP_LOC (loop_vinfo).
15751 (vect_transform_loop):
15752 (vect_analyze_operations):
15753 (vect_analyze_scalar_cycles):
15754 (vect_analyze_data_ref_dependence):
15755 (vect_enhance_data_refs_alignment):
15756 (vect_analyze_data_ref_accesses):
15757 (vect_analyze_pointer_ref_access):
15758 (vect_analyze_data_refs):
15759 (vect_analyze_loop): Likewise.
15760
15761 (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
15762 changed from loop to loop_loc.
15763
2cdc2073 15764 (vect_enhance_data_refs_alignment): Removed unused variable loop.
773af5d0 15765
ef302293
LB
157662005-02-03 Leehod Baruch <leehod@il.ibm.com>
15767 Dorit Naishlos <dorit@il.ibm.com>
15768
15769 * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
15770 declaration added.
15771 (vect_analyze_data_ref_dependences): Likewise.
15772
15773 (vect_is_simple_use): Argument changed from loop structure to
15774 loop_vect_info structure.
15775 (vect_can_advance_ivs_p): Likewise.
15776 (vect_create_index_for_vector_ref): Likewise.
15777 (vect_update_ivs_after_vectorizer): Likewise.
15778 (new_stmt_vec_info): Likewise.
2cdc2073 15779
ef302293
LB
15780 (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
15781 changed from loop to loop_vinfo.
15782 (vect_create_data_ref_ptr): First argument in call to
15783 vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
15784 (vectorizable_assignment): Second argument in call to vect_is_simple_use
15785 was changed from loop to loop_vinfo.
15786 (vectorizable_operation): Likewise.
15787 (vectorizable_store): Likewise.
15788 (vect_mark_stmts_to_be_vectorized): Likewise.
15789 (vect_do_peeling_for_loop_bound): First argument in call to
15790 vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
15791 (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
15792 was changed from loop to loop_vinfo.
15793 (vect_analyze_data_ref_dependences): Third argument in call to
15794 vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2cdc2073 15795
ef302293
LB
15796 (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
15797 (vect_create_data_ref_ptr): Likewise.
15798 (vect_init_vector): Likewise.
15799 (vect_get_vec_def_for_operand): Likewise.
15800 (vectorizable_assignment): Likewise.
15801 (vectorizable_operation): Likewise.
15802 (vectorizable_store): Likewise.
15803 (vectorizable_load): Likewise.
15804 (vect_update_ivs_after_vectorizer): Likewise.
15805 (vect_is_simple_use): Likewise.
15806 (vect_analyze_data_ref_dependence): Likewise.
15807 (vect_analyze_pointer_ref_access): Likewise.
15808 (vect_can_advance_ivs_p): Likewise.
15809
15810 * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
15811 before _stmt_vec_info.
15812 (_stmt_vec_info): Loop field replaced by loop_vec_info.
15813 (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
15814 (new_stmt_vec_info): Argument changed from loop structure to
15815 loop_vect_info structure
15816
15817 (vect_analyze_data_ref_dependences): Unnecessary line was removed.
15818 (vect_analyze_offset_expr): Avoid 80 columns overflow.
15819 (vect_create_addr_base_for_vector_ref): Likewise.
15820 (vect_analyze_pointer_ref_access): Likewise.
15821
9df935d8
AP
158222005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
15823
15824 PR tree-opt/19768
15825 * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
15826 phi flag if the phi is abnormal.
15827
50d4a707
AP
158282005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
15829
15830 PR tree-opt/19736
15831 * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
15832 information for the new statement.
15833
cd21f044
JM
158342005-02-03 Joseph S. Myers <joseph@codesourcery.com>
15835
15836 PR driver/19117
15837 * gcc.c (main): Include the target in -v output.
15838
aa2d0bc3
AO
158392005-02-03 Alexandre Oliva <aoliva@redhat.com>
15840
15841 * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
15842 Do not drop the extend if we'd have to add a paradoxical subreg
15843 later. Include optabs.h and insn-codes.h.
15844 * Makefile.in (combine.o): Depend on $(OPTABS_H).
15845
762297d9
RS
158462005-02-02 Roger Sayle <roger@eyesopen.com>
15847
15848 PR middle-end/19405
15849 * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
15850 * fold-const.c (const_binop): Avoid constant folding floating
15851 point operations in modes that use composite representations.
15852 * simplify-rtx.c (simplify_binary_operation): Likewise.
15853
666158b9
GK
158542005-02-02 Geoffrey Keating <geoffk@apple.com>
15855
15856 * config/rs6000/altivec.md (altivec_dst): Make the first operand
15857 a REG, not a MEM.
15858 (altivec_dstt): Likewise.
15859 (altivec_dstst): Likewise.
15860 (altivec_dststt): Likewise.
15861 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
15862 of first operand.
15863
cce4ca55
DN
158642005-02-03 Dorit Naishlos <dorit@il.ibm.com>
15865
15866 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
15867 EXPR_LOCUS from orig_cond to the new cond_stmt.
15868 (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
15869 the new vec_stmt.
15870
158712005-02-03 Dorit Naishlos <dorit@il.ibm.com>
15872
15873 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
2cdc2073 15874 standard_iv_increment_position. Remove call to bsi_next
cce4ca55
DN
15875 (no need to bump the iterator anymore).
15876 (vect_create_index_for_vector_ref): Call
15877 standard_iv_increment_position. Remove second function argument.
2cdc2073 15878 (vect_finish_stmt_generation): Remove call to bsi_next
cce4ca55
DN
15879 (no need to bump the iterator anymore).
15880 (vect_create_data_ref_ptr): Remove second argument (bsi) in call
15881 to vect_create_index_for_vector_ref.
15882
158832005-02-03 Dorit Naishlos <dorit@il.ibm.com>
15884
15885 * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
15886 phis are used out of the loop.
15887
73aea290
JM
158882005-02-03 Joseph S. Myers <joseph@codesourcery.com>
15889
15890 PR c/17807
15891 * c-decl.c (undef_nested_function): New variable.
15892 (pop_scope): Diagnose undefined nested functions.
15893 (finish_function): Don't attempt cgraph processing or genericizing
15894 if current top-level function contained an undefined nested
15895 function. Reset undef_nested_function at the end of a top-level
15896 function.
15897
89d12f5d
ZD
158982005-02-02 Zdenek Dvorak <dvorakz@suse.cz>
15899
15900 * tree.c (build_int_cst_type): Take sign of the value into account
15901 when deciding whether sign extend the value.
15902
740ca4b2
JM
159032005-02-02 Joseph S. Myers <joseph@codesourcery.com>
15904
15905 PR c/18502
15906 * gcc.c (cpp_unique_options): Remove %{trigraphs}.
15907 (cpp_options, cc1_options): Change %{std*&ansi} to
15908 %{std*&ansi&trigraphs}.
15909
a52aff23
KH
159102005-02-02 Kazu Hirata <kazu@cs.umass.edu>
15911
15912 * cse.c: Update comments.
15913
cf676baa
AH
159142005-02-02 Aldy Hernandez <aldyh@redhat.com>
15915
15916 * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
15917 arguments go on the stack. Do not put complex doubles in odd/even
15918 pairs.
15919
08711fdf
SB
159202005-02-02 Steven Bosscher <stevenb@suse.de>
15921
15922 * doc/invoke.texi: Update the options enabled at -O1, -O2,
15923 and -O3. Update the documentation for -fgcse-sm, -fgcse-las,
15924 -ftree-pre, and -fthread-jumps.
15925
7ded35b4
RS
159262005-02-02 Richard Sandiford <rsandifo@redhat.com>
15927
15928 PR tree-optimization/19578
15929 * tree-flow.h (modified_noreturn_calls): Declare.
15930 (noreturn_call_p): Declare.
15931 * tree-flow-inline.h (noreturn_call_p): New function.
15932 (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
15933 * tree-cfg.c (modified_noreturn_calls): New variable.
15934 (cleanup_control_flow): Use noreturn_call_p. Split basic blocks
15935 that contain a mid-block noreturn call.
15936 * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
15937
d01da8bd
KH
159382005-02-02 Kazu Hirata <kazu@cs.umass.edu>
15939
15940 * df.c (df_def_record_1, df_uses_record): Don't use
15941 DF_FOR_REGALLOC.
15942 * df.h (DF_FOR_REGALLOC): Remove.
15943
493179da
JM
159442005-02-02 Joseph S. Myers <joseph@codesourcery.com>
15945
15946 PR c/19435
15947 * c-typeck.c (really_start_incremental_init): Reset
15948 constructor_max_index for arrays of incomplete type.
15949
ed425871
JL
159502005-02-02 Jeff Law <law@redhat.com>
15951
15952 * gcse.c (struct reg_set): Store the block index where the register
15953 was set rather than the setting insn.
15954 (record_one_set, compute_transp): Corresponding changes.
15955 (pre_insert_copy_insn): Do not call replace_one_set.
15956 (replace_one_set): Remove.
15957
d02d7104
JM
159582005-02-02 Joseph S. Myers <joseph@codesourcery.com>
15959
15960 PR other/15514
15961 * doc/gcov.texi: Fix typo.
15962
c1c5b5e3
RH
159632005-02-01 Richard Henderson <rth@redhat.com
15964
15965 PR target/19680
15966 * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
15967 * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
15968 type to bool.
15969 (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
15970 * config/i386/i386-protos.h: Update.
15971
7a442a1d
SB
159722005-02-01 Steven Bosscher <stevenb@suse.de>
15973
15974 PR tree-optimization/19217
15975 * tree-cfg.c (verify_expr): Use the data field to see if TP was
15976 seen inside a PHI node. Do not do the ADDR_EXPR check if it was.
15977 (verify_stmts): Pass (void*)1 as data to verify_expr to signal
15978 that it is walking a PHI node.
15979
475b6e22
JM
159802005-02-01 Joseph S. Myers <joseph@codesourcery.com>
15981
15982 * doc/extend.texi (Nested Functions): Update.
15983
ca58f2bc
RH
159842005-02-01 Richard Henderson <rth@redhat.com>
15985
15986 PR 19696
15987 * optabs.c (expand_copysign_absneg): Export.
15988 * optabs.h (expand_copysign_absneg): Declare.
15989 * config/rs6000/rs6000.md (copysigntf3): New.
15990
a1d13fa1
DN
159912005-02-01 Diego Novillo <dnovillo@redhat.com>
15992
15993 PR tree-optimization/19633
15994 * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
15995 * tree-ssa-alias.c (init_alias_info): Initialize.
15996 (merge_pointed_to_info): Set.
15997 (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
15998 (dump_points_to_info_for): Show value of pt_null.
15999 (struct count_ptr_d): Declare.
16000 (find_ptr_dereference): Remove.
16001 (ptr_is_dereferenced_by): Remove.
16002 (count_ptr_derefs): New local function.
16003 (count_uses_and_derefs): New local function.
16004 (compute_points_to_and_addr_escape): Call it. If the number
16005 of dereferences is greater than zero, mark the pointer as
16006 dereferenced. If there are fewer dereferences than uses of
16007 the pointer, the pointer's value escapes.
16008
28a3618f
DN
160092005-02-01 Diego Novillo <dnovillo@redhat.com>
16010
16011 PR tree-optimization/19670
16012 * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
16013 here...
16014 (verify_use): ... set it here, instead.
16015
8d2d2ec6
JJ
160162005-02-01 Janis Johnson <janis187@us.ibm.com>
16017
cc95a845
JJ
16018 * doc/sourcebuild.texi (Test directives): Fix formatting.
16019
8d2d2ec6
JJ
16020 * doc/sourcebuild.texi (Test directives): Describe selector
16021 expressions.
16022
d1c8addb
SB
160232005-02-01 Segher Boessenkool <segher@kernel.crashing.org>
16024
16025 * config.gcc (powerpc64-*-linux*): Default to -m64 also for
16026 specific 64-bit CPUs.
16027
6555b6bd
RE
160282005-02-01 Richard Earnshaw <rearnsha@arm.com>
16029
16030 PR target/16201
16031 * arm.c (arm_eliminable_register): New function.
16032 (adjacent_mem_locations): Don't allow eliminable registers. Use
16033 HOST_WIDE_INT for address offsets.
16034 * arm-protos.h (arm_eliminable_register): Add prototype.
16035
bbcb0c05
SB
160362005-02-01 Steven Bosscher <stevenb@suse.de>
16037
16038 PR optimization/15242
16039 * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
16040 * basic-block.h (duplicate_computed_gotos): Add prototype.
16041 * bb-reorder.c (duplicate_computed_gotos): New function to
16042 duplicate sufficiently small blocks ending in a computed jump.
16043 * passes.c (rest_of_compilation): Call duplicate_computed_gotos
16044 if not optimizing for size.
16045 * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
16046 never do tail merging for blocks ending in a computed jump.
16047 * doc/invoke.texi: Document the max-goto-duplication-insns param.
16048
9c0a30c3
EB
160492005-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
16050
16051 Patch from Richard Sandiford <rsandifo@redhat.com>
16052 * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
16053 from inheriting a subreg equivalence with a non-spill register.
16054
16055 * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
16056
7b150713
AO
160572005-02-01 Alexandre Oliva <aoliva@redhat.com>
16058
16059 * config/frv/frv.c (movcc_fp_destination_operand): New.
16060 (gpr_or_memory_operand): Fix typo in comment.
16061 (gpr_or_memory_operand_with_scratch): New.
16062 * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
16063 * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
16064 movcc_fp_destination_operand.
16065 (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
16066 Legitimize memory addresses using a scratch register.
16067
dc5d4efb
JL
160682005-01-31 Jeff Law <law@redhat.com>
16069
7d793e36
JL
16070 * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
16071 bitmap a sparse bitmap instead of a simple bitmap.
16072 (mark_def_sites_initialize_block): Corresponding changes.
16073 (ssa_mark_def_sites_initialize_block): Likewise.
16074 (ssa_mark_phi_uses): Likewise.
16075 (mark_def_site, ssa_mark_def_sites): Likewise.
16076 (mark_def_site_blocks): Likewise.
16077 (rewrite_ssa_into_ssa): Likewise.
16078
5746637c
JL
16079 * tree-ssa-dom.c (record_cond): Pass correct variable type
16080 for last argument to htab_find_slot_with_hash.
16081
16082 * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
16083 effects when optimizing 0 % X. Do not try to optimize X % 0.
dc5d4efb 16084
3dcec1e9
JW
160852005-01-31 James E. Wilson <wilson@specifixinc.com>
16086
16087 * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
16088 1_mmalua.
16089
fc474307
EC
160902005-02-01 Eric Christopher <echristo@redhat.com>
16091
16092 * config/mips/mips.c (override_options): Warn if -mint64
16093 is used.
16094 * doc/invoke.texi (MIPS Options): Document that -mint64 is
16095 deprecated.
16096
bc5e3b54
KH
160972005-02-01 Kazu Hirata <kazu@cs.umass.edu>
16098
16099 * cse.c (cse_reg_info): Remove hash_next, next, regno. Add
16100 timestamp.
16101 (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
16102 REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
16103 cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
16104 (cached_regno): Initialize to INVALID_REGNUM.
16105 (cse_reg_info_table_size,
16106 cse_reg_info_table_first_uninitialized,
16107 cse_reg_info_timestamp): New.
16108 (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
16109 get_cse_reg_info.
16110 (init_cse_reg_info, get_cse_reg_info_1): New.
16111 (get_cse_reg_info): Cache the last look-up.
16112 (new_basic_block): Update the code to clear mappings from
16113 registers to cse_reg_info entries.
16114 (cse_main): Call init_cse_reg_info.
16115
782c0a3e
KH
16116 * cse.c (get_cse_reg_info): Update a comment.
16117
b4519d39
SB
161182005-01-31 Steven Bosscher <stevenb@suse.de>
16119
16120 PR c/19333
16121 * c-decl.c (start_decl): Do not warn about arrays of elements with
16122 an incomplete type here.
16123 (grokdeclarator): Do it here by making a pedwarn an error.
16124 * c-typeck.c (push_init_level): If there were previous errors with
16125 the constructor type, do not warn about braces for initializers.
16126 (process_init_element): Likewise for excess initializer elements.
16127
65e9fa10
KH
161282005-01-31 Kazu Hirata <kazu@cs.umass.edu>
16129
16130 * cse.c (delete_trivially_dead_insn): Don't iterate.
16131
0530bc70
AP
161322005-01-31 Andrew Pinski <pinskia@physics.uc.edu>
16133
16134 * config/rs6000/rs6000.md (copysignsf3): New expand.
16135 (copysigndf3): Likewise.
16136
9ea88834
SB
161372005-01-31 Steven Bosscher <stevenb@suse.de>
16138
16139 * recog.c (constrain_operands): Only look for earlyclobber operand
16140 conflicts if an '&' constraint was seen.
16141
75a3bd9d
ME
161422005-01-31 Marc Espie <espie@openbsd.org>
16143
16144 * config.gcc: Don't include embedded systems fragment, switches default
16145 debugging format to ELF.
2cdc2073 16146 * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
75a3bd9d
ME
16147 longer pick it up there.
16148
28697267 161492005-01-31 Dale Johannesen <dalej@apple.com>
2cdc2073 16150
28697267
DJ
16151 * doc/extend.texi (nested functions): Fix linkage description.
16152 Clarify that static is not allowed.
16153
e87d92f4 161542005-01-31 Dale Johannesen <dalej@apple.com>
2cdc2073 16155
e87d92f4
DJ
16156 * config/rs6000/darwin.md (movsf_low_di): Make work.
16157 (movdf_low_di): Make work.
16158
42d262fa
DJ
161592005-01-31 Dale Johannesen <dalej@apple.com>
16160
16161 * config/rs6000/darwin-tramp.asm (__trampoline_setup):
16162 Make work for 64 bit.
16163
3b70b82a
DJ
161642005-01-31 Roger Sayle <roger@eyesopen.com>
16165 Dale Johannesen <dalej@apple.com>
16166
16167 PR middle-end/19650
16168 * fold-const.c (fold_binary_op_with_conditional_arg):
16169 Make types match original operands, before STRIP_NOPS.
16170
a7a52913
AM
161712005-01-31 Alan Modra <amodra@bigpond.net.au>
16172
16173 * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
16174 (struct gcc_regs): Rename from gcc_pt_regs. Add more regs.
16175 (struct gcc_sigcontext): Delete. Merge contents to..
16176 (struct gcc_ucontext): ..here.
16177 (get_sigcontext): Delete.
16178 (get_regs): New function, like get_sigcontext but return regs ptr.
16179 64-bit version finds regs from r1 to support vdso.
16180 (ppc_linux_aux_vector): New function.
16181 (ppc_fallback_frame_state): Modify for get_regs. Restore fprs
16182 and vector regs.
16183
261ba0c8
IR
161842005-01-31 Ira Rosen <irar@il.ibm.com>
16185
16186 * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
16187 sizetype.
16188 (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
16189 redundant fold. Fix misalignment for MINUS_EXPR.
16190 (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
16191 (vect_analyze_pointer_ref_access): Likewise.
16192 (vect_get_memtag_and_dr): Likewise.
16193
2ae1ac77
RH
161942005-01-31 Richard Henderson <rth@redhat.com>
16195
16196 * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
16197 (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
16198 absnegdf2_i387, absnegxf2_i387): Likewise.
16199
ae394659
RH
162002005-01-31 Richard Henderson <rth@redhat.com>
16201
16202 PR 19696
16203 * optabs.c (expand_copysign_absneg): New.
16204 (expand_copysign_bit): Split out from ...
16205 (expand_copysign): ... here. Use expand_copysign_absneg.
16206
ebcaaa21
RS
162072005-01-30 Roger Sayle <roger@eyesopen.com>
16208
16209 PR middle-end/19697
16210 * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
16211 constant as the second operand and a register as the third.
16212
6cc37e7e
DS
162132005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
16214
16215 PR target/19704
16216 * config/i386/i386.c (ix86_function_ok_for_sibcall): Also check
16217 that dllimport'd functions do not use all call-clobbered registers
16218 to pass parameters.
16219
8c55a142
RH
162202005-01-30 Richard Henderson <rth@redhat.com>
16221
16222 PR 19696
16223 * optabs.c (expand_absneg_bit): Split out from expand_unop and
16224 expand_abs_nojump and generalize. Use operand_subword and
16225 emit_no_conflict_block. Support large modes.
16226 (expand_abs_nojump): Use it. Use HONOR_SIGNED_ZEROS to fall
16227 back to maximum.
16228 (expand_unop): Likewise. Use HONOR_SIGNED_ZEROS to fall back
16229 negation to subtraction.
16230 (expand_copysign): Check that the format has signed zeros.
16231 Use operand_subword and emit_no_conflict_block. Support large modes.
16232
338bc65e
DB
162332005-01-30 Daniel Berlin <dberlin@dberlin.org>
16234
16235 Fix PR tree-optimization/19624
2cdc2073 16236
338bc65e
DB
16237 * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
16238 * tree-ssa-pre.c: Add cfgloop.h.
16239 Update comment.
16240 (pre_stats): New member, constified.
16241 (inserted_exprs): New static variable.
16242 (NECESSARY): New macro.
16243 (create_expression_by_pieces): Fold the expression, and
16244 mark it as defaulting to not necessary. Also put in
16245 inserted_exprs.
16246 (fully_constant_expression): New function.
16247 (insert_into_preds_of_block): Modify to not insert phis when we
16248 are playing with induction variables.
16249 Push phis onto the inserted_exprs vector, and mark them as not
16250 necessary by default.
16251 (insert_aux): Call fully_constant_expression on eprime.
16252 If all edges produce the same value, mark it constant.
16253 (mark_operand_necessary): New function.
16254 (remove_dead_inserted_code): New function.
16255 (init_pre): Init loop optimizer to get loop info.
16256 (fini_pre): Free loop_optimizer, and inserted_exprs vec.
16257 (execute_pre): Commit edge inserts, then remove dead code.
16258
237f420b
RH
162592005-01-30 Richard Henderson <rth@redhat.com>
16260
16261 * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
16262 * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
16263
b99d6d2b
RH
162642005-01-30 Richard Henderson <rth@redhat.com>
16265
16266 PR target/19700
16267 * config/i386/i386.c (ix86_expand_copysign): New.
16268 (ix86_split_copysign_const): New.
2cdc2073 16269 (ix86_split_copysign_var): Rename from ix86_split_copysign,
b99d6d2b
RH
16270 rearrange op1/nmask operands.
16271 * config/i386/i386-protos.h: Update.
16272 * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
16273 (copysigndf3): Likewise.
16274 (copysignsf3_const, copysigndf3_const): New.
16275 (copysignsf3_var): Rename from copysignsf3, split out splitter
16276 and fix split predicate for X constraint.
16277 (copysigndf3_var): Similarly.
16278
c5c367ac
KH
162792005-01-30 Kazu Hirata <kazu@cs.umass.edu>
16280
16281 * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
16282 doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
16283 doc/tm.texi, doc/tree-ssa.texi: Update copyright.
16284
d6eabd43
RH
162852005-01-29 Richard Henderson <rth@redhat.com>
16286
16287 PR target/19690
16288 * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
16289 of # and * in constraints.
16290
8d740330
RH
162912005-01-29 Richard Henderson <rth@redhat.com>
16292
16293 PR middle-end/19689
16294 * expr.c (store_field): Don't strip sub-mode cast when the input
16295 data is even smaller.
16296
486e4326
RH
162972005-01-29 Richard Henderson <rth@redhat.com>
16298
16299 PR middle-end/19687
16300 * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
16301 union being empty.
16302
eb2ab511
RH
163032005-01-29 Richard Henderson <rth@redhat.com>
16304
16305 * combine.c (make_field_assignment): Fix argument order
16306 to gen_int_mode.
16307
020d90ee
RG
163082005-01-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
16309
16310 PR tree-optimization/15791
16311 * fold-const.c (extract_array_ref): New function.
16312 (fold): Fold comparisons between &a[i] and &a[j] or
16313 semantically equivalent trees.
16314
b6e47ceb
JL
163152005-01-29 Jeff Law <law@redhat.com>
16316
16317 * gcse.c (insert_expr_in_table): Revamp handling of available
16318 and anticipatable occurrence lists to avoid unnecessary list
16319 walking.
16320 (insert_set_in_table): Similarly.
16321
46df2823
JM
163222005-01-29 Joseph S. Myers <joseph@codesourcery.com>
16323
16324 * c-common.c (fix_string_type): Just use c_build_qualified_type to
16325 build string type.
16326 (c_build_qualified_type): Build qualified array types with
16327 TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
16328 * c-decl.c (c_make_fname_decl): Build unqualified array type
16329 before qualified type.
16330 (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
16331 type is qualified, not just if type itself is. Don't apply
16332 qualifiers to array type when declarator is processed. Apply
16333 qualifiers to field type whether or not it is an array type.
16334 Don't handle array types specially for applying qualifiers to
16335 variables.
16336 * c-typeck.c (composite_type): Build unqualified element type and
16337 array type when forming composite of array types.
16338 (common_pointer_type, comptypes, comp_target_types,
16339 type_lists_compatible_p, build_indirect_ref, build_array_ref,
16340 convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
16341 types.
16342 (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
16343 (args2) in variables a1 and a2.
16344
26af0046
KH
163452005-01-29 Kazu Hirata <kazu@cs.umass.edu>
16346
16347 * cse.c (n_elements_made, max_elements_made): Remove.
16348 (insert): Don't touch n_elements_made.
16349 (cse_main): Don't touch n_elements_made or max_elements_made.
16350
3a951664
SC
163512005-01-28 Stephane Carrez <stcarrez@nerim.fr>
16352
16353 PR target/15384
16354 * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
16355 configuration part of dp-bit.c to be lost.
16356
82dfb9a5
RS
163572005-01-28 Roger Sayle <roger@eyesopen.com>
16358
16359 * expmed.c (expand_mult_highpart_optab): When attempting to use
16360 a non-widening multiplication in a wider mode, the operands need
16361 to be converted (zero or sign extended) to that mode.
16362
09f8cf2d
ILT
163632005-01-28 Ian Lance Taylor <ian@airs.com>
16364
16365 PR middle-end/16558
16366 PR middle-end/19583
16367 * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
16368 through if both operands fall through.
16369
01aa1d43
KH
163702005-01-28 Kazu Hirata <kazu@cs.umass.edu>
16371
16372 * cse.c (fold_rtx) <PC>: Don't optimize.
16373
139c978a
JL
163742005-01-28 Jeff Law <law@redhat.com>
16375
16376 * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
16377 (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
16378
1590d0d4
KH
163792005-01-28 Kazu Hirata <kazu@cs.umass.edu>
16380
16381 * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
16382 cse_reg_info_used_list_end): Remove.
16383 (cse_reg_info_list, cse_reg_info_list_free): New.
16384 (get_cse_reg_info): When allocating an instance of
16385 cse_reg_info, add it to the beginning of the cse_reg_info_list
16386 list. Remove code to maintain cse_reg_info_used_list.
16387 (new_basic_block): Reset the free list to the beginning of
16388 cse_reg_info_list.
16389
a738d848
RS
163902005-01-28 Richard Sandiford <rsandifo@redhat.com>
16391
16392 * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
16393 (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
16394 (frv_expand_mdpackh_builtin): New function.
16395 (frv_expand_builtin): Use it to expand __MDPACKH.
a738d848
RS
16396 * doc/extend.texi (__MDPACKH): Update documentation.
16397
2aa3d033
UB
163982005-01-28 Uros Bizjak <uros@kss-loka.si>
16399
16400 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
16401 SSE_FLOAT_MODE_P for use_sse computation.
16402
7d7f3b95
RC
164032005-01-28 Ralf Corsepius <ralf.corsepius@rtems.org>
16404
16405 PR target/19663
16406 * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
16407
046625fa
RH
164082005-01-27 Richard Henderson <rth@redhat.com>
16409
16410 * builtins.c (expand_builtin_copysign): New.
16411 (expand_builtin): Call it.
16412 * genopinit.c (optabs): Add copysign_optab.
16413 * optabs.c (init_optabs): Initialize it.
16414 (expand_copysign): New.
16415 * optabs.h (OTI_copysign, copysign_optab): New.
16416 (expand_copysign): Declare.
16417
16418 * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
16419 (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
16420
16421 * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
16422 (ix86_expand_fp_absneg_operator): ... here.
16423 (ix86_split_copysign): New.
16424 * config/i386/i386-protos.h: Update.
16425 * config/i386/i386.md (UNSPEC_COPYSIGN): New.
16426 (copysignsf3, copysigndf3): New.
16427
16428 * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
16429 (copysignsf3, ncopysignsf3): New.
16430 (copysigndf3, ncopysigndf3): New.
16431 (copysignxf3, ncopysignxf3): New.
16432 * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
16433
6c667859
AB
164342005-01-27 Arend Bayer <arend.bayer@web.de>
16435 Kazu Hirata <kazu@cs.umass.edu>
16436
16437 * cse.c: (find_best_addr): Don't call copy_rtx before calling
16438 fold_rtx. Save cost recomputation if fold_rtx did nothing.
16439 (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
16440 NULL_RTX.
16441
88af764e
JL
164422005-01-27 Jeff Law <law@redhat.com>
16443
16444 * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
16445 definitions of SSA_NAMEs which are not being rewritten.
16446 (rewrite_ssa_into_ssa): Only initialize the current definition
16447 of an SSA_NAME if that SSA_NAME has been marked for rewriting.
16448 If checking is enabled, assert that SSA_NAME_AUX is clear for all
16449 SSA_NAMEs before returning.
16450
f93089d2
KH
164512005-01-27 Kazu Hirata <kazu@cs.umass.edu>
16452
16453 * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
16454 cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
16455 tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
16456 config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
16457 config/mips/iris6.h, config/sh/sh.c: Update copyright.
16458
116cb604
SB
164592005-01-27 Steven Bosscher <stevenb@suse.de>
16460
16461 PR middle-end/17278
16462 * opts.c (decode_options): Move flag_thread_jumps from -O1 and
16463 higher to -O2 and higher. Likewise for tree PRE.
16464 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
16465 and better.
16466
09f8cf2d 164672005-01-27 Ian Lance Taylor <ian@airs.com>
6737ba67
ILT
16468
16469 PR middle-end/19583
16470 * gimple-low.c (try_catch_may_fallthru): New static function.
16471 (block_may_fallthru): Handle TRY_CATCH_EXPR.
16472 * tree-inline.c (expand_call_inline): Don't warn about reaching
16473 the end of a non-void function being inlined if the function uses
16474 a return slot.
16475
d8dd2f3a
JJ
164762005-01-27 Jakub Jelinek <jakub@redhat.com>
16477
9d72d996
JJ
16478 * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
16479
d8dd2f3a
JJ
16480 PR c/18946
16481 * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
16482 (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
16483 (implicitly_declare): Handle error_mark_node.
16484
dad2a933
RH
164852005-01-27 Richard Henderson <rth@redhat.com>
16486
16487 PR tree-opt/14329
16488 * tree.h (struct tree_decl): Add debug_expr_is_from.
16489 (DECL_DEBUG_EXPR_IS_FROM): New.
16490 (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
16491 * dwarf2out.c (dwarf2out_var_location): Update to match.
16492 * tree-outof-ssa.c (create_temp): Likewise.
16493 * var-tracking.c (track_expr_p): Likewise.
16494 * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
16495 * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
16496 * toplev.c (default_tree_printer): Likewise.
16497
17c21957
AO
164982005-01-27 Alexandre Oliva <aoliva@redhat.com>
16499
16500 * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
16501 GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
16502
ebaae582
SB
165032005-01-27 Steven Bosscher <stevenb@suse.de>
16504
16505 * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
16506 CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
16507 ASM_CLOBBERS): Add tree checks.
16508
16509 * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
16510 (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
16511 * c-common.def (SWITCH_STMT): Update to match.
16512 * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
16513 macros instead of SWITCH_EXPR ones.
16514 * c-dump.c (c_dump_tree): Likewise.
16515 * c-gimplify.c (gimplify_switch_stmt): Likewise.
16516 * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
16517
16518 * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
16519
7a706738
AM
165202005-01-27 Alan Modra <amodra@bigpond.net.au>
16521
16522 * unwind-dw2.c (execute_stack_op): Add missing cases for
16523 DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
16524
fe15407d
EB
165252005-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
16526
16527 * config.gcc (Obsolete configurations): Remove 'dummy', add
16528 sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
16529 sparc-*-openbsd*.
16530
87637d21
DN
165312005-01-26 Diego Novillo <dnovillo@redhat.com>
16532
16533 PR tree-optimization/19633
16534 * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
16535 CALL_EXPRs.
16536 (maybe_create_global_var): Do not create .GLOBAL_VAR if there
16537 are no call-clobbered variables.
16538 * tree-outof-ssa.c (check_replaceable): Return false for calls
16539 with side-effects.
16540
9ff93eb0
UW
165412005-01-26 Ulrich Weigand <uweigand@de.ibm.com>
16542
16543 * dbxout.c (dbxout_symbol_location): Resolve constant pool references
16544 even for variables with NULL DECL_INITIAL.
16545
4356a1bf
SH
165462005-01-26 Stuart Hastings <stuart@apple.com>
16547
00adda9f 16548 * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
4356a1bf 16549
48cc8d3b
RH
165502005-01-26 Richard Henderson <rth@redhat.com>
16551
16552 PR middle-end/18008
16553 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
16554 field's type.
16555 * expr.c (store_field): Strip conversions to odd-bit-sized types
16556 if the destination field width matches.
16557
eec6bb06
RH
165582005-01-26 Richard Henderson <rth@redhat.com>
16559
16560 * c-decl.c, expmed.c, expr.c: Revert last change.
16561
78ef1e3d
RH
165622005-01-26 Richard Henderson <rth@redhat.com>
16563
16564 PR middle-end/18008
16565 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
16566 field's type.
16567 * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
16568 if we don't need the bits above those present in the current mode.
16569 * expr.c (store_field): Strip conversions to odd-bit-sized types
16570 if the destination field width matches.
16571
5596990f
RS
165722005-01-26 Richard Sandiford <rsandifo@redhat.com>
16573
16574 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
16575 either -ffast-math or -funsafe-math-optimizations is in use.
16576
a3cf5992
MM
165772005-01-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
16578
16579 PR target/19293
16580 PR target/19329
16581 * config/avr/avr.c (notice_update_cc): Only set condition code for
16582 ashrqi3 if shift count > 0.
16583 (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
16584 (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
16585 ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
16586 count <= 0 as a no-op, and shift count >= width by copying zero
16587 or sign bit to all bits of the result.
16588 * config/avr/avr.md (all shifts): Add alternatives for zero shift
16589 count, with attribute "length" set to 0 and "cc" set to "none".
16590
e4dd71de
AH
165912005-01-26 Aldy Hernandez <aldyh@redhat.com>
16592
16593 * doc/invoke.texi: Document -mTLS.
16594
16595 * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
16596 * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
16597 * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
16598 * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
16599 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
16600 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
16601 * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
16602 * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
16603
16604 * configure.ac: Check for a TLS capable gas.
16605
16606 * configure: Regenerate.
78ef1e3d 16607
55e79aef
RH
166082005-01-26 Richard Henderson <rth@redhat.com>
16609
16610 PR middle-end/18008
16611 * combine.c (make_field_assignment): Simplify store to zero_extract
16612 from a source with an overlapping mask.
16613
af30facd
AH
166142005-01-26 Aldy Hernandez <aldyh@redhat.com>
16615
16616 2004-11-11 Eric Christopher <echristo@redhat.com>
16617
ebaae582
SB
16618 * config/frv/frv.md: Add fr400_integer automaton. Don't
16619 allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
16620 to TYPE_MACC.
af30facd 16621
f7aa1423
SB
166222005-01-26 Steven Bosscher <stevenb@suse.de>
16623
16624 PR middle-end/16585
16625 * cfgbuild.c (make_edges): Do not clear or set
16626 current_function_has_computed_jump.
16627 * function.h (struct function): Remove the has_computed_jump field.
16628 (current_function_has_computed_jump): Do not define.
16629 * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
16630 in a computed jump. Ignore current_function_has_computed_jump.
16631
6f642f98
RH
166322005-01-26 Richard Henderson <rth@redhat.com>
16633
16634 PR middle-end/19515
16635 * expr.c (categorize_ctor_elements): New argument p_must_clear.
16636 (categorize_ctor_elements_1): Likewise. Detect a union that isn't
16637 fully initialized.
16638 (mostly_zeros_p): Update for new categorize_ctor_elements argument.
16639 * gimplify.c (gimplify_init_constructor): Likewise. Only shove
16640 objects into static storage if they have more than one non-zero value.
16641 * tree.h (categorize_ctor_elements): Update decl.
16642
ead553a1
SB
166432005-01-26 Steven Bosscher <stevenb@suse.de>
16644
2cdc2073 16645 PR middle-end/19616
ead553a1
SB
16646 * tree.h (CALL_EXPR_TAILCALL): Add comment.
16647 * calls.c (check_sibcall_argument_overlap_1): Revert the change
16648 to this function from 2004-07-10.
16649 * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
16650 the current function for tail call optimizations if the address
16651 of one of it its arguments is taken.
16652
75335440
KH
166532005-01-26 Kazu Hirata <kazu@cs.umass.edu>
16654
16655 * cse.c (fold_rtx): Call equiv_constant only when necessary.
16656
40184445
BS
166572005-01-26 Bernd Schmidt <bernd.schmidt@analog.com>
16658
16659 * function.c (expand_function_end): If current_function_calls_alloca,
16660 emit stack restore in a place that is reached when the function falls
16661 through at the end.
16662
144023ad
AO
166632005-01-26 Alexandre Oliva <aoliva@redhat.com>
16664
16665 * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
16666 rule to avoid matching inappropriate suffix rule.
16667
e4cf29ae
JH
166682005-01-26 Jan Hubicka <jh@suse.cz>
16669
97bd954f 16670 PR tree-optimization/19241
e4cf29ae
JH
16671 * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
16672
fe04ce06
HPN
166732005-01-26 Hans-Peter Nilsson <hp@axis.com>
16674
16675 * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
16676 -lsyssim. Wrap -lc -lsyssim in --start-group --end-group instead
16677 of doubling.
16678 (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
ead553a1 16679 <sim*>: Always use crt1.o, regardless of N in simN.
fe04ce06
HPN
16680 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
16681 (ENDFILE_SPEC): Add crtn.o, after crtend.o.
16682 (CRT_CALL_STATIC_FUNCTION): Remove.
16683 * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
16684 use crt1.o, regardless of N in simN.
16685 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
16686 (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
16687 (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
16688 case isystem setting.
16689 (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
16690
6a03afdf
ILT
166912005-01-25 Ian Lance Taylor <ian@airs.com>
16692
16693 * gimple-low.c (block_may_fallthru): Correct handling of
16694 SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
16695
c555b47f
HPN
166962005-01-26 Hans-Peter Nilsson <hp@axis.com>
16697
16698 * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
16699 handlers to match indentation; nested under the mtune=* handler.
16700 Similar for mcpu= and march=.
16701
9841a1a7
DJ
167022005-01-25 Daniel Jacobowitz <dan@codesourcery.com>
16703
16704 * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
16705 * config/mips/linux64.h (LIB_SPEC): Likewise.
16706 * config/mn10300/linux.h (LIB_SPEC): Likewise.
16707 * config/sh/linux.h (LIB_SPEC): Likewise.
16708
bef8809e
AH
167092005-01-25 Aldy Hernandez <aldyh@redhat.com>
16710
16711 * config/frv/frv.c (frv_legitimize_tls_address): New.
16712 (TARGET_HAVE_TLS): Define.
16713 (FRV_SYMBOL_REF_TLS_P): Define.
16714 (frv_override_options): Handle new register classes.
16715 (frv_legitimate_address_p): Reject tls addresses.
16716 (frv_legitimize_address): Handle TLS addresses.
16717 (gen_inlined_tls_plt): New.
16718 (gen_tlsmoff): New.
16719 (frv_legitimize_tls_address): New.
16720 (unspec_got_name): Add TLS entries.
16721 (got12_operand): Add R_FRV_TLSMOFF12 case.
16722 (frv_emit_move): Fixup TLS addresses.
16723 (frv_emit_movsi): Legitimize TLS addresses.
16724
16725 * config/frv/frv.h (MASK_BIG_TLS): New.
16726 (TARGET_BIG_TLS): New.
16727 (HAVE_AS_TLS): Define.
16728 (TARGET_SWITCHES): Add -mTLS and -mtls options.
16729 (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
16730 (REG_CLASS_NAMES): Same.
16731 (REG_CLASS_CONTENTS): Same.
16732 (CONSTRAINT_LEN): New.
16733 (REG_CLASS_FROM_CONSTRAINT): New.
16734 (PREDICATE_CODES): Add symbolic_operand.
16735
16736 * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
16737 UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
16738 UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
16739 UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
16740 R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
16741 R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
16742 R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
16743 GR9_REG, GR14_REG, LRREG.
16744 (type): Add load_or_call attribute.
16745 ("load_or_call"): New reservation.
16746 ("call_gettlsoff"): New.
16747 ("tls_indirect_call"): New.
16748 ("tls_load_gottlsoff12"): New.
16749 ("tlsoff_hilo"): New.
16750 ("tls_tlsdesc_ldd"): New.
16751 ("tls_tlsoff_ld"): New.
16752 ("tls_lddi"): New.
16753
16754 * config/frv/frv-protos.h (symbolic_operand): Protoize.
16755
16756 2005-01-25 Alexandre Oliva <aoliva@redhat.com>
16757
ead553a1
SB
16758 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
16759 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
16760 * config/frv/frv.c (TLS_BIAS): Define.
16761 (frv_output_dwarf_dtprel): New.
bef8809e 16762
b8e48b98
JJ
167632005-01-26 Jakub Jelinek <jakub@redhat.com>
16764
16765 PR rtl-optimization/19579
16766 * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
16767 both A and B, see if they don't clobber registers the other expr uses.
16768
1c673473
R
167692005-01-25 J"orn Rennecke <joern.rennecke@st.com>
16770
16771 * real.c (do_add): Initialize signalling and canonical members.
16772
16773 * real.c (real_from_integer): Zero out destination.
16774
ed464869
JH
167752005-01-18 Jan Hubicka <jh@suse.cz>
16776
16777 PR tree-optimize/19337
16778 * tree-inline.c (initialize_inlined_parameters): Copy
16779 saved_static_chain_decl only.
16780
51df7179
RH
167812005-01-25 Richard Henderson <rth@redhat.com>
16782
16783 PR target/19556
16784 PR target/19584
16785 * config/i386/i386.c (x86_inter_unit_moves): Zero.
16786 (ix86_preferred_reload_class): Rewrite fp-constant section, with
16787 80387 enabled, to return a proper subclass. Return the subset that
16788 overlaps with GENERAL_REGS for PLUS.
16789 * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
16790
c63f5a42
RH
167912005-01-25 Richard Henderson <rth@redhat.com>
16792
16793 PR middle-end/19609
16794 * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
16795
e71c0aa7
RS
167962005-01-25 Roger Sayle <roger@eyesopen.com>
16797
16798 * expmed.c (choose_multiplier): Change interface to return the
16799 multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
16800 (expand_divmod): Update calls to choose_multiplier.
16801
a6d2976a
JDA
168022005-01-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16803
16804 PR middle-end/19330
16805 * expmed.c (extract_bit_field): Use adjust_address instead of
16806 gen_lowpart when op0 is a MEM.
16807
7315a949
SB
168082005-01-24 Steven Bosscher <stevenb@suse.de>
16809
16810 * cfgexpand.c (expand_gimple_tailcall): Fix typo.
16811
c0fd73a9
RS
168122005-01-24 Richard Sandiford <rsandifo@redhat.com>
16813
16814 * config/mips/irix-csr.c: New file.
16815 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
16816 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
16817 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
16818 executables.
16819
81b47219
EB
168202005-01-24 Eric Botcazou <ebotcazou@libertysurf.fr>
16821
16822 PR bootstrap/19364
16823 * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
16824 sparc/elf.h, add sparc/sp-elf.h.
16825 (sparc-*-rtems*): Likewise.
16826 (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
16827 tm-dwarf2.h, add sparc/sp-elf.h.
16828 (sparc86x-*-elf): Likewise.
16829 (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
16830 * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
16831 TARGET_OS_CPP_BUILTINS.
16832 * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
16833 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
16834 Undefine it.
16835 * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
16836 * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
16837 (SWITCH_TAKES_ARG): Likewise.
16838 (LOCAL_LABEL_PREFIX): Likewise.
16839 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
16840 (TARGET_N_FORMAT_TYPES): Delete.
16841 (TARGET_FORMAT_TYPES): Likewise.
16842 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
16843 * config/sparc/elf.h: Delete.
16844 * config/sparc/sp-elf.h: New file.
16845
3a2f1f06
KH
168462005-01-24 Kazu Hirata <kazu@cs.umass.edu>
16847
16848 * tree-flow-inline.h (phi_arg_from_edge): Remove.
16849 * tree-flow.h: Remove the corresponding prototype.
16850 * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
16851 tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
16852
b723e82f
JJ
168532005-01-24 Jakub Jelinek <jakub@redhat.com>
16854
16855 PR target/17751
16856 * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
16857 for AIX ABI or ELF -fPIC.
16858 (rs6000_emit_load_toc_table): Don't create toc_section here.
16859 (rs6000_xcoff_file_start): Nor here.
16860
1a9ce0b7
JR
168612005-01-24 J"orn Rennecke <joern.rennecke@st.com>
16862
16863 * sh.c (ra.h): Don't #include.
16864 (hard_regs_intersect_p): New function, resurrected from ra.c.
16865
16866 * sh.c: Fix 1996 Copyright.
16867
226c62c7 168682005-01-24 Richard Henderson <rth@redhat.com>
97bd954f 16869 Aldy Hernandez <aldyh@redhat.com>
226c62c7 16870
97bd954f 16871 * regrename.c (note_sets): Handle subregs.
226c62c7 16872
2429f3d4
JM
168732005-01-24 Joseph S. Myers <joseph@codesourcery.com>
16874
16875 PR bootstrap/18058
16876 * genconditions.c (write_header, write_conditions): Elide file if
16877 not GCC >= 3.0.1.
16878
deeec1d8
KH
168792005-01-24 Kazu Hirata <kazu@cs.umass.edu>
16880
16881 * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
16882 config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
16883 Update copyright.
16884
7b922122
JJ
168852005-01-24 Jakub Jelinek <jakub@redhat.com>
16886
16887 * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
16888 expand_builtin_printf, expand_builtin_fprintf,
16889 expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
16890 checking against POINTER_TYPE.
16891 (validate_arglist): Handle POINTER_TYPE code by checking
16892 POINTER_TYPE_P.
16893
cf94b0fc
PB
168942005-01-24 Paolo Bonzini <bonzini@gnu.org>
16895
16896 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
16897 init_rtlanal): New.
16898 (for_each_rtx): Call for_each_rtx_1.
16899 * rtl.h (init_rtlanal): Declare.
16900 * toplev.c (backend_init): Call init_rtlanal.
16901
b77302be
JJ
169022005-01-24 Jakub Jelinek <jakub@redhat.com>
16903
16904 * flow.c (propagate_one_insn): Formatting.
16905
16906 PR middle-end/19551
16907 * flow.c (libcall_dead_p): Be more conservative if unsure.
16908 If there are any instructions between insn and call, see if they are
16909 all dead before saying the libcall is dead.
16910
11c56af5
UB
169112005-01-24 Uros Bizjak <uros@kss-loka.si>
16912
16913 * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
16914 operand constraint for operand 0.
16915
520f34fa
RH
169162005-01-23 Richard Henderson <rth@redhat.com>
16917
16918 PR 19486
16919 * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
16920 edges leading to join block.
16921
0d282692
RS
169222005-01-23 Roger Sayle <roger@eyesopen.com>
16923
16924 * expmed.c (expand_mult_highpart): Make static. Change type of
16925 constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
16926 (expand_divmod): Updates calls to expand_mult_highpart by using
16927 gen_int_mode to pass a CONST_INT rtx.
16928 * rtl.h (expand_mult_highpart): Remove prototype.
16929
edd517b1
KH
169302005-01-23 Kazu Hirata <kazu@cs.umass.edu>
16931
16932 * flow.c (regset_bytes, regset_size): Remove.
16933
708bde14
KH
16934 * cfganal.c: Fix a reference to Harvey's paper.
16935
85840349
SB
169362005-01-23 Steven Bosscher <stevenb@suse.de>
16937
16938 PR rtl-optimization/19464
16939 * tree-optimize.c (init_tree_optimization_passes): Add one more
16940 copyrename pass just before out-of-ssa.
16941
9fcdd891
JM
169422005-01-23 Joseph S. Myers <joseph@codesourcery.com>
16943
16944 PR bootstrap/18058
16945 * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
16946 * ggc-none.c (ggc_free): Define.
16947
d0754bc6
KH
169482005-01-23 Kazu Hirata <kazu@cs.umass.edu>
16949
16950 * cse.c (max_reg, max_insn_uid): Remove.
16951 (cse_main): Don't access max_reg or max_insn_uid.
16952
f3b303fd
KH
16953 * c-common.c (explicit_flag_signed_bitfields,
16954 lang_statement_code_p, lang_expand_function_end): Remove.
16955 * c-common.h: Remove the corresponding declarations.
16956 * c-opts.c (c_common_handle_option): Remove all write access
16957 to explicit_flag_signed_bitfields.
16958
15f0d971
KH
16959 * cgraph.c (cgraph_varpool_n_nodes): Remove.
16960 (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
16961 * cgraph.h: Remove the corresponding declaration.
16962
6d77cdc3
KH
16963 * gcse.c (null_pointer_info): Remove.
16964
b9750434
RS
169652005-01-23 Roger Sayle <roger@eyesopen.com>
16966 Eric Botcazou <ebotcazou@libertysurf.fr>
16967
16968 * combine.c (simplify_logical): Only simplify logical expressions
16969 of the form ior(and(x,y),z) by the inverse distributive law if the
16970 result is cheaper than the original.
16971
35fd3193
KH
169722005-01-23 Kazu Hirata <kazu@cs.umass.edu>
16973
16974 * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
16975 fold-const.c, gimplify.c, params.h, tree-data-ref.c,
16976 tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
16977 tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
16978 config/freebsd-spec.h, config/arm/arm.h,
16979 config/h8300/h8300.md, config/i386/i386.md,
16980 config/i386/predicates.md, config/i386/sse.md,
16981 config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
16982 config/vax/vax.md: Fix comment typos. Follow spelling
16983 conventions.
16984
a62a0172
SB
169852005-01-23 Steven Bosscher <stevenb@suse.de>
16986
16987 * gengtype.c (walk_type): Produce `not equal to' compares for loop
16988 tests, instead of `less than'.
16989
a561d88b
RS
169902005-01-23 Richard Sandiford <rsandifo@redhat.com>
16991
16992 * function.c (assign_parm_setup_block): When creating a new stack slot
16993 for a parameter, get its alignment from the parameter's DECL_ALIGN
16994 rather than the type's TYPE_ALIGN. Make sure that the parameter
16995 is at least word aligned.
16996
d2ebe27c
RS
169972005-01-22 Roger Sayle <roger@eyesopen.com>
16998
16999 PR middle-end/19378
17000 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
17001
a059cdb8
RH
170022005-01-22 Richard Henderson <rth@redhat.com>
17003
17004 PR target/19506
17005 * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
17006 in both compare operands.
17007 (movdfcc_1_sse_max): Likewise.
17008 (movsfcc_1_sse): Likewise. Add earlyclobber for scratch.
17009 (movdfcc_1_sse): Likewise.
17010 * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
17011 scratch register as needed.
17012
eabd294f
RH
170132005-01-22 Richard Henderson <rth@redhat.com>
17014
b8f06586
RH
17015 * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
17016
eabd294f
RH
17017 * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
17018
5ccbd309
RH
170192005-01-22 Richard Henderson <rth@redhat.com>
17020
17021 * genopinit.c (optabs): Use smin/smax for floating point too.
17022 * doc/md.texi: Update to match. Clarify that floating point
17023 results are undefined for +0/-0 and NaN.
17024 * doc/rtl.texi: Likewise.
17025 * rtl.def (SMIN, SMAX): Likewise
17026 * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
17027
17028 * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
17029 leading 's' to the name.
17030 * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
17031 smaxxf3, sminxf3): Likewise.
17032 * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
17033 Likewise.
17034
b4b2332c
PB
170352005-01-22 Paul Brook <paul@codesourcery.com>
17036
17037 * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
17038
6fa5b390
MD
170392005-01-21 Mark Dettinger <dettinge@de.ibm.com>
17040
2cdc2073 17041 * config/s390/s390.c (struct processor_costs): New fields
6fa5b390
MD
17042 dlgr, dlr, dr, dsgfr, dsgr.
17043 (z900_cost, z990_cost): Values for new fields.
17044 (s390_rtx_costs): New cases MEM und COMPARE in switch
17045 statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
17046 DIV, MOD, UDIV, UMOD.
17047
eb862a88
UW
170482005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
17049
17050 * config/s390/s390.md ("doloop_si64"): Reload input value directly
17051 into the register being decremented.
17052 ("doloop_si31", "doloop_di"): Likewise.
17053 ("*doloop_si_long"): Adapt pattern.
17054
3776ada0
UW
170552005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
17056
17057 * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
17058 access registers.
17059 (CLASS_MAX_NREGS): Likewise.
17060
d7c71ee3
DB
170612005-01-21 Daniel Berlin <dberlin@dberlin.org>
17062
17063 * doc/tree-ssa.texi (Statement Operands): Add example for new
17064 must-def macro. Note deprecation of old operands interface.
17065
d7f3fc19
RS
170662005-01-22 Richard Sandiford <rsandifo@redhat.com>
17067
17068 PR tree-optimization/19484
17069 * tree-cfg.c (remove_fallthru_edge): New function.
17070 (cleanup_control_flow): Remove fallthru edges from calls that are
17071 now known not to return.
17072
111e0c9f
DB
170732005-01-20 Daniel Berlin <dberlin@dberlin.org>
17074
17075 Fix PR tree-optimization/19038
17076 * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
17077 copies with loop variant ones.
17078
1e052c19
KH
170792005-01-22 Kazu Hirata <kazu@cs.umass.edu>
17080
17081 * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
17082 config/alpha/alpha-protos.h, config/alpha/alpha.h,
17083 config/alpha/alpha.md, config/alpha/predicates.md,
17084 config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
17085 config/sparc/sol2.h: Update copyright.
17086
28773f15
KH
17087 * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
17088 first label to see if it is a nonlocal label.
17089
1e052c19 170902005-01-22 David Edelsohn <edelsohn@gnu.org>
ead553a1 17091 Andrew Pinski <pinskia@physics.uc.edu>
987732e0
DE
17092
17093 PR target/19491
17094 * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
17095 maximum number of GPRs. Saturate n_fpr at maximum number of FPRs.
17096
80d15bce
RC
170972005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
17098
17099 * config/rs6000/rtems.h: Update copyright.
17100
b9d13999
RC
171012005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
17102
17103 PR target/19548
17104 * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
17105 (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
17106 (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
17107
20913689
VR
171082005-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
17109
17110 PR c/18809
17111 * c-typeck.c (convert_arguments): Check for error_mark_node.
17112
1e052c19 171132005-01-21 Ian Lance Taylor <ian@airs.com>
089efaa4
ILT
17114
17115 PR tree-optimization/13000
17116 * tree-inline.c: Include "tree-flow.h".
17117 (expand_call_inline): If warn_return_type, warn if non-void inline
17118 function falls through.
17119 * tree-cfg.c (execute_warn_function_return): Don't warn about
17120 control reaching end if TREE_NO_WARNING is set. Set
17121 TREE_NO_WARNING.
17122 * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
17123 has been lowered.
17124 * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
17125 branch if we don't need one.
17126 * c-typeck.c: Include "tree-flow.h"
17127 (c_finish_bc_stmt): Don't add a goto if the current statement
17128 list doesn't fall through to the current point.
17129
d284eb28
RS
171302005-01-21 Roger Sayle <roger@eyesopen.com>
17131
17132 PR rtl-optimization/576
17133 * real.c (real_arithmetic): Change return type from void to bool
17134 to return an indication that the result may be inexact.
17135 * real.h (real_arithmeric): Update prototype.
17136 * fold-const.c (const_binop): Don't constant fold floating
17137 point expressions when the user specifies -frounding-math and
17138 the result may depend upon the run-time rounding mode.
17139 (fold_convert_const_real_from_real): Clean-up.
17140 (fold_initializer): Ignore flag_rounding_math for initializers.
17141 * simplify-rtx.c (simplify_binary_operation): Likewise, don't
17142 constant fold FP operations with flag_rounding_math if the
17143 result may depend upon the run-time rounding mode.
17144
a101957b
TT
171452005-01-21 Tom Tromey <tromey@redhat.com>
17146
17147 * c-cppbuiltin.c (define__GNUC__): Correct assertion.
17148
a85ba5a8
KH
171492005-01-21 Kazu Hirata <kazu@cs.umass.edu>
17150
17151 * tree-cfg.c: Fix comment typos.
17152
5b5e3a31
R
171532005-01-21 J"orn Rennecke <joern.rennecke@st.com>
17154
17155 * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
17156 around the call to rest_of_handle_branch_target_load_optimize.
17157
0b85af22
EB
171582005-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
17159
17160 * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
17161 (sparc64-*-openbsd*): Likewise.
17162 (sparclite-*-elf*): Include tm-dwarf2.h.
17163 (sparc86x-*-elf*): Likewise.
17164 (sparc64-*-elf*): Likewise.
17165 * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
17166 (DBX_DEBUGGING_INFO): Likewise.
17167 * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
17168 (PREFERRED_DEBUGGING_TYPE): Likewise.
17169 * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
17170 * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
17171 (PREFERRED_DEBUGGING_TYPE): Likewise.
ac11d73b 17172 * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
0b85af22
EB
17173 (PREFERRED_DEBUGGING_TYPE): Likewise.
17174 * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
17175
3eacd71f
HPN
171762005-01-21 Hans-Peter Nilsson <hp@bitrange.com>
17177
17178 PR target/18701
17179 * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
17180
eacf8912
PB
171812005-01-20 Paul Brook <paul@codesourcery.com>
17182
17183 * doc/rtl.texi: Document value extension requirements for CONST_INT.
17184
548414c6
KH
171852005-01-20 Kazu Hirata <kazu@cs.umass.edu>
17186
17187 * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
17188 label is first in a sequence of labels.
17189
cde68236
KH
17190 * tree-cfg.c (tree_verify_flow_info): Fix a typo.
17191
35fdf04e
JJ
171922005-01-20 Janis Johnson <janis187@us.ibm.com>
17193 Giovanni Bajo <giovannibajo@gcc.gnu.org>
17194
17195 * doc/sourcebuild.texi (Test Directives): New.
17196
8ffeac67
RS
171972005-01-20 Roger Sayle <roger@eyesopen.com>
17198
17199 * real.c (real_floor): Don't leave the result uninitialized when
17200 mode is VOIDMode, but return the unrounded intermediate value.
17201 (real_ceil): Likewise.
17202
07ff6dac 172032005-01-20 Paul Brook <paul@codesourcery.com>
b65e6318
PB
17204
17205 * config/arm/arm.md (insv): Use gen_int_mode.
17206
62da8647
EB
172072005-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
17208
17209 * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
17210 * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
17211 * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
17212 * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
17213 * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
17214
3c46c513
DB
172152005-01-20 Daniel Berlin <dberlin@dberlin.org>
17216
17217 Fix PR debug/19124
17218 * dwarf2out.c (concat_loc_descriptor): We don't know we can use
17219 fbreg, so we have to assume we can't.
17220 (loc_descriptor_from_tree_1): Ditto.
17221 (containing_function_has_frame_base): New function.
17222 (add_location_or_const_value_attribute): Use it.
17223 Also try to generate a frame_base from a single element location
17224 list.
2cdc2073 17225
23ab2e4e
KH
172262005-01-20 Kazu Hirata <kazu@cs.umass.edu>
17227
17228 PR tree-optimization/15349
17229 * timevar.def (TV_TREE_MERGE_PHI): New.
17230 * tree-cfg.c (tree_forwarder_block_p): Add a new argument
17231 PHI_WANTED.
17232 (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
17233 calls to tree_forwarder_block_p.
17234 (remove_forwarder_block_with_phi, merge_phi_nodes,
17235 gate_merge_phi, pass_merge_phi): New.
17236 * tree-optimize.c (init_tree_optimization_passes): Add
17237 pass_merge_phi.
17238 * tree-pass.h: Add an extern for pass_merge_phi;
17239
edd5b7da
RH
172402005-01-20 Richard Henderson <rth@redhat.com>
17241
17242 PR target/19418
17243 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
17244 (_mm_castps_pd, _mm_castps_si128): New.
17245 (_mm_castsi128_ps, _mm_castsi128_pd): New.
17246
0f2698d0
RH
172472005-01-20 Richard Henderson <rth@redhat.com>
17248
17249 PR target/19530
17250 * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
17251 __builtin_ia32_vec_init_v2si.
17252 (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
17253 * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
17254 (ix86_init_mmx_sse_builtins): Create it.
17255 (ix86_expand_builtin): Expand it.
17256 (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
17257 * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
17258 (vec_extractv2si_0, vec_extractv2si_1): New.
17259
6b79c03c
RH
172602005-01-20 Richard Henderson <rth@redhat.com>
17261
58b03a2d 17262 PR target/16533
6b79c03c
RH
17263 * config/i386/i386.c (ix86_expand_push): New.
17264 * config/i386/mmx.md (push<MMXMODE>1): New.
17265 * config/i386/sse.md (push<SSEMODE>1): New.
17266 * config/i386/i386-protos.h: Update.
17267
e42febca
KH
172682005-01-20 Kazu Hirata <kazu@cs.umass.edu>
17269
17270 * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
17271 copyright.
17272
f4770271
RH
172732005-01-20 Richard Henderson <rth@redhat.com>
17274
17275 * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
17276 * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
17277
b4bb3199
RH
172782005-01-19 Richard Henderson <rth@redhat.com>
17279
17280 PR target/19350
17281 * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
17282 to V4SFmode in SSE1 fallback load path.
17283
ceda96fc
RH
172842005-01-19 Richard Henderson <rth@redhat.com>
17285
17286 * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
17287 in QImode expansion to ix86_expand_vector_set.
17288 (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
17289
f75959a6
RH
172902005-01-19 Richard Henderson <rth@redhat.com>
17291
17292 PR target/19511
17293 * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
17294 subclass of the input class.
17295 (ix86_secondary_memory_needed): Always true for cross-MMX classes.
17296 Always true for cross-SSE1 classes. Rationalize conditionals.
17297 * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
17298 * config/i386/i386.md (movsi_1): Add MMX/SSE zeros. Fix alternatives
17299 for SSE1. Don't check TARGET_INTER_UNIT_MOVES.
17300 (movdi_2): Add MMX/SSE zeros.
17301 (movdi_1_rex64): Likewise. Don't check TARGET_INTER_UNIT_MOVES.
17302 (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
17303 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
17304 (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
17305 (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
17306 (zero_extendsidi2_rex64_1): Remove.
17307 (MOV0 peephole): Check GENERAL_REG_P.
17308
b100079f
RH
173092005-01-19 Richard Henderson <rth@redhat.com>
17310
17311 PR target/19427
17312 * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
17313 shufps elements.
17314 (ix86_expand_vector_extract): Likewise.
17315
539eaa3a
RH
173162005-01-19 Richard Henderson <rth@redhat.com>
17317
17318 PR middle-end/19304
17319 * expr.c (emit_move_change_mode): New argument force; use
17320 simplify_gen_subreg if true.
17321 (emit_move_via_alt_mode): Merge into ...
17322 (emit_move_via_integer): ... here.
17323 (emit_move_ccmode): Use emit_move_change_mode directly.
17324
72910a0b
RH
173252005-01-19 Richard Henderson <rth@redhat.com>
17326
17327 PR target/19518
17328 * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
17329 (alpha_preferred_reload_class): Handle CONST_VECTOR.
17330 (alpha_emit_set_const_1): Add no_output parameter; don't emit
17331 rtl if true.
17332 (alpha_emit_set_const): Likewise. Make static.
17333 (alpha_emit_set_long_const): Make static.
17334 (alpha_extract_integer): Split out from alpha_expand_mov.
17335 (alpha_split_const_mov): Likewise.
17336 (alpha_expand_mov): Use them. Handle CONST_VECTOR.
17337 (alpha_legitimate_constant_p): New.
17338 * config/alpha/alpha-protos.h: Update.
17339 * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
17340 (LEGITIMATE_CONSTANT_P): Re-implement with a function.
17341 * config/alpha/alpha.md (movsi): Add n alternative.
17342 (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
17343 (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
17344 (splitters for all of the above): Use alpha_split_const_mov.
17345 * config/alpha/predicates.md (non_add_const_operand): New.
17346 (non_zero_const_operand): New.
17347 (input_operand): Use alpha_legitimate_constant_p after reload.
17348
4366cf6d
ZD
173492005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
17350
17351 PR tree-optimization/19038
17352 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
17353 (add_candidate): Add ivs with increment in latch only if
17354 allow_ip_end_pos_p is true.
17355 (determine_iv_cost): Use empty_block_p.
17356
4c7f5fea
DB
173572005-01-19 Daniel Berlin <dberlin@dberlin.org>
17358
17359 * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
17360 (compute_dominance_frontiers): Ditto.
17361
be33b729
RC
173622005-01-19 Ralf Corsepius <ralf.corsepius@rtems.org>
17363
17364 PR target/19529
2cdc2073 17365 * config/sh/t-rtems: New.
be33b729
RC
17366 * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
17367
53dba802
ZD
173682005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
17369
17370 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
17371 the offset of the selected field.
17372
04d38c3b
KH
173732005-01-19 Kazu Hirata <kazu@cs.umass.edu>
17374
17375 * tree-cfg.c (remove_forwarder_block): Fix the check to
17376 prevent a nonlocal label from appearing in the middle of a
17377 basic block.
17378
09f9e288
HPN
173792005-01-19 Hans-Peter Nilsson <hp@axis.com>
17380
17381 PR rtl-optimization/19462
17382 * reorg.c (find_end_label): Create return insn only if
17383 current_function_epilogue_delay_list is empty.
17384
625d4524
PB
173852005-01-19 Paolo Bonzini <bonzini@gnu.org>
17386
17387 * doc/passes.texi: Remove paragraph mentioning new-ra.
17388
e89be13b
JJ
173892005-01-19 Jakub Jelinek <jakub@redhat.com>
17390
49c3b9a8
JJ
17391 PR rtl-optimization/15139
17392 * combine.c: Include params.h.
17393 (count_rtxs): New function.
17394 (record_value_for_reg): If replace_rtx would replace at least
17395 2 occurrences of REG in VALUE and TEM is really large, replace REG with
17396 (clobber (const_int 0)) instead of TEM.
17397 * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
17398 * params.h (MAX_LAST_VALUE_RTL): New.
17399 * Makefile.in (combine.o): Depend on $(PARAMS_H).
17400 * doc/invoke.texi (--param max-last-value-rtl=N): Document.
17401
e89be13b
JJ
17402 PR c/17297
17403 * c-typeck.c (digest_init): Only call build_vector if all constructor
17404 elements are *_CST nodes.
17405 * gimplify.c (gimplify_init_constructor): Likewise.
17406
17407 PR middle-end/19164
17408 * c-typeck.c (digest_init): Only call build_vector if inside_init
17409 is a CONSTRUCTOR.
17410
d74e09c6
TS
174112005-01-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
17412
17413 * toplev.c (init_asm_output): Remove dead #ifdef.
17414
e35b30c7
KK
174152005-01-18 Kaz Kojima <kkojima@gcc.gnu.org>
17416
17417 * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
17418
8c96cd51
EB
174192005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
17420
17421 * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
17422 accessing DECL_FUNCTION_CODE.
17423 * dojump.c (do_jump): Likewise.
17424 * gimplify.c (gimplify_call_expr): Likewise.
17425 * predict.c (expr_expected_value): Likewise.
17426 (strip_builtin_expect): Likewise.
17427 * tree-inline.c (estimate_num_insns_1): Likewise.
17428 * tree-ssa-loop-im.c (stmt_cost): Likewise
17429 * fold-const.c (fold): Test for BUILT_IN_NORMAL.
17430 (tree_expr_nonnegative_p): Likewise.
17431
eb7a7903
EB
174322005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
17433
17434 * config/sparc/sparc.c (load_pic_register): Emit the appropriate
17435 variant of the load_pcrel_sym pattern.
17436 * config/sparc/sparc.md (P macro): Move to the top.
17437 (load_pcrel_sym): Macroize using P.
17438 (save_register_window): Likewise.
17439
7836a61f
AH
174402005-01-18 Aldy Hernandez <aldyh@redhat.com>
17441
17442 * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
17443 ("sordered"): Same.
17444
b4c33883
AP
174452005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
17446
17447 PR C/19472
17448 * c-typeck.c (build_asm_expr): Strip nops off
17449 input memory operands.
17450
56015cee
DE
174512005-01-18 David Edelsohn <edelsohn@gnu.org>
17452
17453 * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
17454 _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
17455 * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
17456 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
17457
de004e6d
JS
174582005-01-18 Joel Sherrill <joel.sherrill@oarcorp.com>
17459
17460 PR target/19379
17461 * config/i386/i386.c (override_options): If the 80387 is disabled,
17462 then do not return FP values using FP registers.
17463
ad616de1
KH
174642005-01-18 Kazu Hirata <kazu@cs.umass.edu>
17465
17466 * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
17467 c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
17468 combine.c, config.gcc, coverage.h, cse.c, cselib.c,
17469 defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
17470 flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
17471 gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
17472 output.h, postreload-gcse.c, postreload.c, recog.c,
17473 resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
17474 targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
17475 tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
17476 tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
17477 tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
17478 tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
17479 tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
17480 unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
17481
5b86a469
KH
17482 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
17483 config/alpha/alpha.c, config/arm/vfp.md,
17484 config/i386/emmintrin.h, config/i386/i386-modes.def,
17485 config/i386/i386-protos.h, config/i386/i386.h,
17486 config/i386/pmmintrin.h, config/i386/ppro.md,
17487 config/i386/predicates.md, config/i386/xmmintrin.h,
17488 config/i860/i860.c, config/ia64/ia64-modes.def,
17489 config/ia64/ia64-protos.h, config/ia64/ia64.h,
17490 config/ia64/ia64.md, config/ia64/itanium1.md,
17491 config/ia64/itanium2.md, config/ia64/predicates.md,
17492 config/iq2000/iq2000.h, config/mips/linux64.h,
17493 config/rs6000/aix41.h, config/rs6000/aix43.h,
17494 config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
17495 config/rs6000/rs6000.c, config/rs6000/rs6000.h,
17496 config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
17497 config/sparc/linux64.h, config/sparc/litecoff.h,
17498 config/sparc/sp64-elf.h, config/sparc/sparc.c,
17499 config/sparc/sparc.h, config/sparc/sparc.md,
17500 config/sparc/sysv4-only.h: Update copyright.
17501
51d7bae6
RH
175022005-01-18 Richard Henderson <rth@redhat.com>
17503
17504 PR target/19496
17505 * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
17506
f5975bd5
ME
175072005-01-18 Marc Espie <espie@openbsd.org>
17508 * config/i386/openbsdelf.h: Typo.
17509
9f61886e
RH
175102005-01-18 Richard Henderson <rth@redhat.com>
17511
17512 * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
17513 special case for sse.
17514 * config/i386/predicates.md (sse_comparison_operator): Likewise.
17515
16630a2c
DN
175162005-01-18 Dorit Naishlos <dorit@il.ibm.com>
17517
17518 * tree-inline.c (estimate_num_insns_1): Added cases for
17519 ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
17520
f917ae96
EB
175212005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
17522
17523 PR rtl-optimization/19296
17524 * combine.c (simplify_comparison): Rewrite the condition under
17525 which a non-paradoxical SUBREG of a PLUS can be lifted when
17526 compared against a constant.
17527
06da3c24
AK
175282005-01-18 Andi Kleen <ak@muc.de>
17529
17530 * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
17531 * c.opt (-Wpointer-sign): Add.
17532 * doc/invoke.texi: (-Wpointer-sign): Add.
17533
ded1c605
UB
175342005-01-18 Uros Bizjak <uros@kss-loka.si>
17535
17536 * config/i386/i386.c (override_options): Revert 2004-11-24 change.
17537 * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
17538 *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
17539 logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
17540 exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
17541 nearbyintsf2): Disable for TARGET_SSE_MATH. Leave patterns enabled
17542 for TARGET_MIX_SSE_I387.
17543 (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
17544 sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
17545 atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
17546 log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
17547 floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
17548 (TARGET_SSE2 && TARGET_SSE_MATH). Leave patterns enabled for
17549 TARGET_MIX_SSE_I387.
17550 (atan2sf3, atan2df3, atan2xf3): Remove register constraints
17551 from expander.
17552
d0405259
UB
175532005-01-18 Uros Bizjak <uros@kss-loka.si>
17554
17555 PR target/19424
17556 * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
17557 Add movaps alternative for xmm reg->reg move.
17558
0bd65483
JL
175592005-01-17 Jeff Law <law@redhat.com>
17560
17561 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
17562 at the end of the main DOM loop rather than just before DOM exits.
17563
e03a46f5
DN
175642005-01-17 Diego Novillo <dnovillo@redhat.com>
17565
17566 PR tree-optimization/19121
17567 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
17568 adding aliases to a name tag, also add them to the pointer's
17569 type tag.
17570 * tree-ssa-copy.c (merge_alias_info): Do not merge flow
17571 sensitive alias info at all. Only check that the two pointers
17572 have compatible pointed-to sets.
17573 * tree-ssa.c (verify_name_tags): Verify that the alias set of
17574 a pointer's type tag is a superset of the alias set of the
17575 pointer's name tag.
17576
696a2ca1
JW
175772005-01-17 James E Wilson <wilson@specifixinc.com>
17578
17579 PR target/19357
17580 * config/ia64/ia64.md (movxf): Handle general register source. Adjust
17581 comment to document why.
17582
115a33c2
RH
175832005-01-17 Richard Henderson <rth@redhat.com>
17584
17585 * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
17586 sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
17587 sse2_vmsmaxv2df3_finite, sminv2df3_finite,
17588 sse2_vmsminv2df3_finite): New.
17589 (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
17590 sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
17591 Force op1 into register.
17592
ded73657
KC
175932005-01-17 Kelley Cook <kcook@gcc.gnu.org>
17594
17595 * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
17596 bubblestrap from always rebuilding build directory.
17597
d4f52f0e
UW
175982005-01-17 Ulrich Weigand <uweigand@de.ibm.com>
17599
17600 * config/s390/s390.md ("*clc"): Remove incorrect '='.
17601 ("*cmpmem_short"): Likewise.
17602
740ce53d
SB
176032005-01-17 Steven Bosscher <stevenb@suse.de>
17604
17605 * basic-block.h: Document BB_* flags.
17606 * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
17607 use an sbitmap instead.
17608 * sched-rgn.c (compute_trg_info): Likewise.
17609
2184a120
RS
176102005-01-17 Richard Sandiford <rsandifo@redhat.com>
17611
17612 * config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
17613 redundant target_cpu_default and extra_parts lines. Use the default
17614 "from-abi" ISA.
17615 * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
17616 (SUBTARGET_EXTRA_SPECS): Delete.
17617 (DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
17618 (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
17619 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
17620 and "n32" for -mabi=n32.
17621
812ad338
ILT
176222005-01-17 Ian Lance Taylor <ian@airs.com>
17623
17624 PR c/5675
17625 * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
17626 fold constant variables into initial values.
17627
26e75214
KH
176282005-01-17 Kazu Hirata <kazu@cs.umass.edu>
17629
17630 * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
17631
f8ef82ea
KH
17632 * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
17633 through the statements backward.
17634
81bafd36
ILT
176352005-01-17 Ian Lance Taylor <ian@airs.com>
17636
17637 PR middle-end/13127:
17638 * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
17639 a variable set to the return value of the inlined function.
17640
edb81165
MD
176412005-01-17 Mark Dettinger <dettinge@de.ibm.com>
17642
17643 * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
17644 when modes are tieable.
17645
658acbb2
RM
176462005-01-17 Ranjit Mathew <rmathew@hotmail.com>
17647
17648 * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
17649 of pthread_create to find out if threads are enabled.
17650 * gthr-posix95.h (__gthread_active_p): Likewise.
17651
cd280abb
PB
176522005-01-17 Paolo Bonzini <bonzini@gnu.org>
17653
17654 * common.opt (-fnew-ra): Remove.
17655 * ra*.*: Remove.
17656 * toplev.h (flag_new_regalloc): Remove.
17657 * Makefile.in (ra*.*): Don't mention.
17658 * passes.c (rest_of_handle_new_regalloc): Remove.
17659 (rest_of_handle_combine, rest_of_compilation): Always consider
17660 flag_new_regalloc as false.
17661 * doc/invoke.texi: Don't document -fnew-ra.
17662
176632005-01-17 Paolo Bonzini <bonzini@gnu.org>
c80a0f26
PB
17664
17665 * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
17666 last parameter to reg_scan.
17667 * loop.c (loop_optimize): Likewise.
17668 * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
17669 rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
17670 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
17671 rest_of_handle_gcse, rest_of_handle_loop_optimize,
17672 rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
17673 * regclass.c (reg_scan): Likewise, for the declaration.
17674 * rtl.h (reg_scan): Likewise, for the prototype.
17675
724e4d44
KH
176762005-01-17 Kazu Hirata <kazu@cs.umass.edu>
17677
17678 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
17679 mark_dfs_back_edges.
17680
7f233d9f
DB
176812005-01-16 Daniel Berlin <dberlin@dberlin.org>
17682
17683 * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
17684 (compute_avail): Uses don't go in tmp_gen.
17685
6f0947e4
SB
176862005-01-16 Steven Bosscher <stevenb@suse.de>
17687
17688 * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
17689 loop to look for a free slot in a page entry.
17690
083b6717
JDA
176912005-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17692
17693 PR target/16304
17694 * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
17695 * toplev.c (compile_file): Call process_pending_assemble_output_defs
17696 just before targetm.asm_out.file_end.
17697 * tree.h (process_pending_assemble_output_defs): Declare.
17698 * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
17699 New functions.
17700 (assemble_alias): Defer generation of assembly code for defines when
17701 TARGET_DEFERRED_OUTPUT_DEFS is true.
17702 * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
17703 * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
17704 * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
17705
2d5ca9a0
JDA
177062005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17707
83c32f2e
JDA
17708 PR target/19336
17709 * pa.c (pa_scalar_mode_supported_p): New function.
17710 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
17711 * pa.h (MIN_UNITS_PER_WORD): Add comment.
17712
2d5ca9a0
JDA
17713 * pa-protos.h (prefetch_operand): Delete.
17714 (prefetch_cc_operand, prefetch_nocc_operand): New declations.
17715 * pa.c (prefetch_operand): Delete.
17716 (prefetch_cc_operand, prefetch_nocc_operand): New functions.
17717 * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
17718 (PREDICATE_CODES): Delete prefetch_operand. Add prefetch_cc_operand
17719 and prefetch_nocc_operand.
17720 * pa.md (prefetch): Rework to avoid reload problems handling short
17721 displacements when a cache control completer needs to be provided.
17722 (prefetch_32, prefetch_64): Delete.
17723 (prefetch_cc, prefetch_nocc): New patterns.
17724
6a9836b1
DE
177252005-01-15 David Edelsohn <edelsohn@gnu.org>
17726
17727 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
17728
22f549fd
JDA
177292005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17730
17731 PR ada/19388
17732 * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
17733 exceeds maximum alignment for global common data.
17734 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
17735 * som.h (MAX_OFILE_ALIGNMENT): Likewise.
17736
19e1af6e
RS
177372004-01-15 Roger Sayle <roger@eyesopen.com>
17738
17739 * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
17740
778f72f2
RS
177412004-01-15 Roger Sayle <roger@eyesopen.com>
17742
17743 * harg-reg-set.h (reg_class_names): Prototype global array.
17744 * regclass.c (reg_class_names): Declare here and initialize to
17745 REG_CLASS_NAMES.
17746 (dump_regclass): Remove local declaration of reg_class_names.
17747 (regclass): Likewise.
17748 * cfg.c (dump_flow_info): Likewise.
17749 * ra-debug.c (reg_class_names): Likewise.
17750 * regrename.c (reg_class_names): Likewise.
17751 * reload.c (reg_class_names): Likewise.
17752 * reload1.c (spill_failure): Likewise.
17753 * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
17754
9c3c3dcc
UW
177552005-01-15 Ulrich Weigand <uweigand@de.ibm.com>
17756
17757 * config/s390/s390.md ("reload_outti"): Remove predicate for
17758 output operand. Abort if operand is not a MEM.
17759 ("reload_outdi", "reload_outdf"): Likewise.
17760
378b66d4
ME
177612005-01-15 Marc Espie <espie@openbsd.org>
17762
17763 * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
17764 (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
17765 * config/openbsd.h: Fix C++ includes for native configurations.
17766 Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
17767 Add trampoline support.
17768 * config/i386/openbsdelf.h: New.
17769
60828cbd
ME
177702005-01-15 Marc Espie <espie@openbsd.org>
17771
17772 * collect2.c (main): Explicitly parse -dynamic-linker option.
17773
75b9aa9f
JJ
177742005-01-15 Jakub Jelinek <jakub@redhat.com>
17775
17776 PR tree-optimization/19060
17777 * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
17778 Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
17779 (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
17780 and handle extract_range_from_cond returning false.
17781 * fold-const.c (fold): Optimize comparisons with min/max even for
17782 width > HOST_BITS_PER_WIDE_INT.
17783
4ba9f2a1
RC
177842005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
17785
17786 * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
2cdc2073 17787 * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
4ba9f2a1
RC
17788 Remove little endian multilib variants.
17789 Add mips32 multilib variant.
17790
bbc8fb00
KH
177912005-01-15 Kazu Hirata <kazu@cs.umass.edu>
17792
17793 * explow.c (copy_all_reg, stabilize): Remove.
17794 * expr.h: Remove the corresponding prototypes.
17795
6a29dc8b
KH
17796 * rtlanal.c (regs_set_between_p): Remove.
17797 * rtl.h: Remove the corresponding prototype.
17798
165a5bad
DE
177992005-01-14 David Edelsohn <edelsohn@gnu.org>
17800
17801 * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
17802 to rs6000_nonimmediate_operand.
17803 * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
17804 rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
17805 * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
17806 rs6000_nonimmediate_operand.
17807 * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
17808 rs6000_nonimmediate_operand.
17809
7f9e6d2a
AP
178102005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
17811
17812 * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
17813
54b695e7
AH
178142005-01-14 Aldy Hernandez <aldyh@redhat.com>
17815
17816 * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
17817 on e500v2.
17818 (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
17819 (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
17820
17821 * config/rs6000/rs6000.c (invalid_e500_subreg): New.
17822 (rs6k_nonimmediate_operand): New.
17823 (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
17824 correctly.
17825 (legitimate_lo_sum_address_p): Same.
17826 (rs6000_legitimize_address): Same.
17827 (rs6000_legitimize_reload_address): Same.
17828 (rs6000_legitimate_address): Same.
17829 (spe_build_register_parallel): Pass DF and DC modes in a DI
17830 register.
17831
17832 * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
17833 to rs6k_nonimmediate_operand.
17834
17835 * config/rs6000/spe.md ("*frob_df_di"): New.
17836 ("*frob_di_df"): New.
17837 ("*frob_di_df_2"): New.
17838 ("*mov_sidf_e500_subreg0"): New.
17839 ("*mov_sidf_e500_subreg4"): New.
17840 ("*movdf_e500_double"): Change predicate to
17841 rs6k_nonimmediate_operand.
17842
05075d4e
AH
178432005-01-14 Aldy Hernandez <aldyh@redhat.com>
17844
17845 * postreload.c (move2add_note_store): Only call
17846 trunc_int_for_mode on scalar integers.
17847
a28fee03
SB
178482005-01-14 Steven Bosscher <stevenb@suse.de>
17849
17850 * tree-ssa-dce.c (visited_control_parents): New sbitmap to
17851 replace BB_VISITED uses.
17852 (find_obviously_necessary_stmts): Don't clear BB_VISITED.
17853 (propagate_necessity): Check the bitmap instead of BB_VISITED.
17854 (tree_dce_done): Free visited_control_parents.
17855 (perform_tree_ssa_dce): Allocate and clear it.
17856 * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
17857 (compute_antic): Iterate from here using a DFS. Use an sbitmap
17858 instead of BB_VISITED.
17859
103a83e0
KH
178602005-01-14 Kazu Hirata <kazu@cs.umass.edu>
17861
17862 * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
17863 rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
17864 Remove unused prototypes.
17865
b5a5beb9
AH
178662005-01-14 Aldy Hernandez <aldyh@redhat.com>
17867
17868 * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
17869 64-bit register usage.
17870 (spe_func_has_64bit_regs_p): Add FIXME note.
17871
5ca18999
AH
178722005-01-14 Aldy Hernandez <aldyh@redhat.com>
17873
17874 * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
17875 flag_finite_math_only with flag_unsafe_math_optimizations.
17876
783d2650
J
178772005-01-14 J. D. Johnston <jjohnst@us.ibm.com>
17878
17879 * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
17880 end-of-stack check.
17881 (__tpf_eh_return): Copy TPF private stack area from the module
17882 boundary stack frame. Add check for when module addresses are
17883 equal, but no stub address is found.
17884
b12a00f1
RE
178852005-01-14 Richard Earnshaw <rearnsha@arm.com>
17886
17887 PR target/7525
17888 * arm.h (struct machine_function): Add call_via field.
17889 (thumb_call_via_label): Declare.
17890 * arm.c (thumb_call_via_label): New variable.
17891 (thumb_call_reg_needed): New variable.
17892 (arm_output_function_epilogue): For Thumb code, output any per-function
17893 call-indirect trampolines.
17894 (thumb_call_via_reg): New function.
17895 (arm_file_end): New function.
17896 (TARGET_ASM_FILE_END): Call arm_file_end.
17897 (aof_file_end): Likewise.
17898 * arm-protos.h (thumb_call_via_reg): Declare.
2cdc2073 17899 * arm.md (call_reg_thumb, call_value_reg_thumb): Call
b12a00f1
RE
17900 thumb_call_via_reg in normal case.
17901
08a0c536
JJ
179022005-01-14 Jakub Jelinek <jakub@redhat.com>
17903
17904 PR middle-end/19084
17905 PR rtl-optimization/19348
17906 * recog.c (peephole2_optimize): Do global life update if some peephole
17907 decides it doesn't need at least one of its inputs and that change
17908 influences liveness at the start of the basic block.
17909
17910 * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
17911 arguments instead of 1.
17912
eebeecac
EB
179132005-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
17914
17915 PR middle-end/18820
17916 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
17917 zero for nested functions needing a static chain or functions
17918 with a non-constant address.
17919
a0ee8b5f
RS
179202005-01-13 Roger Sayle <roger@eyesopen.com>
17921
17922 * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
17923 (and (sign_extend X) C) into (zero_extend (and X C)).
17924
92018897
DB
179252005-01-13 David O'Brien <obrien@FreeBSD.org>
17926
17927 * config/freebsd-spec.h: Make KSE pthread lib logic the default.
17928
eaa49b49
RH
179292005-01-13 Richard Henderson <rth@redhat.com>
17930
2d1d3cb2 17931 PR target/19009
eaa49b49
RH
17932 PR target/19250
17933 PR target/19252
17934 * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
17935 bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
17936 not just TARGET_SSE.
17937 (cmpfp_i_387): Rename from cmpfp_i. Move after sse patterns.
17938 (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
17939 (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
17940 (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
17941 (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
17942 (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
17943 (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
17944 fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
17945 (movdicc_c_rex64): Rename with '*'.
17946 (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
17947 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
17948 (movsfcc_1_387): Rename from movsfcc_1.
17949 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
17950 (movdfcc_1, movdfcc_1_rex64): Add check for 387.
17951 (sminsf3, smaxsf3, smindf3, smaxdf3): New.
17952 (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
17953 mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
17954 maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
17955 sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
17956 sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
17957 sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
17958 sse_movdfcc_const0_4): Remove.
17959 * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
17960 recognize min/max early. Update for changed sse cmove patterns.
17961 (ix86_split_sse_movcc): New.
17962 * config/i386/i386-protos.h: Update.
17963
1dff80c0
SB
179642005-01-13 Steven Bosscher <stevenb@suse.de>
17965
17966 * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
17967 (fix_stmt_v_may_defs): Likewise.
17968
bb129a4f
RH
179692005-01-13 Richard Henderson <rth@redhat.com>
17970
17971 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
17972 for converting the mask.
17973
2cba2c8b
DE
179742005-01-13 David Edelsohn <edelsohn@gnu.org>
17975
17976 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
17977 definition to 600.
17978
ed9b5396
RH
179792005-01-13 Richard Henderson <rth@redhat.com>
17980
17981 * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
17982 IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
17983 IX86_BUILTIN_MOVDQ2Q): Remove.
17984 (IX86_BUILTIN_VEC_EXT_V4SI): New.
17985 (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
2cdc2073 17986 (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
ed9b5396
RH
17987 shuffling.
17988 * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
17989 (sse2_pextrw): Fix immediate constraint.
17990 (sse2_loadq, sse2_loadq_rex64): Remove.
17991 * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
17992 Use __builtin_ia32_vec_ext_<size>.
17993 (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
17994
17284759
AH
179952005-01-13 Aldy Hernandez <aldyh@redhat.com>
17996
17997 * function.c (assign_parm_setup_block): Look inside original
17998 entry_parm when inspecting PARALLEL.
17999
5d58d2f8
RC
180002005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
18001 Joel Sherrill <joel@oarcorp.com>
18002
18003 PR target/19399
18004 * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
18005 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
18006 rtems_gxx_recursive_mutex_init.
18007 (__gthread_recursive_mutex_lock): New function.
18008 (__gthread_recursive_mutex_trylock): Likewise.
18009 (__gthread_recursive_mutex_unlock): Likewise.
18010
52786878
RC
180112005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
18012
18013 * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
18014
16d8386b
JB
180152005-01-13 Jan Beulich <jbeulich@novell.com>
18016
18017 * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
18018 (ashrti3_internal): Indicate output is early clobber. Generate result
18019 into output rather than first input. Use move for low word of output
18020 if shift count is exactly 64.
18021 (lshrti3_internal): Likewise.
18022
0149f412
HPN
180232005-01-13 Hans-Peter Nilsson <hp@bitrange.com>
18024
18025 PR target/18329
18026 PR target/18330
18027 * reload1.c (delete_output_reload): Don't delete an output reload
18028 if the pseudo lives longer than a single basic block. Adjust and
18029 improve wording of comment.
18030
e1e04267
AP
180312005-01-12 Andrew Pinski <pinskia@physics.uc.edu>
18032
18033 PR target/19334
18034 * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
18035 of TYPE_SIZE where we mean the number of bytes.
18036
640019aa
AH
180372005-01-12 Aldy Hernandez <aldyh@redhat.com>
18038
18039 * function.c (assign_parm_setup_block): Relax condition on
18040 multi-register optimization.
18041
98e20ffd
NC
180422005-01-12 Nick Clifton <nickc@redhat.com>
18043
18044 * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
18045 an "in_delay_slot" attribute of "no" to prevent them being used in
18046 delay slots. This is forbidden because they might generate
18047 exceptions.
18048
409f61cd
AM
180492005-01-12 Alan Modra <amodra@bigpond.net.au>
18050
18051 PR target/19389
18052 * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
18053 with r->Y and Y->r.
18054
ef6f5655
NC
180552005-01-12 Nick Clifton <nickc@redhat.com>
18056
18057 * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
18058 passed on to GAS) but do not define, as GAS no longer supports or
18059 needs the -m2000 option.
18060
157b3890
RS
180612005-01-11 Roger Sayle <roger@eyesopen.com>
18062
18063 * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
18064 type as args of unprototyped builtins aren't automatically promoted.
18065 (fold_builtin_abs): Likewise.
18066
9a43b902
KG
180672005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18068
18069 * Makefile.in: Set a `build-warn' variable.
18070
0a915e3d
ZD
180712005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
18072
18073 PR tree-optimization/17949
18074 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
18075 (find_interesting_uses_address): Use it.
18076
f351bfed
AH
180772005-01-11 Aldy Hernandez <aldyh@redhat.com>
18078
18079 * regrename.c (kill_value): Handle subreg's that won't simplify.
18080
eb701deb
RH
180812005-01-11 Richard Henderson <rth@redhat.com>
18082
18083 PR target/13366
18084 * config/i386/i386.h (enum ix86_builtins): Move ...
18085 * config/i386/i386.c: ... here.
18086 (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
18087 IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
18088 IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
18089 IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
18090 IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
18091 IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
18092 IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
18093 IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
18094 IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
18095 IX86_BUILTIN_LOADDDUP): Remove.
18096 (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
18097 IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
18098 IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
18099 IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
18100 IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
18101 (ix86_init_builtins): Make static.
18102 (ix86_init_mmx_sse_builtins): Update for changed builtins.
18103 (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
18104 if all the modes match. Otherwise, fake it.
18105 (get_element_number, ix86_expand_vec_init_builtin,
18106 ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
18107 (ix86_expand_builtin): Make static. Update for changed builtins.
18108 (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
18109 operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
18110 (ix86_expand_vector_init_duplicate): New.
18111 (ix86_expand_vector_init_low_nonzero): New.
18112 (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
18113 Split out from ix86_expand_vector_init; handle integer modes.
18114 (ix86_expand_vector_init): Use them.
18115 (ix86_expand_vector_set, ix86_expand_vector_extract): New.
18116 * config/i386/i386-protos.h: Update.
18117 * config/i386/predicates.md (reg_or_0_operand): New.
18118 * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
18119 (movv2sf_internal): Likewise. And a splitter to match them all.
18120 (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
18121 vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
18122 vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
18123 vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
18124 (mmx_pinsrw): Fix operand ordering.
18125 * config/i386/sse.md (movv4sf splitter): Use direct pattern,
18126 rather than sse_loadss expander.
18127 (movv2df splitter): Similarly.
18128 (sse_loadss, sse_loadlss): Remove.
18129 (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
18130 (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
18131 (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
18132 (sse3_movddup): Rename with '*'.
18133 (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
18134 (sse2_loadsd): Remove.
18135 (vec_dupv2df_sse3): Rename from sse3_loadddup.
18136 (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
18137 (sse2_pinsrw): Fix argument ordering.
18138 (sse2_loadld, sse2_loadq): Add sse1 alternatives.
18139 (sse2_stored): Remove 'r' destination.
18140 (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
18141 vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
18142 vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
18143 vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
18144 vec_extractv16qi, vec_initv16qi): New.
18145
18146 * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
2cdc2073 18147 (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
eb701deb
RH
18148 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
18149 constructor form.
18150 (_mm_load_pd, _mm_store_pd): Use plain dereference.
18151 (_mm_load_si128, _mm_store_si128): Likewise.
18152 (_mm_load1_pd): Use _mm_set1_pd.
18153 (_mm_load_sd): Use _mm_set_sd.
18154 (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
18155 (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
18156 (_mm_set_epi64): Use _mm_set_epi64x.
18157 (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
18158 _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
18159 _mm_setr_epi8): Use _mm_set_foo form.
18160 (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
18161 (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
18162 (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
18163 (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
18164 * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
18165 (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
18166 (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
18167 (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
18168 (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
18169 * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
18170 (_mm_movedup_pd): Use _mm_shuffle_pd.
18171 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
18172 _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
18173 (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
18174 _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
18175 Use _mm_setzero_ps.
18176 (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
18177 (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
18178 (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
18179 (_mm_store_ps): Use raw dereference.
18180 (_mm_store1_ps): Use _mm_storeu_ps.
18181 (_mm_storer_ps): Use _mm_store_ps.
18182 (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
18183 (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
18184
d9e4e4f5
SS
181852005-01-11 Stan Shebs <shebs@apple.com>
18186
18187 * config/rs6000/rs6000.c (machopic_output_stub): Issue
18188 ldu instead of lwzu if 64-bit -mdynamic-no-pic.
18189
85962ac8
AP
181902005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
18191
18192 PR target/18761
18193 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
18194 Skip all DECLs except for FIELD_DECLs.
18195
6b78f6be
AK
181962005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
18197
18198 * config/s390/s390.c (override_options): Return error if
18199 -mbackchain, -mpacked-stack and -mhard-float are used together.
18200 (s390_va_start): Remove the backchain && packed-stack special case.
18201 (s390_gimplify_va_arg): Likewise.
18202 * doc/invoke.texi: Remove the ABI incompatibility note.
18203
66480e91
AK
182042005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
18205
fc474307 18206 * config/s390/s390.c (struct s390_frame_layout): Remove
66480e91
AK
18207 save_backchain_p.
18208 (s390_frame_info, s390_emit_prologue): Replace occurrences of
18209 save_backchain_p with TARGET_BACKCHAIN.
18210
bfc45551
AM
182112005-01-11 Alan Modra <amodra@bigpond.net.au>
18212
18213 PR target/18916
18214 * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
18215 * expr.h (struct locate_and_pad_arg_data): Add "boundary".
18216 * function.c (locate_and_pad_parm): Set new field.
18217 (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
18218 Tweak where_pad test to include "none". Always set mem align for
18219 stack_parm.
18220 (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
18221 not sufficient for type.
18222 (assign_parm_setup_block): If stack_parm is zero on entry, always
18223 make a new stack local. Block move old stack parm if necessary
18224 to new aligned stack local.
18225 (assign_parm_setup_stack): Use a block move to handle
18226 potentially misaligned entry_parm.
18227 (assign_parms_unsplit_complex): Specify required alignment when
18228 creating stack local.
18229 * calls.c (compute_argument_addresses): Override alignment of stack
18230 arg calculated from its type with the alignment given by
18231 FUNCTION_ARG_BOUNDARY.
18232 (store_one_arg): Likewise.
18233
d3f6e07b 182342005-01-11 Jan Beulich <jbeulich@novell.com>
bfc45551 18235
d3f6e07b
JB
18236 * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
18237 Change respective itanium_class attribute to ialu.
18238 (shladdp4_internal): New.
18239 * config/ia64/predicates.md (shladd_log2_operand): New.
18240
201dd46b
RH
182412005-01-11 Richard Henderson <rth@redhat.com>
18242
18243 * expr.c (store_constructor): Use rtvec_alloc instead of
18244 alloca+gen_rtvec_v, and an incorrect number passed to alloca.
18245
35c0104b
KH
182462005-01-11 Kazu Hirata <kazu@cs.umass.edu>
18247
18248 * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
18249
abb8b19a
AM
182502005-01-11 Alan Modra <amodra@bigpond.net.au>
18251
18252 * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
18253 * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
18254 (TARGET_RWRELOC): Define.
18255 (ia64_rwreloc_section_type_flags): Delete.
18256 (ia64_section_type_flags): New function.
18257 * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
18258 (TARGET_RWRELOC): Define.
18259
b1eae416
DM
182602005-01-10 David Mosberger <davidm@hpl.hp.com>
18261
18262 PR target/18987
18263 * config/ia64/ia64.c (process_set): For alloc insn, only call
18264 process_epilogue is !frame_pointer_needed.
18265
18d00205
RS
182662005-01-10 Roger Sayle <roger@eyesopen.com>
18267
18268 PR c++/19355
18269 * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
18270 unary operator and can't be treated as a binary/comparison operator.
18271
b3a1ca49
RH
182722005-01-10 Richard Henderson <rth@redhat.com>
18273
18274 * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
18275 (ix86_return_in_memory): Likewise.
18276 (function_arg_advance): Likewise. Mirror structure in function_arg
18277 for choosing register to advance.
18278
1618f948
KH
182792005-01-10 Kazu Hirata <kazu@cs.umass.edu>
18280
18281 * tree-vectorizer.c, tree.def: Fix comment typos.
18282
98fd0d70
MD
182832005-01-10 Mark Dettinger <dettinge@de.ibm.com>
18284
18285 * config/s390/s390.c (struct processor_costs): 4 new fields:
18286 ddbr, ddr, debr, der.
18287 (s390_rtx_costs): More precise handling of divide instructions.
18288
99757961
DE
182892005-01-10 David Edelsohn <edelsohn@gnu.org>
18290
18291 * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
18292
826eb7ed
JB
182932005-01-10 Jan Beulich <jbeulich@novell.com>
18294
18295 * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
18296 names resulting from -ffunction-sections/-fdata-sections and linkonce
18297 ones.
18298 * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
18299 based on the section name. Rearrange the section name comparison logic
18300 slightly so that each section name is compared against at most once.
18301
068d4f38
BE
183022005-01-10 Ben Elliston <bje@au.ibm.com>
18303
18304 * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
18305 targets for which -fPIC reduces limitations on the GOT size.
18306
351bae3d
FH
183072005-01-09 Falk Hueffner <falk@debian.org>
18308
18309 * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
18310 X/C1 cmpop C2.
18311
7142ae77
DE
183122005-01-09 David Edelsohn <edelsohn@gnu.org>
18313
18314 PR target/18720
18315 * collect2.c (main): Set aixrtl_flag for -brtl option.
18316 (resolve_lib_name): Search for .so file extension before .a
18317 if aixrtl_flag set.
18318
5a3ed97a
DN
183192005-01-09 Dorit Naishlos <dorit@il.ibm.com>
18320
18321 * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
18322 (vect_analyze_data_refs_alignment): Add dump prints.
18323
db5dc63d
IR
183242005-01-09 Ira Rosen <irar@il.ibm.com>
18325
fc474307 18326 * tree-vectorizer.c (vect_analyze_offset_expr): Use
db5dc63d
IR
18327 expr_invariant_in_loop_p.
18328 Initialize outputs first thing in the function.
18329 (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
18330 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
fc474307 18331 (vect_analyze_pointer_ref_access): Check that the initial condition of
db5dc63d
IR
18332 the access function is loop invariant.
18333
80e8bb90
RH
183342005-01-09 Richard Henderson <rth@redhat.com>
18335
18336 * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
18337 (ix86_expand_builtin): Likewise. Frob MASKMOVQ wrt the input mem
18338 just like MASKMOVDQU. Return plain zero for MMX_ZERO.
18339 * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
18340 mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
18341 movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
18342 movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
18343 sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
18344 ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
18345 mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
18346 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
18347 sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
18348 mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
18349 mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
18350 gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
18351 ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
18352 mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
fc474307 18353 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
80e8bb90
RH
18354 mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
18355 eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
18356 pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
18357 pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
18358 pswapdv2sf2): Move to mmx.md; rename as necessary with leading
18359 mmx_ prefix.
18360 (mmx_clrdi, pavgusb): Remove.
fc474307 18361 (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
80e8bb90
RH
18362 with leading sse_ prefix.
18363 * config/i386/sse.md: Receive them.
18364 * config/i386/mmx.md: New file.
18365 (MMXMODE12, MMXMODE24, mmxvecsize): New.
18366 (subrv2sf3): Turn into expander for normal subtraction.
18367 (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
18368 mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
18369 mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
18370 mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
18371 commutative; use ix86_binary_operator_ok.
18372 (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
18373 mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
18374 mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
fc474307 18375 mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
80e8bb90
RH
18376 mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
18377 Macroize from existing patterns; use ix86_binary_operator_ok.
18378 (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
18379 (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
18380 mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise. Model
18381 with vec_select+vec_concat.
18382 (mmx_pshufw, mmx_pshufw_1): Likewise.
18383 (mmx_uavgv8qi3): Merge pavgusb. Model correcty.
18384 (mmx_uavgv4hi3): Model correctly.
18385 * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
18386 _mm_xor_si64): Remove casts.
18387
eb0bc7af
ZD
183882005-01-09 Zdenek Dvorak <dvorakz@suse.cz>
18389
18390 PR tree-optimization/19224
18391 * tree-scalar-evolution.c (get_instantiated_value,
18392 set_instantiated_value): New functions.
18393 (instantiate_parameters_1): Cache the results.
18394 (instantiate_parameters, resolve_mixers): Initialize and free
18395 the cache.
18396
d1c9ce9f
DE
183972005-01-08 David Edelsohn <edelsohn@gnu.org>
18398
18399 * config/i386/i386.md (addhi_4): Correct reference in comment.
18400 (addqi_4): Same.
18401
ef719a44
RH
184022005-01-08 Richard Henderson <rth@redhat.com>
18403
18404 * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
18405 (_mm_cvtsi128_si64x): Likewise.
18406 (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
18407 _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
18408 the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
18409 * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
18410 * config/i386/i386-protos.h: Update.
18411 * config/i386/i386.c (print_operand): Add 'H'.
18412 (ix86_fixup_binary_operands): Split out from ...
18413 (ix86_expand_binary_operator): ... here.
18414 (ix86_fixup_binary_operands_no_copy): New.
18415 (ix86_expand_fp_absneg_operator): Handle vector mode results.
18416 (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
18417 (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
18418 (safe_vector_operand): Use CONST0_RTX.
18419 (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
18420 (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
18421 CODE_FOR_sse2_maskmovdqu. Special case SSE version of MASKMOVDQU
18422 expansion. Update names for sse{,2,3}_ prefixes. Remove *maskncmp*
18423 special cases.
18424 * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
18425 (IX86_BUILTIN_CMPNGESS): New.
18426 * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
18427 (attr type): Add sselog1.
18428 (attr unit, attr memory): Handle it.
18429 (movti, movti_internal, movti_rex64): Move near other integer moves.
18430 (movtf, movtf_internal): Move near other fp moves.
18431 (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
18432 vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
fc474307 18433 movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
ef719a44
RH
18434 movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
18435 sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
18436 sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
18437 sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
18438 mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
18439 rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
fc474307
EC
18440 sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
18441 sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
18442 sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
ef719a44
RH
18443 vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
18444 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
18445 cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
18446 cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
18447 vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
18448 vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
18449 sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
18450 sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
18451 cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
18452 cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
18453 cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
18454 cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
18455 ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
18456 subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
18457 smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
18458 sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
18459 sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
fc474307 18460 sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
ef719a44
RH
18461 gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
18462 ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
18463 ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
fc474307 18464 sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
ef719a44
RH
18465 sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
18466 sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
fc474307 18467 sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
ef719a44
RH
18468 sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
18469 sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
18470 sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
18471 mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
18472 addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
18473 movsldup, lddqu, loadddup, movddup): Move to sse.md. Any with
18474 non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
18475 same time.
18476 (SSEPUSH, push<SSEPUSH>): Remove.
18477 (MMXPUSH, push<MMXPUSH>): Remove.
18478 (sse_movaps, sse_movaps_1, sse_movups): Remove.
18479 (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
18480 (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
18481 (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
18482 (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
18483 (maskncmpv2df3, vmmaskncmpv2df3): Remove.
18484 (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
18485 (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
18486 * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
18487 (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
18488 * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
18489 (ppro_sse_log_V4SF_load): Similarly. Handle sselog1.
18490 (ppro_sse_log_V4SF): Handle sselog1.
18491 * config/i386/predicates.md (const_0_to_1_operand): New.
18492 (const_0_to_255_mul_8_operand): New.
18493 (const_1_to_31_operand): Rename from const_int_1_31_operand.
18494 (const_2_to_3_operand, const_4_to_7_operand): New.
18495 * config/i386/sse.md: New file.
18496 (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
18497 (sse_movups): Rename from sse_movups_1.
18498 (sse_loadlss): Rename from sse_loadss_1.
18499 (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
18500 from the name.
18501 (negv4sf2): Use ix86_expand_fp_absneg_operator.
18502 (absv4sf2, negv2df, absv2df): New.
18503 (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
18504 (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
18505 iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
18506 smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
18507 umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
18508 (sse3_addsubv4sf3): Model correctly.
18509 sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
18510 sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
18511 (sse_movhlps): Model with vec_select+vec_concat.
fc474307 18512 (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
ef719a44
RH
18513 sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
18514 sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
18515 sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
18516 sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
fc474307 18517 sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
ef719a44
RH
18518 sse2_pshufhw_1): Likewise.
18519 (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
18520 (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
18521 sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
18522 ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
18523 sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
fc474307 18524 ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
ef719a44
RH
18525 (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
18526 sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
18527 mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
18528 sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
18529 sminv8hi3): Mark commutative
18530 operands. Use ix86_binary_operator_ok.
18531 (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
18532 sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
18533 sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
18534 sse2_punpcklqdq): Allow operand2 in memory.
18535 (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
18536 sse2_movsd): Add memory alternatives.
18537 (sse_storelps): Turn expander into an insn; split after reload.
18538 (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
18539 (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
18540
080a5bb0
EB
185412005-01-08 Eric Botcazou <ebotcazou@libertysurf.fr>
18542
18543 * configure.ac (DWARF-2 debug_line): Use objdump.
18544 * configure: Regenerate.
18545
e79b60a7
DN
185462005-01-08 Jeff Law <law@redhat.com>
18547 Diego Novillo <dnovillo@redhat.com>
18548
a6331d85 18549 PR tree-optimization/18241
e79b60a7
DN
18550 * tree-nrv.c (tree_nrv): Ignore volatile return values.
18551 * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
18552 statements with volatile operands.
18553 * tree-ssa-operands.c (add_stmt_operand): Do add volatile
18554 operands after marking a statement with has_volatile_ops.
18555
4634cf7e
RS
185562005-01-08 Roger Sayle <roger@eyesopen.com>
18557
18558 * tree.c (int_fits_type_p): Always honor integer constant
18559 TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
18560
88c0f1c6
RS
185612005-01-08 Roger Sayle <roger@eyesopen.com>
18562
18563 * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
18564 the latent bug in rtl_delete_block has been resolved.
18565
37e30acc
RS
185662005-01-08 Richard Sandiford <rsandifo@redhat.com>
18567
18568 * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
18569 (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
18570
943cb1d0
RS
185712005-01-08 Richard Sandiford <rsandifo@redhat.com>
18572
18573 * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
18574 library as @multilib_dir@/$(SHLIB_SONAME).
18575
1b5c0152
EB
185762005-01-07 Eric Botcazou <ebotcazou@libertysurf.fr>
18577
18578 * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
18579 * configure: Regenerate.
18580
b827788f
JJ
185812005-01-07 Jakub Jelinek <jakub@redhat.com>
18582
18583 * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
18584 TYPE_MODE.
18585
4937d02d
DE
185862005-01-07 David Edelsohn <edelsohn@gnu.org>
18587
18588 PR target/13674
18589 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
18590 Convert non-word aligned offset address using ld/std into
18591 indirect address.
18592
db396999
RH
185932005-01-07 Richard Henderson <rth@redhat.com>
18594
18595 * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
18596
4600cc14
RS
185972005-01-07 Richard SAndiford <rsandifo@redhat.com>
18598
18599 * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
18600
8870e212
JJ
186012005-01-07 Jakub Jelinek <jakub@redhat.com>
18602
2a0958c5
JJ
18603 PR tree-optimization/19283
18604 * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
18605 is not shorter than the original type.
18606
ebc0c8bb
JJ
18607 PR rtl-optimization/19012
18608 * config/i386/i386.md (addqi_1_slp): Set memory attribute.
18609
0210ae14
JJ
18610 PR rtl-optimization/18861
18611 * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
18612 (FULL_STATE): Define.
18613 (mark_tablejump_edge): New function.
18614 (purge_dead_tablejump_edges): New function.
18615 (find_bb_boundaries): Use it.
18616
8870e212
JJ
18617 PR tree-optimization/18828
18618 * builtins.c (expand_builtin_next_arg): Remove argument and all
18619 the argument checking.
18620 (expand_builtin): Adjust caller.
18621 (expand_builtin_va_start): Likewise. Remove error for too many
18622 arguments.
18623 (fold_builtin_next_arg): Issue error for too many arguments.
18624 After checking arguments, replace them with magic arguments that
18625 prevent further checking of the args.
18626
9fb29c46
JDA
186272005-01-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18628
18629 * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
18630
9a3bf943
RS
186312005-01-06 Roger Sayle <roger@eyesopen.com>
18632
18633 PR target/6077
18634 * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
18635 and %{.S:...} (and their negative variants) to test whether the
18636 input file is assembler or pre-processed-assembler independent of
18637 the actual filename extension.
18638
c79fc296
RS
186392005-01-06 Roger Sayle <roger@eyesopen.com>
18640
18641 * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
18642 of sign or zero extended values.
18643
59d7d767
GK
186442005-01-06 Geoffrey Keating <geoffk@apple.com>
18645
18646 * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
18647 for IBM long double format correctly.
18648
1f24dd47 186492005-01-06 Daniel Berlin <dberlin@dberlin.org>
fc474307 18650
1f24dd47
DB
18651 Fix PR tree-optimization/18792
18652
18653 * tree-data-ref.c (build_classic_dist_vector): Change first_loop
18654 to first_loop_depth, and use loop depth instead of loop number.
18655 (build_classic_dir_vector): Ditto.
18656 (compute_data_dependences_for_loop): Use depth, not loop number.
fc474307 18657 * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
1f24dd47
DB
18658 number. Pass in loops, instead of loop numbers.
18659 (gather_interchange_stats): Ditto.
18660 (linear_transform_loops): Ditto.
18661
27916b83
RS
186622005-01-06 Richard Sandiford <rsandifo@redhat.com>
18663
18664 PR rtl-opt/13299
18665 * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
18666 biv_fits_mode_p, extension_within_bounds_p): New functions.
18667 (check_ext_dependent_givs): Use them.
18668
4ab80063
RS
186692005-01-06 Roger Sayle <roger@eyesopen.com>
18670
18671 * cfgrtl.c (rtl_delete_block): A basic block may be followed by
18672 more than one barrier, in which case we should delete them all.
18673
12d3e34b
TS
186742005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
18675
18676 * gcc.c (process_command): Change year in 'gcc --version' to 2005.
18677
9acf766f 186782005-01-05 Daniel Berlin <dberlin@dberlin.org>
fc474307 18679
9acf766f
DB
18680 Fix PR middle-end/19286
18681 Fix PR debug/19267
18682 * dwarf2out.c (gen_subprogram_die): If we've already tried to
18683 output this subprogram, simply ignore this attempt to do it again.
18684 (add_abstract_origin_attribute): Don't abort trying to add the abstract
18685 origin attribute if it's not possible.
18686 (gen_block_die): Don't ignore subblocks of "unused" blocks.
18687 (decls_for_scope): Ditto.
18688 * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
18689 (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
fc474307 18690
e358acde
RH
186912005-01-05 Richard Henderson <rth@redhat.com>
18692
18693 PR target/11327
18694 * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
18695 (bdesc_2arg): Use it.
18696 (ix86_expand_binop_builtin): Force operands into registers
18697 when optimizing.
18698 (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
fc474307 18699 ix86_expand_sse_compare, ix86_expand_sse_comi,
e358acde
RH
18700 ix86_expand_builtin): Likewise.
18701
051d8245
RH
187022005-01-05 Richard Henderson <rth@redhat.com>
18703
18704 * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
18705 and VEC_SELECT.
18706 * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
18707 (mulv4hi3): Set itanium_class mmmul.
18708 (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
18709 (fpack): Rename from fpack_sfsf.
18710
19f17bb9
RH
187112005-01-05 Richard Henderson <rth@redhat.com>
18712
18713 PR rtl-opt/10692
18714 * reload1.c (do_input_reload): Restrict the optimization deleteing
18715 a previous output reload to RELOAD_FOR_INPUT.
18716
46d096a3
SB
187172005-01-05 Steven Bosscher <stevenb@suse.de>
18718
18719 * combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add
18720 comment that we fall through after case.
18721 (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
18722 (distribute_links): Likewise.
18723 * cse.c (cse_insn): Likewise.
18724 * cselib.c (cselib_invalidate_mem): Likewise.
18725 * df.c: Update comments at the top of the file.
18726 (read_modify_subreg_p): Update comments here too.
18727 (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
18728 * flow.c (mark_set_1): Likewise.
18729 (mark_used_regs): Likewise.
18730 * gcse.c (mems_conflict_for_gcse_p): Likewise.
18731 (canon_list_insert): Likewise.
18732 (mark_set): Likewise.
18733 (try_replace_reg): Likewise.
18734 (store_killed_in_insn): Likewise.
18735 * loop.c (count_one_set): Likewise.
18736 (basic_induction_var): Likewise.
18737 * postreload-gcse.c (find_mem_conflicts): Likewise.
18738 * postreload.c (reload_combine_note_store): Likewise.
18739 (move2add_note_store): Likewise.
18740 * reload.c (find_equiv_reg): Likewise.
18741 (mark_referenced_resources): Likewise.
18742 * rtlanal.c (set_noop_p): Likewise.
18743 (note_stores): Likewise.
18744 (note_uses): Likewise.
18745 * sched-deps.c (sched_analyze_1): Likewise.
18746 * sched-rgn.c (check_live_1): Likewise.
18747 (update_live_1): Likewise.
18748 * config/i860/i860.c: Likewise.
18749
18750 * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
18751 an lvalue.
18752 (ZERO_EXTRACT): Mention that this one can be an lvalue.
18753
18754 * doc/rtl.texi: Update documentation for bit-fields and SET.
18755
65a878f5
RS
187562005-01-05 Roger Sayle <roger@eyesopen.com>
18757
18758 * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
18759
d2ad2c8a
JH
187602005-01-05 Jan Hubicka <jh@suse.cz>
18761 Richard Henderson <rth@redhat.com>
18762
18763 PR target/18910
fc474307 18764 * config/i386/i386.c (ix86_expand_move): Handle tls symbols
d2ad2c8a
JH
18765 with an offset.
18766
2cdb3148
RH
187672005-01-05 Richard Henderson <rth@redhat.com>
18768
18769 PR target/12902
18770 * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
18771 (sse_shufps): Change operand 3 to const_int_operand.
18772 (sse2_storelps): Fix typo in template.
18773 (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
18774 * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
18775 (ix86_expand_builtin): Likewise.
18776
187772005-01-05 Julian Brown <julian@codesourcery.com>
3dd7ab65
JB
18778
18779 * config/arm/arm.c (arm_return_in_memory): Treat complex types
18780 as aggregates for AAPCS ABIs.
18781
59d8fe27
SS
187822005-01-05 Stan Shebs <shebs@apple.com>
18783
18784 * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
18785 Mach-O getters if ppc64.
18786 * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
18787 size argument.
18788 * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
18789 signed four-byte field for global code case.
18790 (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
18791
010c4d9c
RS
187922005-01-05 Roger Sayle <roger@eyesopen.com>
18793
18794 PR middle-end/19100
18795 * c-common.c: Include real.h.
18796 (c_common_truthvalue_conversion): Avoid destructively modifying expr.
18797 Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
18798 Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
18799 * Makefile.in (c-common.o): Update dependencies.
18800
9368fb8f
JM
188012005-01-05 Joseph S. Myers <joseph@codesourcery.com>
18802
18803 * c-parse.in (asm_string): Add trailing semicolon.
18804
9143de5c
JM
188052005-01-05 Joseph S. Myers <joseph@codesourcery.com>
18806
18807 * c-parse.in (asm_string): New. Don't allow wide strings in
18808 'asm'.
18809 (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
18810 asm_string instead of STRING.
18811
0953878d
JM
188122005-01-05 Joseph S. Myers <joseph@codesourcery.com>
18813
18814 * c-typeck.c (constructor_no_implicit): Remove.
18815 (set_designator, process_init_element): Don't check
18816 constructor_no_implicit.
18817
cf99f196
R
188182005-01-05 J"orn Rennecke <joern.rennecke@st.com>
18819 Kaz Kojima <kkojima@gcc.gnu.org>
18820
18821 PR target/16482
18822 * lcm.c (create_pre_exit): New.
18823 (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
18824 ENTRY_EXIT_EXTRA to 3. Use create_pre_exit.
18825
712ecf4d
RE
188262004-01-05 Richard Earnshaw <rearnsha@arm.com>
18827
18828 * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
18829 -msoft-float in target_float_switch.
18830 * arm.c (arm_override_options): Fix processing of target_float_switch.
18831
082cca25
RE
188322004-01-05 Richard Earnshaw <rearnsha@arm.com>
18833
18834 * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
18835 preferencing.
18836
c2b43d7a
UB
188372004-01-05 Uros Bizjak <uros@kss-loka.si>
18838
18839 * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
ead553a1 18840 Replace i387 with 'i386 compiler' in -mfpmath=sse option.
c2b43d7a 18841
e82f5749
RS
188422005-01-04 Roger Sayle <roger@eyesopen.com>
18843
18844 * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
18845 if deleting the then-block allows the test-block to fallthru to the
18846 else-block.
18847
f8f5c4b3
AP
188482005-01-04 Andrew Pinski <pinskia@physics.uc.edu>
18849
18850 PR c/19152
18851 * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
18852 after the full declaration if the are in two different TUs.
18853
188542005-01-04 Richard Henderson <rth@redhat.com>
fa588429
RH
18855
18856 PR tree-opt/19158
18857 * tree-sra.c (generate_one_element_init): Just
18858 call gimplify_and_add.
18859 (generate_element_init): Record the
18860 new referenced variables and mark them for renaming
18861 and split out to ...
18862 (generate_element_init_1): This.
18863 (scalarize_init): Don't call push_gimplify_context/
18864 pop_gimplify_context.
18865
5f0c48ed
GK
188662005-01-04 Geoffrey Keating <geoffk@apple.com>
18867
18868 * toplev.c (get_src_pwd): Handle failure of getpwd().
18869
e3523f56
RS
188702005-01-04 Roger Sayle <roger@eyesopen.com>
18871
18872 * fold-const.c (fold_single_bit_test): Delete unreachable handling
18873 of TRUTH_NOT_EXPR.
18874 (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
18875 all the cases handled by it are inverted by invert_truthvalue.
18876
9746bb27
EB
188772005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
18878
18879 * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
18880 (save_register_windowsi): Likewise.
18881
bfee926b
RH
188822005-01-04 Richard Henderson <rth@redhat.com>
18883
18884 * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
18885
21e5076a
UB
188862005-01-04 Uros Bizjak <uros@kss-loka.si>
18887
18888 PR middle-end/17767
18889 * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
18890 any simplifications of vector mode comparison operators.
18891 * simplify-rtx.c (simplify_relational_operation): Fix variable name.
18892
8ea9d0c7
PB
188932005-01-04 Paolo Bonzini <bonzini@gnu.org>
18894 Devang Patel <dpatel@apple.com>
18895
18896 PR tree-optimization/18308
8ea9d0c7
PB
18897 * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
18898 the operands before creating a new expression.
18899 * dojump.c (do_jump): Make drop_through_label available
18900 for all cases. Add expansion of COND_EXPR.
18901
8c427b58
IR
189022005-01-04 Ira Rosen <irar@il.ibm.com>
18903
18904 * tree-vectorizer.c (vect_analyze_offset_expr): Test for
18905 INTEGER_CST instead of TREE_CONSTANT.
18906 (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
18907 instead of TREE_CONSTANT.
18908 (vect_analyze_pointer_ref_access): Test for INTEGER_CST
18909 instead of TREE_CONSTANT.
18910
8287d24a
EB
189112005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
18912
18913 * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
18914
9e4ae64b
UB
189152005-01-04 Uros Bizjak <uros@kss-loka.si>
18916
18917 PR target/19240
18918 * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
18919 (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
18920
c756af79
RH
189212005-01-03 Richard Henderson <rth@redhat.com>
18922
18923 * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
18924 (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
18925 fold_convert_const_real_from_real): Split out from ...
18926 (fold_convert_const): ... here.
18927
d30c9461
RH
189282005-01-03 Richard Henderson <rth@redhat.com>
18929
18930 PR target/19235
18931 * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
18932 (mov<MMXMODEI>_internal): Likewise.
18933 (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
18934 Add V2SF case; use it for SSE1; don't use TI.
18935 (movdf_integer): Likewise.
18936 (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
18937
7d23434b
IR
189382005-01-03 Ira Rosen <irar@il.ibm.com>
18939
18940 * tree-vectorizer.c (vect_strip_conversions): New function.
18941 (vect_analyze_offset_expr): Call vect_strip_conversions. Add
fc474307 18942 check for binary class.
7d23434b 18943
1eb3331e
DB
189442005-01-03 Daniel Berlin <dberlin@dberlin.org>
18945
18946 Fix PR debug/17924
18947 Fix PR debug/19191
18948 * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
18949 is a decl.
18950 * gimple-low.c (mark_blocks_with_used_vars): New function.
18951 (mark_blocks_with_used_subblocks): Ditto.
18952 (mark_used_blocks): Ditto.
18953 (pass_mark_used_blocks): New pass.
18954 * tree-inline.c: Include debug.h.
18955 (expand_call_inline): Call outlining_inline_function here.
18956 * tree-optimize.c (init_tree_optimization_passes): Add
fc474307 18957 pass_mark_used_blocks.
1eb3331e
DB
18958 * tree-pass.h (pass_mark_used_blocks): New.
18959 * Makefile.in (tree-inline.o): Add debug.h dependency.
18960
a035080c
GK
189612005-01-03 Geoffrey Keating <geoffk@apple.com>
18962
d7001ae5
GK
18963 * config/darwin.c (darwin_handle_weak_import_attribute): Permit
18964 VAR_DECLs to have weak_import attribute.
18965
a035080c
GK
18966 * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
18967 'struct ucontext'.
18968
1ab219d3
SB
189692004-01-03 Steven Bosscher <stevenb@suse.de>
18970
18971 * passes.c (rest_of_compilation): Don't run regmove if only
18972 flag_expensive_optimizations, require flag_regmove instead.
18973
e6abef61
EB
189742005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
18975
18976 * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
18977 register "sparc".
18978 * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
18979 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
18980 * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
18981 * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
18982
f61134e8
RH
189832005-01-03 Richard Henderson <rth@redhat.com>
18984
18985 * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
18986 (ia64_const_ok_for_letter_p): New.
18987 (ia64_const_double_ok_for_letter_p): New.
18988 (ia64_extra_constraint): New.
18989 (ia64_expand_vecint_compare): New.
18990 (ia64_expand_vcondu_v2si): New.
18991 (ia64_expand_vecint_cmov): New.
18992 (ia64_expand_vecint_minmax): New.
18993 (ia64_print_operand): Add 'v'.
18994 (ia64_preferred_reload_class): New.
18995 (ia64_vector_mode_supported_p): New.
18996 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
18997 (PREFERRED_RELOAD_CLASS): Move to function.
18998 (CONST_OK_FOR_LETTER_P): Move to function.
18999 (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
19000 (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
19001 (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
19002 (EXTRA_CONSTRAINT): Move to function.
19003 * config/ia64/ia64.md: Include vect.md.
19004 (itanium_class): Add mmalua.
19005 (type): Handle it.
19006 * config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
19007 (1b_mmalua): New.
19008 * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
19009 * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
19010 CONST0_RTX.
19011 (const_int_2bit_operand): New.
19012 (fr_reg_or_0_operand): New.
19013 * config/ia64/ia64-modes.def: Add vector modes.
19014 * config/ia64/ia64-protos.h: Update.
19015 * config/ia64/vect.md: New file.
19016
3198b947
RH
190172005-01-03 Richard Henderson <rth@redhat.com>
19018
19019 * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
19020
088df4c2
UB
190212005-01-03 Uros Bizjak <uros@kss-loka.si>
19022
19023 PR target/19236
19024 * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
19025 to SFmode.
19026 (log1pdf2): Change mode of operands[0,1] to DFmode.
19027
548a6c4f
EB
190282005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
19029
19030 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
19031 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
19032 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
19033 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
19034 SPARC_RELAXED_ORDERING.
19035
0703dceb
RH
190362005-01-03 Richard Henderson <rth@redhat.com>
19037 Uros Bizjak <uros@kss-loka.si>
19038
19039 PR target/14631
19040 * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
19041 IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
19042 * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
19043 handling.
19044 (*mmx_pinsrw, *sse2_pinsrw): New patterns.
19045 * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
19046 const_pow2_1_to_128_operand): New predicates.
19047
97236777
GM
190482005-01-02 Greg McGary <greg@mcgary.org>
19049
19050 * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
19051 anonymous decls.
19052 (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
19053 object. [ptr_type]: Remove unused variable.
19054 Remember nearest addressable array-element or record-component
19055 when checking bitfield components. Tolerate empty BIND_EXPR.
19056
155a8213
RH
190572005-01-01 Richard Henderson <rth@redhat.com>
19058
19059 * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
19060 that don't narrow the value. Fail for other conversions.
19061
bedb9fc0
RH
190622005-01-01 Richard Henderson <rth@redhat.com>
19063
19064 PR c/19031
19065 * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
19066 * c-lang.c (finish_file): Don't do it here.
19067 * objc/objc-act.c (objc_finish_file): Likewise.
19068
19069 * cgraph.c (decl_assembler_name_equal): New.
19070 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
19071 (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
19072 * cgraph.h (struct cgraph_varpool_node): Add next.
19073 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
19074 * varasm.c (assemble_alias): Mark the target as needed.
19075
1cb2fc7b
AP
190762005-01-01 Andrew Pinski <pinskia@physics.uc.edu>
19077
19078 PR middle-end/19221
19079 * function.c (get_arg_pointer_save_area): Use entry_of_function
19080 instead of get_insns.
19081
0ca5fbc0
RS
190822005-01-01 Roger Sayle <roger@eyesopen.com>
19083 Andrew Pinski <pinskia@physics.uc.edu>
19084 James E. Wilson <wilson@specifixinc.com>
19085
19086 PR rtl-optimization/12092
19087 * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
19088 is zero.
19089
91c537b7
RS
190902005-01-01 Roger Sayle <roger@eyesopen.com>
19091 Olivier Hainque <hainque@act-europe.fr>
19092
19093 * tree.c (int_fits_type_p): A narrower type always fits in a
19094 wider one, except for negative values into unsigned types.
19095
69618c49
RS
190962005-01-01 Roger Sayle <roger@eyesopen.com>
19097
19098 * tree.c (int_fits_type_p): Compare the result of force_fit_type
19099 with the original constant rather than require TREE_OVERFLOW.
19100
43e05e45
SB
191012005-01-01 Steven Bosscher <stevenb@suse.de>
19102
19103 PR middle-end/17544
19104 * c-decl.c (finish_function): If compiling C99, annotate the
19105 compiler generated return with the current file name and line 0.
19106 * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
19107 the source line is greater than 0.
19108 (remove_bb): Likewise.
This page took 2.988096 seconds and 5 git commands to generate.